运行 Delegated Administrator 配置程序之后,应执行以下任务:
仅当在 Schema 2 兼容性模式下使用 LDAP 目录时,才需执行以下任务:
如果要在该默认域中创建具有邮件服务或日历服务的用户,首先必须向该域添加邮件服务和日历服务。
要执行此任务,请使用带有 -S mail 和 -S cal 选项的 commadmin domain modify 命令。
以下示例显示了如何使用 commadmin domain modify 来向默认域添加邮件服务和日历服务:
commadmin domain modify -D chris -w bolton -n sesta.com -d siroe.com -S mail,cal -H test.siroe.com
有关 commadmin 命令的语法和详细信息,请参见第 5 章,命令行实用程序。
Messaging Server 使用以下邮件属性来识别用户的电子邮件地址和备用邮件地址:
mailAlternateAddress
mailEquivalentAddress
每个用户的邮件属性在目录范围内应该是唯一的。
以下过程显示了如何修改 Directory Server ldif 文件来强制保证这些属性的唯一性。只要 Delegated Administrator(或任何 LDAP 工具)添加条目或修改邮件属性,ldif 插件就会检查邮件属性值是否唯一。如果操作会导致两个条目具有相同的邮件属性值,那么会终止该操作。
有关邮件属性的定义,请参见《Sun Java Communications Suite 5 Schema Reference》中的第 3 章 “Messaging Server and Calendar Server Attributes”。
 强制邮件属性唯一性
强制邮件属性唯一性如果运行的是 Directory Server 5.2.5 (Java ES Release 4) 或更新版本,请遵循如下所述的过程。
如果运行的是 Directory Server 5.2.4 (Java ES Release 4),则需要在开始以下过程之前应用 5.2_Patch_4_6313027 修补程序。
如果运行的是 Directory Server 的更早版本,则需要在开始之前升级到 Directory Server 5.2.5 或更新版本。
要访问 Directory Server 修补程序,转至 http://sunsolve.sun.com。
创建一个文本文件,并写入以下内容。将文件中显示的参数替换为您的安装特定的值:
| dn: cn=Uniqueness in Attribute Set,cn=plugins,cn=config objectClass: top objectClass: nsSlapdPlugin objectClass: ds-signedPlugin objectClass: extensibleObject cn: Uniqueness in Attribute Set nssldap-pluginPath: server_root/lif/uid-plugin.so nsslapd-pluginInitfunc: NSUniqueAttrSet_Init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: on nsslapd-pluginarg0: attributeset=mail,mailalternateaddress,mailequivalentaddress nsslapd-pluginarg1: ugldapbasedn nsslapd-plugin-depends-on-type: database nsslapd-pluginId: NSUniqueAttrSet nsslapd-pluginVersion: 5.2 nsslapd-pluginVendor: Sun Microsystems, Inc. nsslapd-pluginDescription: Enforce unique values among an attribute set | 
更改以下参数:
将 server_root 替换为 Directory Server 安装目录的上一级目录。例如:/var/opt/mps/serverroot
将 ugldapbasedn 替换为您的根后缀。此后缀下的所有条目都会执行唯一性检查。
停止 Directory Server。
将您修改过的文本文件添加到 Directory Server dse.ldif 文件中。
dse.ldif 文件的位置:
dse.ldif 文件位于以下目录:
server_root/slapd- machine_name/config
其中
server_root 是 Directory Server 安装目录的上一级目录。例如:/var/opt/mps/serverroot
machine_name 是安装 Directory Server 的主机的名称。
添加文本文件的位置:
将文本文件添加到 dse.ldif 文件的 uid uniqueness 部分之后。此部分的第一行 (dn) 内容如下:
dn: cn=uid uniquenss,cn=plugins,cn=config
重新启动 Directory Server。
当 Directory Server 启动时,它会在目录中安装修改过的 dse.ldif 文件。
如果 Directory Server 因为 dse.ldif 文件产生错误而没有启动,那么检查您用来替换范例文本文件中参数的值。您用来进行安装的 LDAP 根后缀、Directory Server 安装路径与主机必须正确无误。
如果 Directory Server 仍然没有启动,最后,您可以从 dse.ldif 文件中删除文本文件并重新启动 Directory Server。
使用 Delegated Administrator 在 LDAP 目录中置备的每个用户和组都应具有服务包。一个用户或组可以具有多个服务包。
在运行 Delegated Administrator 配置程序 (config-commda) 时,可以选择让 config-commda 程序在目录中安装服务类模板样例。
有关服务类模板样例以及服务包中的可用邮件属性的信息,请参见第 1 章,Delegated Administrator 概述中的服务包。
您可以使用服务类模板样例来创建和分配服务包;但是这些模板样例只是一些示例。
您很可能会需要根据自定义的服务类模板来创建自己的服务包,使属性值适用于您的安装中的用户和组。
要创建您自己的服务包,可使用存储在 da.cos.skeleton.ldif 文件中的服务类模板,它位于以下目录中:
da-base/lib/config-templates
此文件是专门作为编写自定义服务类模板时所用的模板而创建的。配置 Delegated Administrator 时,未在 LDAP 目录中安装此文件。
da.cos.skeleton.ldif 文件包含参数化模板,对应于 Delegated Administrator 所提供的每个服务类定义:
standardUserMail
standardUserCalendar
standardUserMailCalendar
standardGroupMail
standardGroupCalendar
standardGroupMailCalendar
您可以通过使用 da.cos.skeleton.ldif 文件中的一个或多个参数化模板来创建自己的服务类模板。
da.cos.skeleton.ldif 文件中的服务类模板如下:
| # Templates for creating COS templates for service packages.
#
# There are six COS definitions :
#   standardUserMail
#   standardUserCalendar
#   standardUserMailCalendar
#   standardGroupMail
#   standardGroupCalendar
#   standardGroupMailCalendar
#
# Each definition can have zero or more COS templates which
# define specific values for the attributes listed in the 
# COS definition.
#
# Each COS definition points to a corresponding subdirectory
# in which COS templates for that definition (and no other
# definition) are found.  The templates directory structure
# is as follows:
# standardUserMail	      => o=mailuser,o=costemplates,<ugldapbasedn>
# standardUserCalendar      => o=calendaruser,o=costemplates,
#                               <ugldapbasedn>
# standardUserMailCalendar  => o=mailcalendaruser,o=costemplates,
#                               <ugldapbasedn>
# standardGroupMail	      => o=mailgroup,o=costemplates,
#                               <ugldapbasedn>
# standardGroupCalendar	  => o=calendargroup,o=costemplates,
#                               <ugldapbasedn>
# standardGroupMailCalendar => o=mailcalendargroup,o=costemplates,
#                               <ugldapbasedn>
#
# Thus, all COS templates for the user mail service are found in the
# o=mailuser,o=costemplates,<ugldapbasedn> directory, etc.
#
# It is not necessary to have any templates for a given definition. 
# In that case default values are assumed for those attributes defined
# in the COS definition.
#
# If a template is created for a definition there should be at least
# one attribute with a defined value.
#
# Consult documentation for values for the attributes.  
# Documentation includes units and default values.
#
# The finished COS derived from this skeleton is added to the 
# directory with the following command:
# 
# ldapmodify -D <directory manager> -w <password> 
# -f <cos.finished.template.ldif>
#
#
############################################################
#
#	standardMailUser COS template
#
############################################################
# There must be a least one of the following attributes:
# - mailMsgMaxBlocks
# - mailQuota
# - mailMsgQuota
# - mailAllowedServiceAccess
#
dn: cn=<service package name>,o=mailuser,o=cosTemplates,
    <ugldapbasedn>
changetype: add
objectclass: top
objectclass: LDAPsubentry
objectclass: extensibleobject
objectclass: cosTemplate
cn: <service package name>
mailMsgMaxBlocks: <mailMsgMaxBlocksValue>
mailQuota: <ma:ilQuotaValue>
mailMsgQuota: <mailMsgQuotaValue>
mailAllowedServiceAccess: <mailAllowedServiceAccessValue>
daServiceType: mail user#
#
############################################################
#
#	standardCalendarUser COS template
#
############################################################
# There must be a least one of the following attributes:
# - icsPreferredHost
# - icsDWPHost
# - icsFirstDay
#
dn: cn=<service package name>,o=calendaruser,o=cosTemplates,
    <ugldapbasedn>
changetype: add
objectclass: top
objectclass: LDAPsubentry
objectclass: extensibleobject
objectclass: cosTemplate
cn: <service package name>
icsPreferredHost: <preferredHostValue>
icsDWPHost: <dwpHostValue>
icsFirstDay: <firstDayValue>
daServiceType: calendar user
#
#
############################################################
#
#	standardMailCalendarUser COS template
#
############################################################
# There must be a least one of the following attributes:
# - mailMsgMaxBlocks
# - mailQuota
# - mailMsgQuota
# - mailAllowedServiceAccess
#
dn: cn=<service package name>,o=mailcalendaruser,o=cosTemplates,
    <ugldapbasedn>
changetype: add
objectclass: top
objectclass: LDAPsubentry
objectclass: extensibleobject
objectclass: cosTemplate
cn: <service package name>
mailMsgMaxBlocks: <mailMsgMaxBlocksValue>
mailquota: <mailQuotaValue>
mailmsgquota: <mailMsgQuotaValue>
mailAllowedServiceAccess: <mailAllowedServiceAccessValue>
daServiceType: calendar user
daServiceType: mail user
#
#
############################################################
#
#	standardMailGroup COS template
#
############################################################
# There must be a least one of the following attributes:
# - mailMsgMaxBlocks
#
#
dn: cn=<service package name>,o=mailgroup,o=cosTemplates,
    <ugldapbasedn>
changetype: add
objectclass: top
objectclass: LDAPsubentry
objectclass: extensibleobject
objectclass: cosTemplate
cn: <service package name>
mailMsgMaxBlocks: <mailMsgMaxBlocksValue>
daServiceType: mail group
#
#
############################################################
#
#	standardCalendarGroup COS template
#
############################################################
# There must be a least one of the following attributes:
# - icsdoublebooking
# - icsautoaccept
#
#
dn: cn=<service package name>,o=calendargroup,o=cosTemplates,
    <ugldapbasedn>
changetype: add
objectclass: top
objectclass: LDAPsubentry
objectclass: extensibleobject
objectclass: cosTemplate
cn: <service package name>
icsdoublebooking: <doubleBookingValue>
icsautoaccept: <autoAcceptValue>
daServiceType: calendar group
#
#
############################################################
#
#	standardMailCalendarGroup COS template
#
############################################################
# There must be a least one of the following attributes:
# - icsdoublebooking
# - icsautoaccept
# - mailMsgMaxBlocks
#
#
dn: cn=<service package name>,o=mailcalendargroup,o=cosTemplates,
    <ugldapbasedn>
changetype: add
objectclass: top
objectclass: LDAPsubentry
objectclass: extensibleobject
objectclass: cosTemplate
cn: <service package name>
mailmsgmaxblocks: <mailMsgMaxBlocksValue>
icsdoublebooking: <doubleBookingValue>
icsautoaccept: <autoAcceptValue>
daServiceType: calendar group
daServiceType: mail group | 
 创建您自己的服务包的步骤
创建您自己的服务包的步骤复制并重命名 da.cos.skeleton.ldif 文件中的某一个参数化模板。
安装了 Delegated Administrator 后,da.cos.skeleton.ldif 文件将被安装在以下目录中:
da-base/lib/config-templates
选择 da.cos.skeleton.ldif 文件中的以下模板之一来进行复制和重命名:
| standardUserMail standardUserCalendar standardUserMailCalendar standardGroupMail | 
在模板副本中编辑以下参数:
<ugldapbasedn>
将根后缀参数 <rootSuffix> 更改为您的根后缀(例如 o=usergroup)。
<ugldapbasedn> 参数将显示在 DN 中。
<service package name>
将 <service package name> 参数更改为您自己的服务包名称。
<service package name> 参数将显示在 DN 和 cn 中。
邮件属性值:
| <mailMsgMaxBlocksValue> <mailQuotaValue> <mailMsgQuotaValue> <mailAllowedServiceAccessValue> | 
编辑这些值使其符合您的特定要求。
例如,可以为邮件属性输入以下值:
| mailMsgMaxBlocks: 400 mailQuota: 400000000 mailMsgQuota: 5000 mailAllowedServiceAccess: imap:ALL$+pop:ALL$+smtp:ALL$+http:ALL | 
日历属性值:
| <preferredHostValue> <dwpHostValue> <firstDayValue> | 
这些参数代表 LDAP 属性 icsPreferredHost、icsDWPHost 和 icsFirstDay 的值。
编辑这些值使其符合您的特定要求。
有关这些属性的定义和说明,请参见 Sun Java Communications Suite Schema Reference 中的第 3 章 "Messaging Server and Calendar Server Attributes"。
在自定义的服务类模板中,必须至少使用一个属性;但不必在自定义模板中使用全部四个邮件属性。可以从服务包中删除一个或多个属性。
使用 LDAP 目录工具 ldapmodify 将服务包安装到目录中。
例如,可以运行以下命令:
ldapmodify -D <directory manager> -w <password> -f <cos.finished.template.ldif>
其中
<directory manager> 是 Directory Server 管理员的用户名。
<password> 是 Directory Server 管理员的密码。
<cos.finished.template.ldif> 是编辑的 ldif 文件的名称,该文件要作为服务包安装在目录中。
如果要在 Schema 2 兼容性模式下使用 LDAP 目录,则必须手动向该目录中添加 ACI,以便能够在您的目录中置备 Delegated Administrator。请执行以下步骤:
 为 Schema 2 兼容性模式添加 ACI
为 Schema 2 兼容性模式添加 ACI将以下两个 ACI 添加到 OSI 根目录。可以在位于 /opt/SUNWcomm/config 目录中的 usergroup.ldif 文件中找到以下两个 ACI。
请确保用您的用户组后缀来替换 ugldapbasedn。将编辑后的 usergroup.ldif 文件添加到 LDAP 目录中。
| # # acis to limit Org Admin Role # ######################################## # dn: <local.ugldapbasedn> ######################################## dn: <ugldapbasedn> changetype: modify add: aci aci: (target="ldap:///($dn),<ugldapbasedn>")(targetattr="*") (version 3.0; acl "Organization Admin Role access deny to org node"; deny (write,add,delete) roledn = "ldap:///cn=Organization Admin Role,($dn),<ugldapbasedn>";) | 
| dn: <ugldapbasedn> changetype: modify add: aci aci: (target="ldap:///($dn),<ugldapbasedn>")(targetattr="*") (version 3.0; acl "Organization Admin Role access allow read to org node"; allow (read,search) roledn = "ldap:///cn=Organization Admin Role,($dn),<ugldapbasedn>";) | 
将以下两个 ACI 添加到 DC 树根后缀。可以在位于 /opt/SUNWcomm/lib/config-templates 目录的 dctree.ldif 文件中找到以下两个 ACI。
请确保用您的 DC 树根后缀来替换 dctreebasedn,用您的用户组后缀来替换 ugldapbasedn。将编辑后的 dctree.ldif 文件添加到 LDAP 目录中。
| # # acis to limit Org Admin Role # ######################################## # dn: <dctreebasedn> ######################################## dn: <dctreebasedn> changetype: modify add: aci aci: (target="ldap:///($dn),<dctreebasedn>")(targetattr="*") (version 3.0; acl "Organization Admin Role access deny to dc node"; deny (write,add,delete) roledn = "ldap:///cn=Organization Admin Role,($dn),<ugldapbasedn>";) | 
| dn: <dctreebasedn> changetype: modify add: aci aci: (target="ldap:///($dn),<dctreebasedn>")(targetattr="*") (version 3.0; acl "Organization Admin Role access allow read to dc node"; allow (read,search) roledn = "ldap:///cn=Organization Admin Role,($dn),<ugldapbasedn>";) | 
将以下附加 ACI 添加到 DC 树根后缀。(这些 ACI 不在 dctree.ldif 文件中。)
| dn:<dctreebasedn> changetype:modify add:aci aci: (target="ldap:///<dctreebasedn>")(targetattr="*") (version 3.0; acl "S1IS Proxy user rights"; allow (proxy) userdn = "ldap:///cn=puser,ou=DSAME Users,<ugldapbasedn>";) | 
| dn:<dctreebasedn> changetype:modify add:aci aci: (target="ldap:///<dctreebasedn>")(targetattr="*") (version 3.0; acl "S1IS special dsame user rights for all under the root suffix"; allow (all) userdn ="ldap:///cn=dsameuser,ou=DSAME Users,<ugldapbasedn>";) | 
| dn:<dctreebasedn> changetype:modify add:aci aci: (target="ldap:///<dctreebasedn>")(targetattr="*") (version 3.0; acl "S1IS Top-level admin rights"; allow (all) roledn = "ldap:///cn=Top-level Admin Role,<ugldapbasedn>";) | 
将 AMConfig.properties 文件中的 com.iplanet.am.domaincomponent 属性设置为您的 DC 树根后缀。
例如,修改 <AM_base_directory>/lib/AMConfig.properties 文件中的以下行:
从
com.iplanet.am.domaincomponent=o=isp
改为
com.iplanet.am.domaincomponent=o=internet
配置 Access Manager 以使用兼容性模式。
在 Access Manager 控制台中,选中(启用)“管理控制台服务”页中的启用域组件树复选框。
将 inetdomain 对象类添加到所有 DC 树节点(例如 dc=com,o=internet),如以下示例所示:
| /var/mps/serverroot/shared/bin 298% ./ldapmodify -D "cn=Directory Manager" -w password dn: dc=com,o=internet changetype: modify add: objectclass objectclass: inetdomain | 
重新启动 Web 容器。