本章介绍了 Communications Express 的配置详细信息。
Communications Express 在以下配置文件中维护配置参数:
uwcauth.properties 文件用于维护与验证、用户或组访问和单点登录有关的参数。uwcauth.properties 文件位于:uwc-deployed-path/WEB-INF/config/。
uwcconfig.properties 文件用于维护与日历、邮件和通讯录有关的配置参数。uwcconfig.properties 文件位于:uwc-deployed-path/WEB-INF/config/。
db_config.properties 文件用于定义通讯录存储配置详细信息。默认情况下,Communications Express 部署两种类型的 db_config.properties 文件。
个人通讯录存储。个人通讯录存储配置文件位于 uwc-deployed-path/WEB-INF/config/ldappstore/db_config.properties。
公司通讯录存储。公司通讯录存储配置文件位于 uwc-deployed-path/WEB-INF/config/corp-dir/db_config.properties。
所有配置文件均为 ASCII 文本文件,其中每行均按以下格式定义参数及其相关值:
parameter =value
配置 Communications Express 时,会初始化参数。可以使用文本编辑器编辑文件。下面是一些在配置文件中设置参数的约定:
必须用等号 (=) 分隔所有参数及其一个或多个关联值。等号前后可以有空格或制表符。
例如:
uwc-user-attr-sunUCDefaultApplication=calendar
每个注释行都以感叹号开头。
默认情况下,会用感叹号注释掉某些配置参数。要使用这些参数,请删除感叹号并更改参数值。
可以按下表所述修改日历、邮件和通讯录配置参数。
表 3–1 列出了所有与 Messenger Express 有关的参数
表 3–1 邮件参数
参数 |
默认值 |
描述 |
---|---|---|
如果部署邮件,则将此参数设置为 true。在运行配置向导时,将设置此参数。 |
||
指定部署了 Messenger Express 的计算机的主机名。Messenger Express 主机名应该与部署了 Web Server 的计算机名相对应。 |
||
webmail.port |
指定 Messenger Express HTTP Server 侦听的端口号。 |
|
webmail.securedproxyauth |
指定是以 SSL 模式还是非 SSL 模式进行验证。如果设置为 true,则以 SSL 模式进行验证。 |
|
webmail.proxyadmin |
指定代理服务器管理用户 ID。 |
|
webmail.ssl.port |
指定 HTTPS 服务器端口号。 |
|
webmail.proxyadminpass |
以加密格式指定代理服务器管理员的加密密码。 |
如果验证 LDAP 服务器与用户或组 LDAP 不同,可以编辑表 3–2 中列出的参数。
表 3–2 LDAP 验证过滤器参数
参数 |
默认值 |
描述 |
---|---|---|
ldapauth.ldaphost |
指定 LDAP 主机值。通常,ldapauth.ldaphost 值与 ldapusersession 值相同。如果需要,可以将其设置为其他值。 |
|
ldapauth.ldapport |
指定 LDAP 端口号。 |
|
ldapauth.dcroot |
指定验证树的 DC 根。 |
|
ldapauth.domainattr |
inetDomainBaseDN,inetDomainStatus,inetDomainSearchFilter,domainUidSeparator,preferredLanguage |
指定要从验证用户所在的域条目中检索的属性列表。 |
ldapauth.domainfilter |
(|(objectclass=inetDomain)(objectclass=inetDomainAlias)) |
指定检索域条目所基于的过滤器。 |
ldapauth.ldapbinddn |
指定绑定到验证 LDAP 的用户的用户域名。 |
|
ldapauth.ldapbindcred |
指定绑定到验证 PAB 的用户的密码。 |
|
ldapauth.enablessl |
false |
指定要执行验证的目录是否处于 SSL 模式。 将默认值更改为 true 可建立安全的 LDAP 连接。 |
表 3–3 LDAP 用户组参数
参数 |
默认值 |
描述 |
---|---|---|
ldapusersession.ldaphost |
指定用户组目录服务器的主机名。 |
|
ldapusersession.ldapport |
指定用户/组目录服务器的端口号。 |
|
ldapusersession.ldapbinddn |
指定绑定到用户或组目录服务器的管理员的用户 DN。 |
|
ldapusersession.ldapbindcred |
指定绑定到用户树的 admin 的密码。 |
|
ldapusersession.dcroot |
在用户或组 LDAP 中指定用于解析 Sun Java LDAP Schema v.1 中的用户条目的域组件 (Domain Component, DC) 树。 |
|
ldapusersessionl.daploadbalancingstrategy |
1 |
指定要使用的 LDAP 负载平衡策略。有效值为 1、2 或 3。 |
ldapusersession.basedn |
在配置 Communications Express 过程中为此属性指定值。它指定用户组的 basedn。 |
参数 |
默认值 |
描述 |
---|---|---|
uwcauth.identity.enabled |
指定是否启用 Identity Server。如果使用 Access Manager 的单点登录机制进行验证,则将该属性设置为 true。 |
|
uwcauth.identity.binddn |
指定 amAdmin 用户的完整标识名 (Distinguished Name, DN)。 例如, uid=amadmin, ou=People, o=siroe.com |
|
uwcauth.identity.bindcred |
指定 amAdmin 密码。 |
参数 |
默认值 |
描述 |
---|---|---|
ldapusersession.defaultugfilter |
uid@domain |
指定在检索用户条目时使用的默认过滤器语法。 |
ldapusersession.ldappoolmin |
30 |
指定要为用户或组 LDAP 创建的最小 LDAP 用户连接数。 |
ldapusersession.ldappoolmax |
100 |
指定要为用户或组 LDAP 创建的最大 LDAP 用户连接数。根据部署要求输入最佳值。 |
确保已在 Sun JavaTM System Calendar Server 中启用了代理验证和匿名访问。
要启用代理验证和匿名访问,请在日历配置文件 ics.config 中配置以下 Calendar Server 参数:
service.http.allowadminproxy = "yes"
service.wcap.anonymous.allowpubliccalendarwrite = "yes"
service.http.allowanonymouslogin = " yes"
service.calendarsearch.ldap = "no"
有关启用代理验证的更多信息以及配置 Calendar Server 参数的说明,请参阅《Sun Java System Calendar Server 6.3 Administration Guide》。
参数 |
默认值 |
描述 |
---|---|---|
如果部署日历,则将该参数设置为 true。在运行配置向导时,将设置此参数。 |
||
指定 WCAP 服务器的主机名。 |
||
指定 WCAP 侦听的端口号。 |
||
calendar.wcap.adminid |
指定 WCAP Sever 的管理员用户 ID。 |
|
指定 WCAP Server 的加密格式管理员密码。 |
确保为 calendar.wcap.adminid 指定的日历管理员用户 ID 值与在 Calendar Server 的 ics.conf 文件中存在的 service.admin.calmaster.userid 值相同。
确保 LDAP 服务器上存在日历管理员用户 ID 的对应用户条目。
表 3–7 列出了 db_config.properties 文件中的默认通讯录个人存储配置参数。
该文件位于:uwc-deployed-path/WEB-INF/config/ldappstore/
表 3–7 个人通讯录个人存储参数
参数 |
默认值 |
描述 |
---|---|---|
指定个人通讯录 (Personal Address Book, PAB) 存储的 LDAP 主机。 |
||
指定存储的端口。 |
||
指定用于绑定到个人通讯录存储的 DN。 如果 login_type 设置为 restricted 或 proxy,则此值取决于 login_type 值。 如果登录类型为 anonymous,则不必为此参数输入值。 |
||
指定用于绑定到个人通讯录存储的 DN 的密码。 |
||
restricted |
指定用于维护 LDAP 存储连接的方法。 可以为此参数指定以下三个值: anon-让用户能以匿名用户身份连接到 LDAP。 restricted-让用户能以有权对通讯录存储执行操作的用户身份进行连接。 proxy-让用户能够伪装成可以对通讯录存储执行操作的用户。指定此值可提高性能,因为在执行每个操作时它不进行 LDAP 绑定。 注 – 建议在此处进行伪装的用户具有管理级别的访问控制列表 (Access Control List, ACL)。 |
|
4 |
指定为个人通讯录存储维护的 LDAP 客户端连接的最小数目。 |
|
12 |
指定为个人通讯录存储维护的 LDAP 客户端连接的最大数目。 |
|
10 |
指定 LDAP 连接超时前的秒数。此值越大,获取的搜索结果就越多。 |
|
1000 |
指定搜索的搜索查询限制。 |
|
delete_perm |
true |
允许将联系人或组条目标记为删除或永久删除。 如果将该参数设置为 false,则可将联系人或组标记为删除。 如果将该参数设置为 true,则可永久删除联系人和组。 |
allow_duplicate_entries |
允许个人通讯录条目/组名称相同。 |
表 3–8 列出了 db_config.properties 文件中的默认公司目录参数。默认情况下,所有 LDAP 的相关信息都是基于涉及用户或组目录的值设置的。
db_config.properties 文件位于: WEB-INF/config/corp-dir/
表 3–8 公司目录参数
参数 |
默认值 |
描述 |
---|---|---|
指定公司目录的 LDAP 主机。 |
||
指定公司目录的端口。 |
||
指定用于绑定到公司目录的 DN。 如果登录类型为 restricted 或 proxy,则必须为 defaultserver.ldapbinddn 指定值。 如果登录类型为 anonymous,则不必为此参数输入值。 |
||
指定绑定密码。 |
||
uid |
指定公司目录中用于标识联系人或组条目的关键字。 可以将 entry_id 设置为 UID 或用于提取联系人或组信息的关键字(如 empid 或主要用户 ID)。 在 xlate-inetorgperson.xml 文件中,将 <entry entryID= "db:uid"\> 中的 "uid" 替换为此处指定的 entry_id 值。 |
|
restricted |
指定用于维护 LDAP 存储连接的方法。 可以为此参数指定以下三个值: anon-让用户能以匿名用户身份连接到 LDAP。 restricted-让用户能以有权对通讯录存储执行操作的用户身份进行连接。 proxy-让用户能够伪装成可以对通讯录存储执行操作的用户。指定此值可提高性能,因为在执行每个操作时它不进行 LDAP 绑定。 注:为伪装用户授予只读访问权限。 |
|
1 |
指定为公司目录维护的最小 LDAP 客户端连接数。 |
|
4 |
指定为公司目录维护的最大 LDAP 客户端连接数。 |
|
60 |
指定 LDAP 连接超时前的秒数。此值越大,获取的搜索结果就越多。 |
|
3000 |
指定搜索的搜索查询限制。 |
公司目录中维护以下两个格式为 xlate-objectclass-name.xml 的 xlate 文件。
用于联系人的 xlate-inetorgperson.xml
用于组的 xlate-groupofuniquemembers.xml
在 xlate-objectclass-name.xml 中,objectclass-name 表示标识特定 LDAP 条目类型的对象类。例如,在 Sun Java Directory Server 中,xlate-inetorgperson.xml 是用于标识联系人的对象类,groupofuniquemembers 是用于标识组的对象类。
xlate 文件包含联系人或组的 LDAP Schema 和通讯录 XML Schema 之间的字段映射。映射是按照 XML 节点定义的。例如,
ab-xml-schema-keydb:LDAPField /ab-xml-schema-key
在此示例中:
ab-xml-schema-field 是代码中使用的通讯录值。
LDAPField 是 LDAP 中的对应字段名称。
需要为 LDAPField 提供适当的字段名称。为 LDAPField 指定的值应与公司目录 LDAP Schema 中现有的 LDAPField 值对应。
示例 3–1 是一个 xlate-inetorgperson.xml 文件示例。
<abperson uid="db:uid"> <entry entryID="db:uid"> <displayname>db:cn</displayname> <description>db:multilineDescription</description> <creationdate>db:createtimestamp</creationdate> <lastmodifieddate>db:modifytimestamp</lastmodifieddate> </entry> <person> <givenname>db:givenname</givenname> <surname>db:sn</surname> </person> <organization> <company>db:company</company> <organizationalunit>db:ou</organizationalunit> <location>db:expr: db:iplanetbuildingnum+' '+db:iplanetbuildinglev+' '+db:roomNumber</location> <title>db:title</title> <manager>db:manager</manager> <secretary>db:secretary</secretary> </organization> <phone priority="1" type="work">db:telephoneNumber</phone> <phone priority="2" type="fax">db:facsimileTelephoneNumber</phone> <phone priority="3" type="mobile">db:mobile</phone> <phone priority="4" type="home">db:homePhone</phone> <phone priority="5" type="pager">db:pager</phone> <email priority="1" type="work">db:mail</email> <im priority="1" service="SunONE">db:uid</im> <im priority="2" service="AIM">db:aimscreenname</im> <im priority="3" service="ICQ">db:icqnumber</im> <postaladdress type="home"> <street>db:homePostalAddress</street> </postaladdress> <postaladdress type="work"> <street>db:postaladdress</street> </postaladdress> <weburl priority="1"> <urladdr>db:labeleduri</urladdr> <description>URL</description> </weburl> <weburl priority="2"> <urladdr>db:homepage</urladdr> <description>Home URL</description> </weburl> <calendar type="calendar"> <urladdr>db:caluri</urladdr> </calendar> </abperson> |
可以配置在其中以 SSL 模式部署 Communications Express 的 Web Server 或 Application Server。
有关如何配置在其中以 SSL 模式部署 Communications Express 的 Web Server 的信息,请参阅《Sun Java System Web Server 7.0 Administrator’s Configuration File Reference》。
有关如何配置在其中以 SSL 模式部署 Communications Express 的 Application Server 的信息,请参阅《Sun Java Application Server Administration Guide》。
在 uwc-deployed-path/WEB-INF/config/uwcauth.properties 文件中设置以下配置参数:
uwcauth.ssl.enabled=true。如果设置为 true,则在 SSL 模式下执行应用程序的整个验证过程和访问。
uwcauth.https.port=SSL-port-number-of -the webcontainer-in which-uwc-is-deployed
webmail.ssl.port=Messaging Server 的 SSL 端口
将 local.webmail.sso.uwcsslport Messenger Express 参数值设置为在其中部署 Communications Express 的 Web Server 的 SSL 端口号。
需要此参数来指示 Messenger Server 获取 Communications Express 集成服务。例如,如果设置了此参数,则出现 Web 邮件的超时事件时,将使用户转到 Communications Express 的登录页面。
例如 local.webmail.sso.uwcsslport=在其中部署 Communications Express 的 Web Server 的 SSL 端口号
设置 Messaging Server 的 webmail.ssl.port 参数。
将此参数设置为 Messaging Server 侦听的 SSL 端口。
将 Communications Express 配置为仅进行 SSL 验证,这意味着可以通过 SSL 执行验证,但此后在非 SSL 模式下访问应用程序。
在 uwcauth.properties 文件中,将 uwcauth.ssl.enabled 设置为 false。
将 uwcauth.https.port 设置为在其中部署 Communications Express 的 Web Server 的 SSL 端口号。
将 uwcauth.ssl.authonly 设置为 true。
uwcauth.properties 文件的 uwcauth.ssl.authonly 和 uwcauth.ssl.enabled 这两个参数是互斥的。
在早期版本的 Sun Java Communications Express 中,特定域的个人通讯录条目存储在由 db_config.properties 文件中定义的 defaultserver 实例表示的单个 LDAP 位置中。db_config.properties 文件位于域的 personalstore.properties 文件指向的目录中。例如 uwc-install/WEB-INF/config/ldappstore。
此设置无法进行伸缩,因此不能支持每个个人通讯录中包含大量用户和联系人。为了消除此限制,在 Communications Express 6.3 中提供了 psRoot 属性,管理员可以使用该属性置备用户,以便可以将不同用户的 PAB 数据分布在不同的 LDAP 位置。
例如 ldap://mydir.com:389/piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb
图 3–1 高度概括了用于水平伸缩 Address Book Server 的体系结构。
以下是通讯录水平可伸缩性体系结构的主要组件:
个人存储
DB
DBMap
个人存储维护用户的通讯录信息。它包含用户已经创建的所有通讯录的定义,以及这些通讯录中的所有条目。个人存储以 URL 表示,URL 说明了个人存储所在的目录实例,以及该特定目录实例中的 DN。
DB(DataBase,数据库)包含个人存储集合,如图 3–1 中所示。通讯录可以访问任意数量的 DB。每个 DB 都由定义该 DB 的连接参数的 DB-ID 定义。不同类型的 DB 指向不同的 DB 位置。
DBMap 是类型相同的 DB 的集合。每个 DBMap 都有一个引用该 DBMap 的配置信息的 ID。
psRoot 是用户 LDAP 中的属性,它指定目录实例的主机、端口,以及用于存储用户通讯录条目的 DN。psRoot 的格式如下:ldap://ldap_host:ldap_port/DN。
psRoot 属性值确定 DB 类型和 DB 位置。
在以下 psRoot 示例中:ldap://mydir.com:389/piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb
ldap:// 指明用户通讯录个人存储是通过 LDAPDB 插件进行访问的。
mydir.com:389 指定 LDAP 主机和端口。
piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb 指定个人存储的 DN。
Address Book Server 不提供任何实用程序来根据任何可伸缩性策略为用户分配 psRoot 值。管理员需要设置最适于组织的特定策略,并使用自定义脚本按该策略设置 psRoot 值。
可以使用域特定的 personalstore.properties 文件中的 db.UserPsRoot 参数开启或关闭 psRoot 属性。如果将该参数设置为 "false",则使用 db_config.properties 文件中的 defaultserver 参数。如果将该参数设置为 "true",则使用用户的 psRoot 值。必须为 psRoot 中使用的每个唯一的目录服务器实例提供在 db_config.properties 文件中配置通讯录个人存储参数中列出的个人存储参数。运行时,使用 db-key.ldaphost 和 db-key.ldapport(其中 db-key 是用于区分实例的任意字符串)对 psRoot 属性值进行解析,从而得到目录实例。如果找不到 db-key.ldaphost 和 db-key.ldapport 的匹配项,则使用 defaultserver 实例。
用户 LDAP 条目中的 psRoot 属性是 Address Book Server 支持的 URL,它定义在其中存储和检索用户个人通讯录条目的 LDAP 位置。psRoot 属性让管理员可以置备用户,以便可以将所有用户的 PAB 数据分布在多个目录位置。
对于现有的 Messenger Express 用户,如果启用了 PAB 迁移,则使用现有的 pabURI 属性构建 psRoot 属性,并在 uwc-deploy-dir/WEB-INF/config/migrate.properties 中定义一个映射表。
migrate.properties 文件中的查找表包含以下格式的 pabhost 和 pabport 条目:
pabhost.pabport.abhostport = abldaphost:abldapport
其中,pabhost.pabport 指源目录实例,abldaphost 和 abldaport 是应向其迁移 PAB 数据的目标目录实例。
例如,如果要将 PAB 数据从 pab.example.com:389 处运行的目录迁移到 abs.example.com:389 处运行的通讯录目录中,则 migrate.properties 中应存在以下项:
pab.example.com.389.abhostport = abs.example.com:389
migrate.properties 文件中可以有任意数量的查找。如果某个用户的 pabURI 属性使用 pabhost 和 pabport,则使用默认 psRoot 模式构建的 psRoot 的格式如下:
ldap://abldaphost:abldapport/piPStoreOwner=%U,o=%D,o=PiServerDb
如果没有为 pabURI 值定义查找,也就是说,在映射表中未提供与 pabURI 匹配的条目,则使用 pabhost 和 pabport 值作为 abldaphost 和 abport 的默认值。这意味着,如果没有映射表,则 Messaging Server 中的 PAB 条目将按照通讯录模式迁移到同一目录实例中的其他根目录。在这种情况下,目标目录实例将与源目录实例相同。
修补程序的安装程序未定义查找表。您需要在安装修补程序后定义查找表,然后重新启动 Web 服务器。
请确保在该域的 personalstore.properties 指向的 db_config.properties 文件中定义了 abldaphost:abldapport 目录服务器实例。
新用户登录时,会为用户条目中的 psRoot 属性设置默认值。
对于新用户,将使用 personalstore.properties 文件中定义的 psRoot 模式以及 db_config.properties 文件中的 defaultserverhost 和 defaultserverPort 值来构建 psRoot 值。例如,使用默认的 psRoot 模式时,默认的 psRoot 值的格式如下:
ldap://default-server-host :default-server-port/piPStoreOwner=%U,o=%D,o=PiServerDb
其中:
%U 是用户的登录 ID。例如 jsmith。
%D 是用户的域。例如 siroe.com。
可以配置 Communications Express 以添加多个远程通讯录。例如,可以有多个公司目录用于不同域中的用户。
对于远程通讯录,personalstore.properties 文件中应存在对应的实例。personalstore.properties 文件中的 db.xxx.urlmatch 值应该与 defaultps.xml 文件中 bookremoteurl 属性值相同。
要添加新的远程通讯录,需要添加以下项:
在 defaultps.xml 文件中添加新的通讯录节点。
此文件包含用户首次登录时在 LDAP 存储中创建的个人和公司通讯录的默认定义,其中包含了个人通讯录和公司通讯录的定义。以下是 defaultps.xml 中包含多个远程通讯录定义的 XML 段示例:
<book booktype="abook" bookremoteurl="ldap://corpdirectory/o=org1,o=isp";> <bookoc>piRemoteBook</bookoc> <entry entryID="corpdir1"> <displayname>_Corporate Directory 1</displayname> <description>This is Corporate Directory 1</description> </entry> </book> <book booktype="abook" bookremoteurl="ldap://corpdirectory/o=org2,o=isp";> <bookoc>piRemoteBook</bookoc> <entry entryID="corpdir2"> <displayname>_Corporate Directory 2</displayname> <description>This is Corporate Directory 2</description> </entry> </book> |
在 personalstore.properties 文件中添加新实例。
以下是针对两个远程通讯录配置的 personalstore.properties 文件中的条目样例。
db.idir.class = com.iplanet.iabs.ldapplug.iLDAP db.idir.urlmatch = ldap://corpdirectory/o=org1,o=isp db.idir.configpath = ../config/corp-dir db.idir.wildcardsearch = 0 db.idir.randompaging = false db.idir.corporatedir = true db.idir2.class = com.iplanet.iabs.ldapplug.iLDAP db.idir2.urlmatch = ldap://corpdirectory/o=org2,o=isp db.idir2.configpath = ../config/corp-dir db.idir2.wildcardsearch = 0 db.idir2.randompaging = false db.idir2.corporatedir = true |