Ldap

OpenDirectory/LDAP 查詢語法,用於為 GADS 查找組中的所有使用者

  • November 18, 2013

我想建構一個 LDAP 查詢來查找屬於我的 OS X 10.9 伺服器上的“Google Apps 使用者”組(簡稱:googleappsusers)的所有使用者。當我在 Google Apps Directory Sync (GADS) 中執行以下查詢時,它返回零使用者,儘管事實上我確實在 googleappsusers 組中有一個使用者。

(&(objectCategory=users)(memberOf=cn=googleappsusers,cn=groups,dc=nyc1,dc=domain,dc=com))

Apple Open Directory 不使用 memberOf 使用者屬性 (OSX Server 10.7.5)。

相反,它僅依靠 memberUid 組屬性來列舉作為給定組成員的使用者。因此,不能通過查詢使用者對象來確定使用者的組成員資格,而是必須列舉所有組以獲取與該使用者對應的 memberUid 屬性,如果希望獲得使用者特定組成員資格的完整列表。

當然可以修改模式以添加 memberOf 屬性,但還必須進行必要的工作,以保持組 memberUid 屬性值和使用者 memberOf 屬性值同步。

這與支持 memberOf 使用者屬性並包含使屬性對的值保持同步的機制(Microsoft Active Directory、具有 memberOf 覆蓋的 OpenLDAP)的 ldap 實現形成對比。

$$ Google Apps Directory Sync Administration Guide $$$$ 1 $$,第 28 頁,指出:

There are three ways to mark your Google Apps users in LDAP:
• OU: Set up an organizational unit (OU) and move Google Apps users into that unit.
• Group: Create a new group in LDAP, and add Google Apps users as a member of that group.
• Custom Attribute: Create a custom attribute for your users, and set that attribute for new users.

我的猜測是,您可以通過任一方法解決任務,但僅當您自己將 memberOf 屬性添加到使用者對象時,查詢使用者的 memberOf 才有效。它被視為具有 Open Directory 的自定義屬性。

ldap 對像中的某些屬性為空並不是一個值得關注的問題,這只是意味著它們包含在 ldap 模式中,但尚未為 ldap 對象設置它們的值。您會在任何開箱即用的 ldap 實現中看到類似的情況。

$$ 1 $$ http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.com/en/us/support/enterprise/static/gapps/docs/admin/en/gads/admin/gads_admin.pdf

引用自:https://serverfault.com/questions/555798