Sun Java System Instant Messaging 7.2 管理指南

第 11 章 管理 Instant Messaging 的 LDAP 访问配置

本章在以下各节中说明 Instant Messaging 如何使用 LDAP 进行带有和不带 Access Manager 的部署:

Instant Messaging 如何使用 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 目录来维护用户名称空间,则默认配置会对有关此目录使用的模式做出以下假设:

您可以通过编辑 iim.conf 文件更改这些默认设置。参见iim.conf 文件语法


注意 – 注意 –

某些用户属性可能包含保密信息。请确保设置您的目录访问控制以防止没有权限的用户进行未授权访问。参阅您的目录文档以获得更多信息。


匿名搜索目录

Instant Messaging 需要能够搜索目录才能正常工作。如果将目录配置为匿名用户可以搜索,则 Instant Messaging 就能够搜索目录。如果目录不能由匿名用户读取或搜索,则必须通过执行附加步骤,使用至少拥有此目录读取访问权限的用户 ID 的证书来配置 iim.conf。这些证书由下列各项组成:

Procedure使服务器可作为指定的最终用户执行目录搜索

  1. 确定 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 文件语法

  2. 在带有 Sun Java System Access Manager 的部署中,如果匿名用户不能搜索目录:

    • iim_ldap.useidentityadmin 配置参数设置为 true

    • 您也可以删除或注释掉以下配置参数:

      • iim_ldap.usergroupbinddn

      • iim_ldap.usergroupbindcred

  3. 编辑 iim.conf

    参见 iim.conf 文件语法以获得有关查找和修改 iim.conf 的说明。

    如果 iim_ldap.usergroupbinddniim_ldap.usergroupbindcred 参数未出现在 iim.conf 中,您可以将其添加到文件内的任何位置。

配置 Instant Messaging 以使用 LDAP 动态组

在 Sun Java System Directory Server 和某些其他 LDAP 服务器中,动态组基于 DN 过滤最终用户并将它们包括在单个组中。动态组在 Directory Server 中由 groupOfUrls 对象类定义。

为使最终用户能够在搜索结果中查看动态组并将动态组添加到其联系人列表中,您需要将 groupOfUrls 对象包括在搜索结果中。

需要对 iim.conf 进行以下修改:

Procedure配置 Instant Messaging 以使用动态组

  1. 打开 iim.conf

    参见 iim.conf 文件语法以获得有关查找和修改 iim.conf 的说明。

  2. 将以下三行添加到 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

    不要一行内包括换行。属性和对象类名称可以进行配置。默认情况下,memberOfUrls 属性被用作动态组的成员属性。如果您要使用 memberOfUrls 以外的属性名称,可将 iim_ldap.groupmemberurlattr 选项设置为您要使用的属性名称。