运行 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。请执行以下步骤:
将以下两个 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 容器。