此部分介绍了 Connector for Microsoft Outlook 中存在的所有兼容性问题。
本节介绍了用于 Connector for Microsoft Outlook 的 Sun Java System Calendar Server 注意事项。
可在 Collaboration and Communication 下载站点中获得最新版本的 Calendar Server。
建议客户同时安装最新的修补程序集(可在 SunSolve 中获得)。
有关详细的安装说明,请参阅《Sun Java Enterprise System 2005Q4 Installation Guide for UNIX》。有关配置说明,请参阅《Sun Java System Calendar Server 6 2005Q4 Administration Guide》。
如果您要从 Calendar Server 5.x 迁移到最新版本的 Calendar Server,则必须运行 cs5migrate_recurring 实用程序来转换数据库以遵守 Connector for Microsoft Outlook 数据模型。要获得关于 cs5migrate_recurring 实用程序的信息,请向技术支持人员咨询。
Calendar Server 6 2004Q2(及更高版本)要求用户必须为用户日历和资源日历配备 LDAP mail 属性。
为了使客户能够使用 Microsoft Outlook 来安排资源日历(例如,用于会议室、诸如笔记本计算机或高射投影机之类的设备),每个资源都必须有一个电子邮件地址,即使实际上并不需要使用电子邮件。LDAP mail 属性用于指定此电子邮件地址。
根据下列情况可能具体需要添加不同的 LDAP mail 属性:
5.x 安装。在运行 cs5migrate_recurring 迁移实用程序之前,请向用户中添加 mail 属性以便使用用户日历和资源日历。要添加 mail 属性,请使用 Calendar Server 的 csattribute 实用程序或诸如 Directory Server 的 ldapmodify 之类的实用程序。
新安装(6 2004Q2 或更高版本)。使用 Calendar Server 的 csattribute 实用程序或诸如 Directory Server 的 ldapmodify 之类的实用程序,为现有用户置备 LDAP mail 属性以便使用用户日历和资源日历。
如果您在安装之后创建了新日历或用户,请在运行以下 Calendar Server 实用程序时使用必需的 -m email 选项以指定电子邮件地址:
csresource 实用程序,用于新资源日历
csuser 实用程序,用于新用户
有关 csattribute、csresource 和 csuser 的相关信息,请参阅《Sun Java System Calendar Server 6 2005Q4 Administration Guide》。有关 ldapmodify 实用程序的相关信息,请参阅 Sun Java System Directory Server Resource Kit Tools Reference。
以下示例在 sesta.com 服务器上为名为 "Room100" 的会议室添加 LDAP 邮件属性。此示例配置了 Messaging Server。如果使用的是其他电子邮件服务器,请参阅所用产品的文档以了解如何执行等效的过程。
使用 csattribute 实用程序向 LDAP 服务器中添加 mail 属性:
# ./csattribute -a mail=Room100@sesta.com add Room100
要检查是否已设置了该属性,请使用带 -v(详细)选项的 csattribute list 命令:
# ./csattribute -v list Room100 ... cn=Room 100,ou=conferenceRooms,dc=sesta,dc=com has mail: Room100@sesta.com |
以下示例将为 Messaging Server 设置 bitbucket 通道以用于为资源日历生成的电子邮件。此示例使用 sesta.com 服务器上名为 "Room100" 的资源。如果不设置 bitbucket 通道(或等效项),则需要定期删除发送到资源日历中的电子邮件。
确保在 imta.cnf 文件中定义 bitbucket 通道。
要将邮件发送到 bitbucket 通道,请使用 csresource 实用程序创建资源的电子邮件地址:
# ./csattribute -a mail=Room100@bitbucket.sesta.com add Room100
要启用这些更改,您可能还需要重新生成别名表或配置。请参阅 Messaging Server(或您的电子邮件产品)文档,以及站点自身的与邮件服务更改相关的文档和过程。
以下示例将为 Sendmail 设置 bitbucket 通道以用于为资源日历生成的电子邮件。此示例使用 sesta.com 服务器上名为 "Room100" 的资源。如果不设置 bitbucket 通道(或等效项),则需要定期删除发送到资源日历中的电子邮件。
在相应主机上的 /etc/aliases 文件中添加以下条目:
# Resource/Conference room aliases Room100: /dev/null |
使用 csresource 实用程序将资源的电子邮件地址添加到 LDAP 目录中:
# ./csattribute -a mail=Room100@sesta.com add Room100
如果需要为日历用户设置电子邮件别名,请使用 LDAP mailalternateaddress 属性。LDAP mail 属性用于提供主邮件地址,LDAP mailalternateaddress 属性用于电子邮件别名。这两个属性将把邮件地址映射为用户的日历 ID (calid)。
例如,要为名为 John Smith 且具有以下值的用户添加 mailalternateaddress 属性:
用户 ID (uid) 和 calid:johnsmith
电子邮件地址:john.smith@sesta.com
电子邮件别名的地址:johns@sesta.com 和 jsmith@sesta.com
使用以下 Calendar Server 实用程序命令:
# ./csuser -g John -s Smith -y password -l en -m john.smith@sesta.com \ -c johnsmith create johnsmith # ./csattribute -a mailalternateaddress=johns@sesta.com add johnsmith # ./csattribute -a mailalternateaddress=jsmith@sesta.com add johnsmith |
如果 Directory Server 要求对共享日历 LDAP 查找进行验证,则必须在 ics.conf 文件中设置 service.wcap.userprefs.ldapproxyauth 参数,如下所示:
匿名绑定:service.wcap.userprefs.ldapproxyauth = "no"
验证的代理绑定:service.wcap.userprefs.ldapproxyauth = "yes"
如果 service.wcap.userprefs.ldapproxyauth 为 "yes",您还必须为 calmaster 条目设置相应的 LDAP ACI。例如,要为 sesta.com 域的代理验证设置 calmaster ACI,请使用 ldapmodify 工具,如下所示:
dn: o=usergroup changetype: modify add: aci aci: (targetattr="icscalendar || cn || givenName || sn || uid || mail")(targetfilter=(objectClass=icscalendaruser))(version 3.0; acl "Allow calendar administrators to proxy - product=ics,class=admin,num=2,version=1"; allow (proxy) groupdn = "ldap:///cn=Calendar Administrators,ou=Groups,o=usergroup";)
对于域 basedn 节点,以下示例显示了正确的 ACI:
dn: o=sesta.com,o=usergroup changetype: modify add: aci aci:(targetattr="icscalendar || cn || givenName || sn || uid || mail") (targetfilter=(objectClass=icscalendaruser))(version 3.0; acl "Allow calendar users to read and search other users - product=ics,class=admin,num=3,version=1"; allow (search,read) userdn = "ldap:///uid=*, ou=People, o=sesta.com, o=usergroup";)
如果没有域,请通过删除 dn: 行中的 o=sesta.com 部分,将此 ACI 添加到根后缀本身中。
Calendar Server 配置程序 csconfigurator.sh 将添加这些 ACI。如果是从 Java Enterprise System Release 1 进行升级,则必须重新运行配置程序才能获得这些更新后的 ACI。
对于以 SSL 模式访问 Calendar Server 的用户,不支持使用 Microsoft Outlook 的“闲/忙查找”选项。要对同一个 Calendar Server 实例同时使用 SSL 模式和非 SSL 模式,用户必须指定不同的端口号,如下所示:
SSL 模式—要使用 SSL 访问 Calendar Server,请使用 SSL 端口。默认端口号为 "443",并且是在 ics.conf 文件中使用以下参数设置的:
service.http.ssl.port = "443"
非 SSL 模式—要使用 Outlook 的“空闲/忙查找”选项,请使用常规 HTTP 端口访问 Calendar Server。默认端口号为 "80",并且是在 ics.conf 文件中使用以下参数设置的:
service.http.port = "80"
有关 SSL 的信息,请参阅《Sun Java System Calendar Server 6 2005Q4 Administration Guide》中的第 8 章 “Configuring SSL”。
Calendar Server 6 2004Q2 或更高版本中包括删除日志数据库 (ics50deletelog.db),用于存储已删除的事件和待做事项(任务)。有关信息,请参阅《Sun Java System Calendar Server 6 2005Q4 Administration Guide》中的第 18 章 “Administering the Delete Log Database”。
虽然 IMAP 协议仅定义了一个用于接收邮件的系统文件夹(收件箱),但是 Outlook 和 Sun Java System Communications Express 等邮件客户端还为草稿、已发送的邮件和已删除的邮件定义了各自的系统文件夹。邮件客户端无法区分这些文件夹。这些系统文件夹是根据语言环境和客户端软件,使用不同的首选名称和本地化名称创建的。如果从多个电子邮件客户端访问(或者相同的电子邮件客户端,但从具有不同语言环境的计算机访问)一个电子邮件帐户,则会为一个系统文件夹创建多个物理的 IMAP 文件夹。
在 Outlook 中,文件夹命名如下:
Deleted Items=已删除邮件
Drafts=草稿
Sent Items=已发送项
在 Communications Express 中,文件夹命名如下:
Deleted Items=垃圾箱
Drafts=草稿
Sent Items=已发送项
使用新的 Sun Java System Connector for Microsoft Outlook 邮件系统映射文件,可以在 Outlook 与 Communications Express 之间提供更好的互操作性。此解决方案使管理员能够配置系统文件夹的映射方式。uwc_folders.map 文件包含 Communications Express 的系统文件夹映射定义。outlook_folders.map 文件包含 Connector for Microsoft Outlook 的系统文件夹映射定义。
您可以选择其中一个映射文件夹文件,将其用作部署配置程序(在“邮件”选项卡下)中的默认系统文件夹映射定义。选择“Outlook 样式”或“Communications Express 样式”,以指示用户程序应使用这两个标准中的哪个标准来命名用户的 IMAP 文件夹。此选择确定了将使用两个映射文件(outlook_folders.map 或 uwc_folders.map)中的哪个文件来映射用户的 IMAP 文件夹名称。运行此程序之前,管理员可以编辑这些文件以满足本地要求(只要原始文件名保持不变)。
接下来,需要为 Communications Express 定义系统文件夹。i18n.js 文件用于定义 Communications Express 的系统文件夹名称。此文件位于 /var/opt/SUNWmsgsr/config/html/ lang 目录中,其中 lang 是特定的本地化语言(例如 fr 表示法文)。需要修改此文件,以使映射条目与 sjoc_folders.map 文件中的条目类似。
例如,在默认情况下,法文的 i18n.js 文件中的文件夹映射如下:
i18n[’INBOX’] = ’Inbox’ i18n[’trash folder’] = ’trash’ i18n[’draft folder’] = ’draft’ i18n[’sent folder’] = ’sent’ ... fldr[’INBOX’] = ’French Inbox’ fldr[’trash’] = ’French Trash’ fldr[’draft folder’] = ’French Draft Folder’ fldr[’sent folder’] = ’French Sent Folder’
i18n[x ] 的值用于在 IMAP 存储中创建系统文件夹。例如,如果 i18n[’trash folder’]= ’trash’,则将在 IMAP 存储中创建名为 trash 的文件夹。fldr[y] 的值用于在客户端界面中显示系统文件夹名称。
在 sjoc_folders.map 文件中,类似的文件夹映射如下:
[fr] INBOX=’Bo?te de réception’ Deleted Items=’?léments supprimés’ Drafts=’Brouillons’ Sent Items =’?léments envoyés’
因此,应修改法文的 i18n.js 文件夹映射,使其与 sjoc_folders.map 文件相匹配:
i18n[’INBOX’] = ’Bo?te de réception’ i18n[’trash folder’] = ’?léments supprimés’i18n[’draft folder’] = ’Brouillons’ i18n[’sent folder’] = ’?léments envoyés’ ... fldr[’INBOX’] = ’Bo?te de réception’ fldr[’trash’] = ’?léments supprimés’ fldr[’Drafts’] = ’Brouillons’ fldr[’Sent’] = ’?léments envoyés’
需要修改 i18n.js 文件表示的每种语言。
由于 i18n.js 文件是使用 UTF8 代码编写的,因此需要使用可以保存 UTF8 代码的编辑器。
此新文件夹映射定义仅对新用户有效。
用户登录到 Communications Express 之前,需要先设置用户的首选语言。要执行此操作,请使用 ldapmodify 命令设置 preferredLanguage 或 preferredLocale 属性。
新用户应该仅看到一组系统文件夹,但以下情况除外:
用户登录到语言环境设置为法文的 Outlook 中。稍后,该用户又登录到首选语言设置为英文的 Communications Express 中。此用户将在 Outlook 和 Communications Express 中看到系统文件夹 Trash、Draft、Sent、?léments supprimés、Brouillons 和 ?léments envoyés。
随 Sun Java System Communications Services 一起发行的所有客户端产品都允许用户搜索企业目录及其各自的通讯录。虽然这项功能发挥了作用,但可能仍需做一些 LDAP 调整来改善用户体验。
此部分将介绍:
无论您使用的是 Communications Express 还是 Connector for Microsoft Outlook,在您的个人联系人或公共通讯录中搜索某个字符串都是一个语言环境特定的操作。例如,搜索 "Gaelle" 的法文用户不但希望获得包含字符串 "Gaelle" 的返回条目,而且还希望获得包含字符串 "Ga?lle" 的任何条目。
用于控制基于语言环境向用户显示条目的方式的各种规则称为排序规则或排序顺序。排序顺序用于提供有关对给定语言的字符如何排序的语言和文化特定的信息。它可以确定字母在字母表中的顺序、如何比较有重音符的字母与没有重音符的字母以及比较字符串时是否存在可以忽略的字符。排序顺序还考虑到了与语言有关的文化特定的信息,例如阅读语言的方向(从左到右、从右到左或者从下到上和从上到下)。
Sun Java System Directory Server 支持各种语言环境和排序规则(请参见《Sun Java System Directory Server 5 2005Q1 Administration Reference》中的 "Identifying Supported Locales")。根据用户库的不同,您首先需要选择在环境中最有意义的语言环境。下面我们将使用英文(美国)语言环境 (OID = 1.3.6.1.4.1.42.2.27.9.4.34.1) 来举例说明。
要指定执行搜索时使用的语言环境,请使用匹配的规则过滤器语法,如《Sun Java System Directory Server 5 2005Q1 Administration Reference》中的 "Searching an Internationalized Directory" 所述。此语法使您可以指定语言环境以及搜索类型(等同、子字符串等等)。
例如,以下过滤器使用英文(美国)排序规则 (1.3.6.1.4.1.42.2.27.9.4.34.1) 对 CN 属性执行子字符串比较 (.6)。过滤器将在 CN 中查找以 "Gae" 为开头的字符串
cn:1.3.6.1.4.1.42.2.27.9.4.34.1.6:=Gae*
执行 LDAP 搜索时,大多数性能问题都是由没有索引或未正确配置索引造成的。在默认情况下,Directory Server 已配置,以便为 Communications Express 或 Connector for Microsoft Outlook 发出的查找编制索引并能够在合理的时间范围内返回索引结果。然而,Directory Server 没有设置国际化搜索。因此,用户必须改变现有索引才能使用选定的排序规则。《Sun Java System Directory Server 5 2005Q1 Administration Guide》中的 "Managing Indexes" 部分中介绍这一操作过程。
例如,CN 属性在默认情况下按 userRoot 后缀编制索引:
# ldapsearch -D "cn=Directory manager" -b "cn=cn,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config" "objectclass=*" cn=cn,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config objectClass=top objectClass=nsIndex cn=cn nsSystemIndex=false nsIndexType=pres nsIndexType=eq nsIndexType=sub
要使其能够应用英文(美国)排序规则进行国际化搜索,请添加一个具有英文(美国)OID 的 nsMatchingRule 属性。客户端将执行子字符串搜索,因此必须向 OID 中添加子字符串后缀 (".6"):
#ldapmodify -D "cn=Directory manager" dn: cn=cn,cn=index,cn=userRoot,cn=ldbm database, cn=plugins,cn=config changetype: modify add: nsMatchingRule nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.34.1.6
请不要在该值的开头或结尾处添加任何空格、制表符或其他非可见字符。
nsMatchingRule 是一个多值属性。可以添加对同一个 OID 或不同 OID 的各种类型的搜索。
然后用户必须运行位于 serverroot/slapd-instance 中的 db2index.pl 脚本:
# perl db2index.pl -D "cn=Directory Manager" -w \ secret -n userRoot -t cn
此操作是联机运行的,可能要花费一段时间才能完成。另外,可以重新初始化后缀。请参见《Sun Java System Directory Server 5 2005Q1 Administration Guide》中的 "Reinitializing a Suffix"。
控制台还可用于添加 nsMatchingRule(请参见《Sun Java System Directory Server 5 2005Q1 Administration Guide》中的 "Managing Indexes" 部分)。
在以下各节中,提供了需要修改的索引列表。请确保未执行任何非索引搜索。您可以通过查看 Directory Server 访问日志文件(并在搜索结果条目中查找 =U 的注释)来进行监控。
Communications Express 所使用的搜索过滤器需要更改才能应用匹配的规则语法。通过启用在 db_config.properties 文件(对于个人存储,该文件位于 deployed-path/WEB-INF/ldappstore 中;对于企业目录,该文件位于 deployed-path/WEB-INF/corp-dir 中)中指定的排序规则参数可以实现此过程。
参数如下:
# Collation Rule # Uncomment below to apply collation rule # collation_rule=en-US # Search Fields for which collation rule should be applied. # The fields provided here should be disambiguator formatted fields # e.g. entry/displayname, person/givenname etc. # Uncomment below to supply the comma-separated fields # search_fields=entry/displayname
取消 collation_rule 和 search_fields 参数的注释即可启用排序规则。要在搜索中指定一组单独的字段或字段集,请将 search_fields 的值更改为所需值。collation_rule 可以在后缀没有指明搜索类型的情况下包含对应于该语言的语言标记与 OID(例如 1.3.6.1.4.1.42.2.27.9.4.34.1)。必须在做出更改后启动 Web 容器实例。
必须为 LDAP 服务器上的以下属性编制索引才能对 Communications Express 执行国际化搜索:
cn(使用 ou=people/ou=groups 后缀)
displayname(使用 o=piServerDb 后缀)
Connector for Microsoft Outlook 可以配置为使用 DN 和密码的绑定,也可以配置为匿名绑定。要启用对企业目录的匿名访问,请在 ou=people/ou=group 子树的根级别上添加 ACL。
例如,如果根级别为 dc=red,dc=sesta,dc=com,请做出以下设置:
#ldapmodify -D "cn=Directory manager" dn: dc=red,dc=sesta,dc=com changetype: modify add: aci aci: (targetattr != "userPassword") (version 3.0;acl "Anonymous access"; allow (read,compare,search) (userdn = "ldap:///anyone");)
本 7 2005Q4 发行版中的新增功能,Connector for Microsoft Outlook 现已允许最终用户浏览目录。当打开通讯录页面时,将显示目录中的前 10 个条目。然后,用户可以向上和向下滚动查看,也可以键入一些字符以查看自动刷新的结果。这是与先前版本的 Connector for Microsoft Outlook 的不同之处,用户使用那些先前版本时只能搜索一个特定的用户。
要启用此功能,同时还要保持良好的性能,连接器需要使用两种 LDAP 控制扩展功能:虚拟列表视图 (Virtual List View, VLV) 和服务器端搜索结果排序 (Server Side Sorting of Search Results) (RFC 2891)。以下 ldapsearch 示例将返回支持的控制列表:
# ldapsearch -s base "objectclass=*" supportedControl supportedControl=2.16.840.1.113730.3.4.2 supportedControl=2.16.840.1.113730.3.4.3 supportedControl=2.16.840.1.113730.3.4.4 supportedControl=2.16.840.1.113730.3.4.5 supportedControl=1.2.840.113556.1.4.473 ------> Server Side Sort Control supportedControl=2.16.840.1.113730.3.4.9 ------> VLV Control supportedControl=2.16.840.1.113730.3.4.16 supportedControl=2.16.840.1.113730.3.4.15 supportedControl=2.16.840.1.113730.3.4.17 supportedControl=2.16.840.1.113730.3.4.19 supportedControl=1.3.6.1.4.1.42.2.27.9.5.2 supportedControl=1.3.6.1.4.1.42.2.27.9.5.6 supportedControl=2.16.840.1.113730.3.4.14 supportedControl=1.3.6.1.4.1.1466.29539.12 supportedControl=2.16.840.1.113730.3.4.12 supportedControl=2.16.840.1.113730.3.4.18 supportedControl=2.16.840.1.113730.3.4.13
Sun Java System Directory Server 支持使用这两种控制机制。不过,在默认情况下,VLV 控制仅适用于通过验证的客户:
ldapsearch -D "cn=Directory Manager" -b \ "oid=2.16.840.1.113730.3.4.9,cn=features,cn=config" \ "objectclass=*" aci oid=2.16.840.1.113730.3.4.9,cn=features,cn=config \ aci=(targetattr != "aci")(version 3.0; acl "VLV Request Control"; \ allow( read, search, compare, proxy ) userdn = "ldap:///all";)
要允许匿名访问 VLV 控制,请添加相应的 ACI:
#ldapmodify -D "cn=Directory Manager" \ dn: oid=2.16.840.1.113730.3.4.9,cn=features,cn=config \ changetype: modify add: aci aci: (targetattr !="aci")\ (version 3.0; acl "VLV Request Control"; allow (compare,read,search) \ userdn = "ldap:///anyone"; )
要提高要求同时使用 VLV 和排序的搜索性能,请在 Directory Server 中建立浏览索引(如《Sun Java System Directory Server 5 2005Q1 Administration Guide》中的 "Managing Browsing Indexing" 所述)。每个浏览索引均特定于一个基本 DN、搜索过滤器、范围以及排序属性。可以在客户端使用部署配置工具调整 VLV 设置。
在特殊情况下,如果基本 DN 为 dc=red,dc=iplanet,dc=com、过滤器为 (&(mail=*)(cn=*)),并对 cn 属性进行排序,则需要建立浏览索引。浏览索引信息将被添加到包含基本 DN(在本例中为 userRoot)的配置中:
#ldapmodify -D "cn=Directory Manager" dn: cn=Browsing red.sesta.com,cn=userRoot, cn=ldbm database,cn=plugins,cn=config changetype: add objectClass: top objectClass: vlvSearch cn: Browsing red.sesta.com vlvbase: dc=red,dc=sesta,dc=com vlvscope: 2 vlvfilter: (&(mail=*)(cn=*)) aci: (targetattr="*") (version 3.0; acl "VLV for Anonymous"; allow (read,search,compare) userdn="ldap:///anyone";) dn: cn=Sort by cn, cn=Browsing red.sesta.com,cn=userRoot, cn=ldbm database,cn=plugins,cn=config changetype: add objectClass: top objectClass: vlvIndex cn: Sort by cn vlvSort: cn
接下来运行位于 serverroot/slapd-instance 中的 vlvindex 命令:
# ./vlvindex -n userRoot -T "Sort by cn"