目录服务对一个服务器上的用户提供了查找其它网络域中的用户的功能。在 IBM Lotus Quickr 8.5.1 for Domino 中,提供了 3 种目录服务类型,如图 1 所示,无目录(本地成员),Domino 服务器和 LDAP 服务器。
- 无目录 : 不使用用户目录,管理员和场所管理者必须在各个场所的成员资格列表中创建本地成员。任何外部场所成员都不能访问该场所。
- Domino 服务器 : 指定 Domino 服务器作为用户目录,Quickr 将使用本地 Domino 服务器认证任何外部场所成员。
- LDAP 服务器 : 指定要连接的外部 LDAP 目录服务器,并通过站点管理链接和 qpconfig.xml 文件配置 LDAP 目录连接。该目录必须是受支持的 LDAP 产品,并且已经通过了此版本 Lotus Quickr 的测试与认证。在 Lotus Quickr 8.5.1 for Domino 中,支持五种外部 LDAP 目录服务器(见附录)。
图 1. 用户目录服务类型
如果指定 Domino 服务器或者 LDAP 服务器作为用户目录,管理员和场所管理者可从中选取场所成员。只有使用用户目录时才支持以下功能:
- 场所中集成的 IBM Lotus Sametime 功能
- 我的场所
- 单点登录认证
- 超级用户对服务器的访问权
- 使用双字节字符集的用户名
使用用户目录还提供以下用户管理功能:
- 在一个集中位置而不是各个单独场所管理用户信息。
- 外部成员使用相同的用户名和密码访问其所属的任何场所,而本地成员在各个场所可能有不同的用户名和密码。
- 许多允许用户同时管理多个场所成员信息的 qptool 命令仅适用于外部成员。例如,您可以使用 qptool addmember 命令将外部成员添加到场所,但不能添加本地成员。
使用用户目录,本地成员资格依然受支持。安装过程中指定的本地管理员是服务器“站点管理”场所的本地成员。
配置 LDAP 服务器作为用户目录是最常用的方式,步骤如下:
1. 以管理员身份登录 Lotus Quickr 服务器。
2. 单击站点管理 > 用户目录 > 更改目录。
3. 在类型列表中,选择 LDAP 服务器。
4. 在名称字段中,输入 LDAP 服务器的标准主机名称,如图 2 显示了一个示例配置。
图 2.LDAP 服务器目录服务示例配置
5. 在端口号字段中,输入 LDAP 服务器与其他服务器通信所使用的端口号。缺省值为通常使用的端口 389。
6. 可选: 选中检查与 LDAP 用户目录的 SSL 连接。如果选择该选项并且 Lotus Quickr 服务器和 LDAP 服务器上已配置 SSL,Lotus Quickr 服务器将以 SSL 加密请求方式向 LDAP 用户目录发出所有请求。
7. 可选: 在搜索条件字段中输入一个专有名称,它代表目录名层次结构中开始搜索的位置,如 o=acme, ou=sales,o=acme。 缺省情况下,您指定的搜索条件适用于用户搜索和组搜索。但是,您可以使用 qpconfig.xml 文件为组搜索指定不同的搜索条件。
8. 可选: 单击将搜索范围缩小为场所名,那么从某个场所启动的搜索将限于包含该场所名的用户目录名称。例如,选中该选项后,如果某用户从名为“销售支持”的场所开始 搜索目录,那么搜索只查找用户名包含“销售支持”的用户。 要点: 如果您的组织在名称中只使用三个组织单元,请不要选择此设置,因为它将限制您最多使用三个场所。
9. 如果需要用户名和密码才能访问 LDAP 服务器上的目录信息,请执行以下步骤:
- 单击选中以便在搜索目录时使用以下指定凭证。
- 输入用户名和 LDAP 专有名称。
- 输入密码。
10. 可选: 在认证超时和搜索超时字段中,更改以秒为单位的最大时间值,服务器可以在该时间长度内认证用户目录中的用户或执行搜索。两个超时设置的缺省值都为 120 秒,这在多数环境中已足够。如果与 LDAP 服务器的连接很慢,可考虑增大超时值。 如果连接很快,可考虑减小超时值。如果将这些字段留空,那么使用缺省设置。LDAP 服务器可能也配置了超时限制。在这种情况下,有效超时限制为 Lotus Quickr 服务器与 LDAP 服务器二者较短的那个。 注: 不建议指定 0 值,这会使 Lotus Quickr 服务器用于用户认证和搜索的时长不受限制。
11. 选择以下某个选项:
- 要允许场所管理者创建本地成员,请选择允许管理者在各个场所中创建新用户。
- 为阻止场所管理者创建本地成员并要求他们从用户目录中选择成员,请单击不允许新用户。
12. 单击下一步。确保完成该步骤,以使更改生效。
配置完成后,使用 LDAP 服务器中的用户访问 Lotus quickr:
http://hostname/lotusquickr
此时 LDAP 服务器中的用户将能成功登陆到 Lotus quickr。
在站点管理中配置 LDAP 服务器目录服务之后,LDAP 用户就可以访问和使用 Lotus Quickr 了。但是如果想要使用目录服务的其他高级功能,比如定制检索 group,定制显示属性等,则需要通过 qpconfig.xml 定制目录服务。
在站点管理中配置 LDAP 服务器目录服务之后,LDAP 用户就可以登录到 Lotus Quickr 了。但是如果需要在 Lotus Quickr 中使用 Group,还需要配置 qpconfig.xml。
使用 XML 配置文件 qpconfig.xml 可执行许多服务器配置任务。服务器随附一个样本文件 qpconfig_sample.xml,它安装在服务器数据目录中并且可以用作模板。qpconfig_sample.xml 文件说明可用的设置及其缺省值,并提供可根据您的需求定制的样本 XML。
Group 是 Lotus Quickr 场所中用来分组管理成员的常用功能,所以 group 的配置在 Lotus Quickr 中非常重要。为了在 quickr 场所中能够使用和检索 group,需要在 qpconfig.xml 文件中配置检索 group 项。步骤:
1. 为 qpconfig_sample.xml 创建副本并将它命名为 qpconfig.xml。
2. 使用文本编辑器打开 qpconfig.xml 文件。
3. 找到需要定制的目录服务部分:<user_directory>
4. 从这一部分除去以下两行内容,以启用行之间的样本设置
<!-- =================== START OF SAMPLE ====================== =================== END OF SAMPLE ======================== --> |
5. 修改目录服务部分的样本设置,使得可以检索 Group 项。下面以 IBM Directory Server 6.2 LDAP 服务器为例,参见“清单 1. 定制可以检索 Group”。步骤:
- 如果需要设置仅将某个目录分支用于组搜索,那么需要设置 <base_dn>。
需要注意“<base_dn> <group>ou=groups,o=acme</group> </base_dn>”中的初始值,需要把“ou=groups,o=acme”去掉,留空;或者配置成相应的 group 检索根目录。如果留空 <group></group>,默认将从 ldap 的根目录开始检索 group,如果需要指定相应的根目录或者设置从某一个分支开始检索 group,则写上相应的目录路径即可,例如,
<group>l=Westford,st=Massachusetts,c=US,ou=Lotus,o=Software group, dc=ibm,dc=com</group>
- 需要在 <search_filters> 中设置 <group_lookup>。
例如,
<group_lookup> <![CDATA[ (&(objectclass=groupOfUniqueNames)(cn={0})) ]]> </group_lookup>
配置好 <base_dn> 和 <group_lookup> 之后就可以在 Quickr 场所的 Members 中检索到 LDAP 中所有 group 了。如图 3 所示。
图 3. 在 Quickr 场所中检索和添加 Group
但是此时 group 下所属的成员还不能访问场所,在 Quickr 场所中也看不到 Group 中的成员。如图 4 所示,此时在 Quickr 场所中还无法展开 Group,无法看到 Group 中的成员,Group 中的成员也还不能访问场所。
图 4. 在 Quickr 场所中还无法看到 Group 的成员
这时还需要在 <schema> 中指定相应的正确的 group 的 objectClass,以及配置 <search_filters> 中的 <group_membership>。
- 需要在 <schema> 中指定相应的正确的 group 的 objectClass。
例如,
<group> <object_class_value>groupOfUniqueNames</object_class_value> <member>uniquemember</member> </group>
- 需要在 <search_filters> 中设置 <group_membership>。
例如,
<group_membership> <![CDATA[ (&(objectclass=groupOfUniqueNames)(uniquemember={0})) ]]> </group_membership>
汇总如下,要配置 qpconfig.xml 的目录服务,使其可以检索 Group 项,参见“清单 1 定制可以检索 Group”。
清单 1. 定制可以检索 Group
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <user_directory> …… <ldap> <base_dn> <group>l=Westford,st=Massachusetts,c=US,ou=Lotus,o=Software group, dc=ibm,dc=com</group> </base_dn> <schema> …… <group> <object_class_value>groupOfUniqueNames</object_class_value> <common_name>cn</common_name> <display_name>cn</display_name> <member>uniquemember</member> </group> …… </schema> <search_filters> …… <group_lookup> <![CDATA[ (&(objectclass=groupOfUniqueNames)(cn={0})) ]]> </group_lookup> <group_membership> <![CDATA[ (&(objectclass=groupOfUniqueNames)(uniquemember={0})) ]]> </group_membership> …… </search_filters> …… </ldap> …… </user_directory> |
6. 关闭文件并将它保存在服务器数据目录中,例如,将它保存在 C:\Program Files\Lotus\Domino\Data 中。
7. 修改 qpconfig.xml 之后,应在浏览器中将其打开,以便确保该 xml 文件格式正确。
8. 输入以下命令以重新启动 HTTP 任务,使服务器识别这些更改:
restart task http |
配置好 Group 的目录服务设置,并且重启 HTTP 任务之后,现在可以在 Quickr 场所中检索 Group,查看 Group 的成员,并且 Group Member 可以登录和使用 Quickr 场所了。如图 5 和图 6 所示。
图 5. 在 Quickr 场所中查看 Group 的成员
图 6. Group 的成员访问 Quickr 场所
LDAP 目录中的用户和组通过各种属性进行说明。例如,用户的名字值通常存储为 givenname 属性,姓氏存储为 sn (surname) 属性。并非所有 LDAP 目录都以相同的方式定义属性。
这时需要定制用户和组显示的属性。例如,缺省情况下,Lotus Quickr 假定 LDAP 目录使用 sn 属性定义用户姓氏。但是,如果您的 LDAP 目录使用 lastname 属性,您必须使用 qpconfig.xml 文件指定正确的属性。步骤:
1. 根据 LDAP 目录的要求,更改 qpconfig.xml 文件的 <schema> 元素中的值。以下示例的清单 2 中显示 <last_name> 值的 lastname,而非缺省值 sn。
清单 2. 定制 User 和 Group 的显示属性
<user_directory> <ldap> <schema> <object_class>objectClass</object_class> <user> <object_class_value>person</object_class_value> <common_name>cn</common_name> <display_name>cn</display_name> <first_name>givenname</first_name> <last_name>lastname</last_name> <email>mail</email> <phone>telephone</phone> </user> <group> <object_class_value>groupOfNames</object_class_value> <common_name>cn</common_name> <display_name>cn</display_name> <member>member</member> </group> </schema> </ldap> </user_directory> |
2. 保存修改后的 qpconfig.xml 文件。
3. 在服务器控制台中输入以下命令,重新启动服务器上的 HTTP 任务:
restart task http |
可以使用 qpconfig.xml 文件定制它在各类搜索中查找的属性。
定制登录名搜索
当外部成员登录场所时,缺省情况下服务器在 LDAP 目录中搜索 cn、uid 和 shortname 属性,寻找登录名的匹配项。您可以使用 qpconfig.xml 文件指定要搜索的其他属性,例如,定制可以使用 mail 登录场所。
注意:qpconfig.xml 文件区分大小写,大小写指定不正确会导致目录查询问题。
步骤:
1. 根据 LDAP 目录的要求,更改 qpconfig.xml 文件的 <authentication> 元素(位于 <search_filters> 元素内)中的值。例如,以下示例的清单 3 中,把登录验证的缺省值由“<authentication><![CDATA[(|(cn={0})(uid={0}) (shortname={0}))]]></authentication>”定制为只使用 mail 登录场所。
清单 3. 定制使用 Email 登陆场所
<user_directory> <ldap> <search_filters> <authentication><![CDATA[(mail={0})]]> </authentication> <user_lookup><![CDATA[(&(objectclass=person)(sn={0})(givenname={1}))]]> </user_lookup> <group_lookup><![CDATA [(&(objectclass=groupOfNames)(cn={0}))]]> </group_lookup> <group_membership><![CDATA [(&(objectclass=groupOfNames)(member={0}))]]> </group_membership> </search_filters> </ldap> </user_directory> |
2. 保存修改后的 qpconfig.xml 文件。
3. 在服务器控制台中输入以下命令,重新启动服务器上的 HTTP 任务:
restart task http |
注意:零 {0} 是必需的。认证过滤器在一个属性中仅查找一个名称值。
定制完成后,将只允许用户使用 mail 登录场所,如图 7 所示。
图 7. 使用 mail 登录场所
定制其他搜索
除了定制登录名搜索以外,还可以定制“用户查找搜索”,“组查找搜索”和“组成员搜索”。方法与定制登录名搜索类似。
可以使用 qpconfig.xml 文件定制相应的用户界面,用户在目录中查找要添加为场所成员的用户时会看到这个界面。您可以定制搜索提示,还可以定制用户界面如何显示用户搜索结果。
定制目录查找界面中的搜索提示
缺省情况下,目录查找界面提示用户通过输入姓氏和名字来搜索用户名。如果您已定制用户查找搜索,还可以定制搜索提示以反映出更改。例如,如果在 qpconfig.xml 的 <user_lookup> 元素中指定了以下代码行:
<user_lookup><![CDATA[(&(objectclass=person)(mail={0}))]]></user_lookup> |
随后可以在 <search_ui_hint> 元素中指定以下代码行:
<![CDATA[( enter <B> email</B>)]]> |
步骤:
1. 更改 qpconfig.xml 文件的 <search_ui_hint> 元素中的值。如下清单 4 所示:
清单 4. 定制使用 email 搜索用户
<user_directory> <ldap> <search_ui_hint><![CDATA[( enter <B>email</B>)]]> </search_ui_hint> <search_ui_index>sn</search_ui_index> </ldap> </user_directory> |
2. 保存修改后的 qpconfig.xml 文件。
3. 在服务器控制台中输入以下命令,重新启动服务器上的 HTTP 任务:
restart task http |
定制完成后,将只允许用户在添加场所成员页面中使用 email 搜索用户,如图 8 所示。
图 8. 使用 email 搜索用户
定制搜索结果显示
缺省情况下,当用户搜索目录中的用户时,搜索结果在第一列显示 sn 和 givename 属性值,在第二列显示专有名称,在搜索结果框顶部的范围字段中显示 sn 属性。要显示不同的属性值,请更改 qpconfig.xml 文件中 member_lookup_ui 和 search_ui_index 元素的值。
例如,要在结果第一列中显示 sn 和 mail 属性值,请指定以下内容:
<column_name> <person>sn, mail</person> </column_name> |
步骤:
1 .要更改搜索结果第一列和第二列中显示的属性,请更改 qpconfig.xml 文件中 <member_lookup_ui> 元素的值。更改 column_name 元素的值可更改结果第一列中显示的属性,更改 column_disambiguate 元素的值可更改第二列中显示的属性。如清单 5 所示。
清单 5. 定制搜索结果中显示 sn 和 mail 属性值
<user_directory> <ldap> <member_lookup_ui> <column_name> <person>sn, mail</person> </column_name> <column_disambiguate> <person>dn</person> </column_disambiguate> </member_lookup_ui> </ldap> </user_directory> |
2. 要更改结果框顶部用于显示当前名称范围的属性值,请更改 qpconfig.xml 中 <search_ui_index> 元素的值。缺省情况下,范围中显示 sn 属性的值。例如,
<user_directory> <ldap> <search_ui_index>sn</search_ui_index> </ldap> </user_directory> |
3. 保存修改后的 qpconfig.xml 文件。
4. 在服务器控制台中输入以下命令,重新启动服务器上的 HTTP 任务:
restart task http |
定制完成后,将在搜索结果第一列中显示 sn 和 mail 属性值,如图 9 所示。
图 9. 搜索结果中显示 sn 和 mail 属性值
如果您的目录包含嵌套组,即组中组,并且这些组包含 IBM Lotus Quickr 用户名,那么需要修改 notes.ini 文件设置允许搜索嵌套组。
步骤:
1. 打开服务器数据目录中的 notes.ini 文件。
2. 将以下代码行添加到 notes.ini 文件:
QuickPlaceNestedGroupLimit=value |
其中 value 代表服务器可以搜索的组级数。这一级数在缺省情况下为 1,即服务器不搜索嵌套组。
注: 如果指定的值大大超出所需,这可能降低 LDAP 查找性能。
3. 务必在文件末尾留出一个空行,然后关闭并保存文件。
4. 在服务器控制台中输入以下命令,重新启动服务器以使更改生效:
restart server |
现在已经可以在 Quickr 场所中使用嵌套组了。如图 10 所示,nestedgroup2 中嵌套了 nestedgroup1。
图 10. 定制支持嵌套组
Lotus Quickr 支持丰富的 LDAP 服务器,下面附录 5 种常用的 External LDAP 的目录服务的标准配置模板。
- IBM Directory Server 6.2 服务器: qpconfig_ids62.xml
- Windows Active Directory 2003 服务器: qpconfig_AD2003.xml
- Windows Active Directory 2008 服务器: qpconfig_AD2008.xml
- Sun ONE Directory Server 6.3 服务器:qpconfig_sunone63.xml
- Novell eDirectory 服务器: qpconfig_edir.xml
本文介绍了 Lotus Quickr 中的目录服务,重点介绍在 Site Administration 中配置 External LDAP,并详细介绍如何通过 qpconfig.xml 定制目录服务,以及应用详尽的实例依次介绍了用户目录中的各项配置,相信读者现在对 Lotus Quickr 中的目录服务有了全面的了解了。