本章在以下小節中描述 Instant Messaging 如何在有和沒有 Access Manager 的部署中使用 LDAP。
Instant Messaging 的所有部署均需要目錄伺服器。在沒有 Sun JavaTM System Access Manager 的部署中,Instant Messaging 伺服器使用目錄伺服器執行一般使用者認證並搜尋一般使用者。
在有 Sun Java System Portal Server 的部署中,Instant Messaging 伺服器使用 Sun Java System Portal Server 使用的目錄。安裝在 Access Manager 部署環境中時,Instant Messaging 伺服器使用 Access Manager 使用的目錄來搜尋一般使用者,而不用於一般使用者認證。在 Access Manager 部署中,Access Manager 執行認證。
如果您使用 LDAP 目錄維護您的使用者名稱空間,預設配置會做出以下有關此目錄所使用模式的假設:
一般使用者項目由 inetOrgPerson 物件類別識別。
群組項目由 groupOfUniqueNames 或 groupofURLs 物件類別識別。
一般使用者的 Instant Messenger 使用者 ID 屬性由 uid 屬性 (來自 inetOrgPerson 物件類別) 所提供。
一般使用者的電子郵件地址由 mail 屬性所提供。
一般使用者或群組的顯示名稱由 cn 屬性所提供。
群組的成員清單由 uniqueMember 屬性 (groupOfUniqueNames 物件類別) 所提供。
您可以編輯 iim.conf 檔案以變更這些預設設定。請參閱iim.conf 檔案語法。
有些使用者屬性可能包含機密的資訊。確定您的目錄存取控制已設為防止無權限的使用者進行未授權存取。如需詳細資訊,請參閱您的目錄文件。
Instant Messaging 需要能夠搜尋目錄以正確運作。如果您的目錄是配置可以讓匿名使用者搜尋,則 Instant Messaging 就可以搜尋目錄。 如果該目錄無法讓匿名使用者讀取或搜尋,您必須採取其他步驟,以至少具有讀取此目錄之存取權限的使用者 ID 的憑證來配置 iim.conf 檔案。這些憑證包含:
一個辨別名稱 (dn)
上述 dn 的密碼
在 iim.conf 中識別下列參數值:
iim_ldap.usergroupbinddn - 指定辨別名稱 (dn) 以用於連結至要搜尋的目錄。
iim_ldap.usergroupbindcred - 指定密碼以使用辨別名稱 (dn)。
例如:
iim_ldap.usergroupbinddn="cn=iim server,o=i-zed.com"
iim_ldap.usergroupbindcred=secret
您不必使用具有寫入層級權限的管理員層級憑證,因為只需要網域樹狀結構的讀取權限。因此,如果有 LDAP 使用者擁有讀取層級權限,則改用其憑證。這是較安全的替代方法,因為它不會強迫您散佈管理員層級憑證。
如需找到並修改 iim.conf 的說明,請參閱iim.conf 檔案語法。
在有 Sun Java System Access Manager 的部署中,如果匿名使用者無法搜尋目錄,則:
編輯 iim.conf。
如需找到並修改 iim.conf 的說明,請參閱iim.conf 檔案語法。
如果 iim_ldap.usergroupbinddn 和 iim_ldap.usergroupbindcred 參數沒有出現在 iim.conf 檔案中,您可以將它們新增到檔案中的任意位置。
在 Sun Java System Directory Server 和某些其他 LDAP 伺服器中,動態群組會根據一般使用者的 DN 來篩選一般使用者,並將他們包含在單一群組中。動態群組在 Directory Server 中由 groupOfUrls 定義的物件類別。
若要啟用一般使用者以在搜尋結果中檢視動態群組,並將之新增至其連絡清單,您必須在搜尋結果中包含 groupOfUrls 物件。
必須對 iim.conf 進行以下修改:
開啟 iim.conf。
如需找到並修改 iim.conf 的說明,請參閱iim.conf 檔案語法。
在 iim.conf 中加入以下三行:
iim_ldap.usergroupbynamesearchfilter=(|(&(| (objectclass=groupofuniquenames) (objectclass=groupofurls))) (cn={0}))(&(objectclass=inetorgperson) (cn={0}))) iim_ldap.groupbrowsefilter=(| (objectclass=groupofuniquenames) (objectclass=groupofurls)) iim_ldap.groupclass=groupOfUniqueNames,groupOfURLs |
單一行內不要包含分行符號。屬性和 objectclass 名稱均可配置。根據預設,memberOfUrls 屬性用於動態群組的成員身份屬性。如果您想要使用屬性名稱而非 memberOfUrls,可設定 iim_ldap.groupmemberurlattr 選項為您想要使用的屬性名稱。