對於 LDAP 服務,如果您想要根據任何屬性來自動將使用者分組,或想要將 ACL 套用至包含相符 DN 的特定群組,Proxy Server 可讓您建立動態群組。例如,您可以建立一個群組來自動包括含有 department=marketing 屬性的所有 DN。如果您套用 department=marketing 的搜尋篩選器,則搜尋傳回的群組會包括含有屬性 department=marketing 的所有 DN。然後,您可以由基於此過濾器的搜尋結果定義動態群組。隨後,您可以針對結果動態群組定義一個 ACL。
Proxy Server 會在 LDAP 伺服器模式中將動態群組實作為 objectclass=groupOfURLs。一個 groupOfURLs 類別可能沒有或有多個 memberURL 屬性,每個屬性都說明目錄中一組物件的 LDAP URL。群組成員將是這些物件集的併集。例如,下列群組只包含一個成員 URL:
ldap:///o=mcom.com??sub?(department=marketing)
此範例說明的是在 o=mcom.com 之下由部門為 marketing 的所有物件所組成的集合。LDAP URL 可以包含搜尋基底 DN、範圍及篩選器,但不能包含主機名稱和連接埠。因此,您只能參照同一 LDAP 伺服器上的物件。支援所有範圍。如需有關 LDAP URL 的更多資訊,請參閱建立動態群組的指導原則。
DN 會自動加入群組中,不必在群組中逐一增加。群組會動態變更,因為每次 ACL 驗證需要群組查詢時,Proxy Server 就會執行 LDAP 伺服器搜尋。ACL 檔案中使用的使用者和群組名稱,與 LDAP 資料庫中物件的 cn 屬性相對應。
Proxy Server 使用 cn 屬性做為 ACL 的群組名稱。
從 ACL 至 LDAP 資料庫的對映在 dbswitch.conf 檔案 (它將 ACL 資料庫名稱與實際 LDAP 資料庫 URL 關聯起來) 和 ACL 檔案 (它定義資料庫與 ACL 的對應關係) 中均有定義。例如,如果您想要讓 staff 的群組中的成員身份具有基本存取權限,ACL 程式碼會查找物件類別為 groupOfanything 且 CN 設定為 staff 的物件。此物件可以明確列舉成員 DN (如同靜態群組的 groupOfUniqueNames 一樣) 或指定 LDAP URL (例如,groupOfURLs) 來定義群組的成員。
群組可以是靜態群組和動態群組。群組物件可以同時有 objectclass=groupOfUniqueMembers 和 objectclass=groupOfURLs。因此,uniqueMember 和 memberURL 屬性兩者皆有效。群組的成員身份是靜態和動態成員的併集。
使用動態群組會影響伺服器效能。如果您正在測試群組成員身份,且 DN 不是靜態群組的成員,則 Proxy Server 會檢查資料庫基底 DN 中的所有動態群組。Proxy Server 會比對使用者的 DN 來檢查基底 DN 和範圍,以判斷每個 memberURL 是否相符。接著,Proxy Server 會以使用者 DN 做為基底 DN 和 memberURL 的篩選器來執行基本搜尋。此程序可能需要大量的個別搜尋。
使用 [Administration Server] 介面來建立新的動態群組時,請考慮下列準則:
attributes、scope 及 (filter) 參數在 URL 中的位置,可做為識別這些參數的依據。即使您不要指定任何屬性,您仍然必須加上問號 (?) 來分隔此欄位。
如果您的目錄已定義組織單元,則您可以在 [Administration Server] 介面的 [Create Group] 頁面上使用 [Add New Group To],指定您要放置新群組的位置。預設位置為目錄的根位置 (最上面的項目)。
如需有關編輯群組的更多資訊,請參閱編輯群組項目。
表 4–4 LDAP URL 的必要參數