在此版本的 Delegated Administrator 中,必须使用 Delegated Administrator 所提供的自定义服务提供商模板 (da.provider.skeleton.ldif) 来创建您自己的提供商组织和 SPA。
运行 Delegated Administrator 配置程序后,还可以在目录中安装样例提供商组织(带有从属组织)和样例 SPA。可通过在配置程序中选择装入样例组织来执行此操作。
但样例组织模板 (da.sample.data.ldif) 只是一个示例,并不是用来创建您自己的提供商组织的模板。有关此示例的详细信息,请参见本附录后面的样例服务提供商组织数据。
创建了提供商组织和 SPA 之后,SPA 就可以登录到 Delegated Administrator 控制台,创建和管理从属组织,并将 SPA 职责指派给该 SPA 的组织中的其他用户。但是,这些 SPA 只能管理同一个提供商组织。
要创建另一个提供商组织和管理该组织的 SPA,应再次使用自定义服务提供商模板。
本节包含以下主题:
模板创建的条目显示了在目录中安装经过编辑的模板副本后所创建的组织示例。
创建提供商组织、从属组织和 SPA 所需的信息定义了在模板中创建提供商组织、从属共享组织和 SPA 所需的参数。
创建提供商组织和服务提供商管理员的步骤说明了如何编辑模板以及如何在目录中安装信息。
自定义服务提供商模板是模板列表。
在目录中安装经过编辑的自定义服务提供商模板副本后,就创建了以下条目:
提供商组织
指定来包含 SPA 用户的从属共享组织
从属组织中被指派为 SPA 职责的一个用户
可以在其下创建完整组织的占位符节点。 这些完整组织将由此提供商组织的 SPA 来管理。
图 A–2 显示了通过安装模板而创建的条目示例。它是各个组织的目录信息树 (Directory Information Tree, DIT) 视图。
图 A–2 只是一个示例。组织名称、SPA 用户名以及 DIT 结构应该特定于您自己的安装。
图 A–2 显示的示例中的节点如下:
o=usergroup—用户/组数据的根后缀。
o=siroe.com—提供商组织所使用的邮件域。
o=MyProviderOrg—提供商组织节点。
o=MySPAUserOrg—指定来包含提供商组织用户(包括被指派为 SPA 职责的用户)的从属共享组织。
ou=people—必需的标准 LDAP 组织单元,用于包含用户。
uid=user1—MySPAUserOrg 组织中被指派为 SPA 的用户的 ID。
o=MyProviderOrgDomainsRoot—占位符节点,用于包含从属于 MyProviderOrg provider 组织的完整组织。
要创建提供商组织、一个从属组织和 SPA,需要将自定义服务提供商模板中的参数替换为特定于您的安装的信息。
当您读取这些参数时,可以看到自定义服务提供商模板中显示的 da.provider.skeleton.ldif 列表。或者打开位于以下目录的实际 ldif 文件:
da_base/lib/config-templates
有关与这些参数相关联的属性的定义,请参见 Sun Java System Communications Services Schema Reference 中的第 5 章 "Communications Services Delegated Administrator Classes and Attributes (Schema 2)" 和第 3 章 "Messaging Server and Calendar Server Attributes" 。
要创建提供商组织和从属组织,请编辑以下参数:
ugldapbasedn
目录中的用户/组数据的根后缀。
示例:
o=usergroup
dc=red,dc=iplanet,dc=com
maildomain_dn
将在其下创建提供商组织的邮件域的完整 DN。
示例:
o=siroe.com, o=usergroup
o=sesta.com,o=SharedDomainsRoot,o=Business,dc=red, \ dc=iplanet,dc=com |
maildomain_dn_str
将所有逗号 (,) 均替换为下划线 (_) 的邮件域 DN。
例如,如果邮件域 DN 为
o=siroe.com,o=SharedDomainsRoot,o=Business,dc=red, \ dc=iplanet,dc=com |
则邮件域 DN 字符串将为
o=siroe.com_o=SharedDomainsRoot_o=Business_dc=red_ \ dc=iplanet_dc=com |
providerorg
提供商组织的名称。将为提供商组织所位于的目录节点给定此名称。
此参数在 da.provider.skeleton.ldif 模板中会多次用到。
示例:
sunProviderOrgDN: o=MyProviderOrg,o=siroe.com,o=usergroup
o=MyProviderOrg
sunBusinessOrgBase: o=MyProviderOrgdomainsroot, o=usergroup
servicepackage
服务包名称,服务包可以被指派给从属于提供商组织的各个组织中的用户。这是一个多值参数。
在 da.provider.skeleton.ldif 文件中的“提供商组织”部分,您将看到以下属性:
sunIncludeServices: <servicepackage>
针对要包括在提供商组织中的每个服务包,均应添加一个 sunIncludeServices 属性实例和一个 servicepackage 参数实例。只有在此列出的这些服务包才可以被指派给从属组织中的用户。
示例:
sunIncludeServices: gold sunIncludeServices: platinum sunIncludeServices: ruby sunIncludeServices: silver |
如果不使用 sunIncludeServices 属性(即,如果删除包含 servicepackage 参数的行),则可以指派目录中的所有服务包。
domain_name
可以指派给提供商组织中的从属组织的域名。这是一个多值参数。
在 da.provider.skeleton.ldif 文件中的“提供商组织”部分,您将看到以下属性:
sunAssignableDomains: <domain_name>
sunAssignableDomains 属性中的域名是邮件域组织的 sunPreferredDomain 和 associatedDomain 属性中的名称列表的子集(部分或全部)。(邮件域就是在其下创建了此提供商组织的组织。)
针对要包括在提供商组织中的每个域名,均应添加一个 sunAssignableDomains 属性实例和一个 domain_name 参数实例。只有在此列出的域名才可以被指派给从属组织。
示例:
sunAssignableDomains: siroe.com sunAssignableDomains: siroe.net sunAssignableDomains: varrius.com sunAssignableDomains: sesta.com sunAssignableDomains: sesta.net |
provider_sub_org
SPA 用户所位于的共享组织的名称。在目录中安装经过编辑的 ldif 信息后,就创建了此组织来作为共享组织,它从属于提供商组织。它被指定为包含 SPA 用户的组织。其他被指派为此提供商组织的 SPA 职责的用户都必须位于此从属共享组织。
在 da.provider.skeleton.ldif 文件中的“提供商组织”部分,您将看到以下属性:
sunProviderOrgDN: o=<provider_sub_org>,o=<providerorg>,<maildomain_dn> |
sunProviderOrgDN 属性标识了为提供商组织用户(尤其是 SPA 用户)指定的组织。
示例:
sunProviderOrgDN: o=MySPAUserOrg,o=MyProviderOrg,o=siroe.com,o=usergroup |
preferredmailhost
作为提供商组织从属组织(SPA 用户位于其中)的首选邮件主机的计算机名。必须使用全限定域名 (Fully Qualified Fomain Name, FQDN)。
在 da.provider.skeleton.ldif 文件中的 “共享从属组织”部分,您将看到以下属性:
preferredMailHost: <preferredmailhost>
示例:
preferredMailHost: mail.siroe.com
available_domain_name
可以指派给特定从属组织中的用户的域名。这是一个多值参数。
available_domain_name 的值是为 sunAssignableDomains: <domain_name> 属性和参数给定的值的相应部分。其中 domain_name 适用于整个提供商组织,available_domain_name 适用于单个从属组织。
在 da.provider.skeleton.ldif 文件中的“共享从属组织”部分,您将看到以下属性:
sunAvailableDomainNames: <available_domain_name>
针对您希望此从属组织从提供商组织的 sunAssignableDomains 属性中的域名列表中继承的每个域名,均应添加一个 sunAvailableDomains 属性实例和一个 available_domain_name 参数实例。只有在此列出的域名才可以被指派给此从属组织。
示例:
sunAvailableDomainNames: siroe.com sunAvailableDomainNames: siroe.net sunAvailableDomainNames: varrius.com |
available_services
可供特定从属组织使用的服务包。这是一个多值参数。
指派给从属组织的服务包是使用 sunIncludeServices 属性指派给整个提供商组织的服务包的子集。
在 da.provider.skeleton.ldif 文件中的“共享从属组织”部分,您将看到以下属性:
sunAvailableServices: <available_services>
available_services 参数的格式是
service package name: count |
其中 count 是一个整数。如果未指定数量,则默认值为无限数。
针对您希望此从属组织从提供商组织的 sunIncludeServices 属性中可用的服务包中继承的每个服务包,均应添加一个 sunAvailableServices 属性实例和一个 available_services 参数实例。
示例:
sunAvailableServices: gold:1500 sunAvailableServices: platinum:2000 sunAvailableServices: silver:5000 |
要创建 SPA,请编辑以下参数:
spa_uid
SPA 用户的用户 ID。
示例:
uid: user1
spa_password
SPA 用户的密码。
示例:
userPassword: x12P3&qrS
spa_firstname
SPA 用户的名字。
示例:
givenname: John
spa_lastname
SPA 用户的姓。
示例:
sn: Smith
spa_servicepackage
指派给 SPA 用户的服务包。有关服务包的信息,请参见第 1 章,Delegated Administrator 概述中的服务包。
示例:
inetCos: platinum
spa_mailaddress
SPA 用户的邮件地址。邮件地址的域部分必须是替换 available_domain_name 参数的域值中的一个。即,它必须是可以在 SPA 用户所位于的从属组织中使用的域。有关详细信息,请参见定义提供商组织和从属组织的参数。
示例:
mail: user1@siroe.com
有关如何编辑自定义服务提供商模板以及如何在目录中安装信息的说明,请参见创建提供商组织和服务提供商管理员的步骤。
使用 ldif 文件 da.provider.skeleton.ldif 来执行以下过程。
在目录中创建一个邮件域。
如果您尚未创建邮件域,请在目录中创建一个。提供商组织及其从属共享组织将使用此邮件域。
复制并重命名 da.provider.skeleton.ldif 文件。
当您安装 Delegated Administrator 后,da.provider.skeleton.ldif 文件会安装在以下目录中:
da_base /lib/config-templates
编辑 da.provider.skeleton.ldif 文件副本中的以下参数。将这些参数替换为针对您的安装的相应值。
有关这些参数的定义,请参见创建提供商组织、从属组织和 SPA 所需的信息。
某些参数在 ldif 文件中多次用到。您必须搜索并替换每个参数的所有实例。
少数参数代表多值属性的值。可以复制并编辑这些参数及其相关联的属性名称,以便允许这些属性在 ldif 文件中出现多次。以下标出了多值参数。
<ugldapbasedn>
<maildomain_dn>
<maildomain_dn_str>
<providerorg>
<servicepackage>(多值)
<domain_name>(多值)
<provider_sub_org>
<preferredmailhost>
<available_domain_name>(多值)
<available_services>(多值)
<spa_uid>
<spa_password>
<spa_firstname>
<spa_lastname>
<spa_servicepackage>
<spa_mailaddress>
有关与这些参数相关联的属性的定义,请参见 Sun Java System Communications Services Schema Reference 中的第 5 章 "Communications Services Delegated Administrator Classes and Attributes (Schema 2)" 和第 3 章 "Messaging Server and Calendar Server Attributes" 。
使用 LDAP 目录工具 ldapmodify 在目录中安装提供商组织和 SPA。
例如,可以运行以下命令:
ldapmodify -D <directory manager> -w <password> \ -f <da.provider.finished.ldif> |
其中
<directory manager> 是 Directory Server 管理员的用户名。
<password> 是 Directory Server 管理员的密码。
<da.provider.finished.ldif> 是要在目录中作为新提供商组织和 SPA 安装的、经过编辑的 ldif 文件的名称。
该模板 (da.provider.skeleton.ldif) 包含一些参数,您必须修改这些参数才能创建新的提供商组织和 SPA。
以下列表显示了 ldif 文件中具有参数的部分。此列表没有包含整个文件。此处不包含支持 Access Manager 所需的条目和 ACI。
您只能在 ldif 文件中修改这些参数。请勿修改文件中与 Access Manager 相关的部分。
# # The following parameterized values must be replaced. # # <ugldapbasedn> :: Root suffix for user/group data # <maildomain_dn> :: Complete dn of the mail domain underneath # which the provider organization will be # created. # <maildomain_dn_str> :: The maildomain dn with all ',' replaced # by '_'. E.g. # dn --\> o=siroe.com,o=SharedDomainsRoot, # o=Business,dc=red,dc=iplanet,dc=com # dn_str --> o=siroe.com_o=SharedDomainsRoot_ # o=Business_dc=red_dc=iplanet_dc=com # <providerorg> : Organization value for provider node. # <servicepackage> :: One for each service package to include. # All service packages in the system # may be assigned by leaving this value empty. # <domain_name> :: One for each DNS name which may be assigned # to a subordinate organization. # These names form a proper subset (some or # all) of the names listed in the <maildomain> # organization's sunpreferreddomain # and associateddomain attributes. # <provider_sub_org> :: Organization value for the shared subordinate # organization in which the Provider # Administrator resides. # <preferredmailhost> :: Name of the preferred mail host for the # provider's subordinate organization. # <available_domain_name> :: one for each DNS name that an organization # allows an organization admin to use when # creating a user's mail address. This is # a proper subset of the values given for # <domain_name> (sunAssignableDomains attribute). # <available_services> :: One for each service packags available to an # organization (sunAvailableServices attribute). # These service packages form a proper subset # of the ones assigned to a provider organization # - <servicepackage> (sunIncludeServices # attribute). Form is # <service package name>:<count> # where count is an integer. If count is absent # then default is unlimited. # <spa_uid> :: The uid for the service provider administrator. # <spa_password> :: The password for the service provider # administrator. # <spa_firstname> :: First name of the service provider # administrator. # <spa_lastname> :: Last name of the service provider # administrator. # <spa_servicepackage> :: Service package assigned to the service # provider administrator. # <spa_mailaddress> :: The spa's mail address. The domain part of the # mail address must be one of the values used for # <available_domain_name>. # # # Provider Organization # dn: o=<providerorg>,<maildomain_dn> changetype: add o: <providerorg> objectClass: top objectClass: sunismanagedorganization objectClass: sunmanagedorganization objectClass: organization objectClass: sunManagedProvider sunAllowBusinessOrgType: full sunAllowBusinessOrgType: shared sunBusinessOrgBase: o=<providerorg>domainsroot,<ugldapbasedn> sunIncludeServices: <servicepackage> sunAssignableDomains: <domain_name> sunAllowMultipleDomains: true sunAllowOutsideAdmins: false sunProviderOrgDN: o=<provider_sub_org>,o=<providerorg>,<maildomain_dn> # . # . # [Entries and ACIs required by Access Manager] # . # . # # Full Organizations node # dn: o=<providerorg>DomainsRoot,<ugldapbasedn> changetype: add o: <providerorg>DomainsRoot objectClass: top objectClass: organization objectClass: sunmanagedorganization # . # . # [Entries and ACIs required by Access Manager] # . # . # # Provider Admin Role shared organizations # dn: cn=Provider Admin Role,o=<providerorg>,<maildomain_dn> changetype: add cn: Provider Admin Role objectClass: ldapsubentry objectClass: nssimpleroledefinition objectClass: nsroledefinition objectClass: nsmanagedroledefinition objectClass: iplanet-am-managed-role objectClass: top iplanet-am-role-description: Provider Admin # # Provider Admin Role full organizations # dn: cn=Provider Admin Role,o=<providerorg>DomainsRoot,<ugldapbasedn> changetype: add cn: Provider Admin Role objectClass: ldapsubentry objectClass: nssimpleroledefinition objectClass: nsroledefinition objectClass: nsmanagedroledefinition objectClass: iplanet-am-managed-role objectClass: top iplanet-am-role-description: Provider Admin # # Shared Subordinate Organization. Includes 1 user who is # the Provider Administrator. # dn: o=<provider_sub_org>,=<providerorg>,<maildomain_dn> changetype: add preferredMailHost: <preferredmailhost> sunNameSpaceUniqueAttrs: uid o: <provider_sub_org> objectClass: inetdomainauthinfo objectClass: top objectClass: sunismanagedorganization objectClass: sunnamespace objectClass: sunmanagedorganization objectClass: organization objectClass: sunDelegatedOrganization objectClass: sunMailOrganization sunAvailableDomainNames: <available_domain_name> sunAvailableServices: <available_services> sunOrgType: shared sunMaxUsers: -1 sunNumUsers: 1 sunMaxGroups: -1 sunNumGroups: 0 sunEnableGAB: true sunAllowMultipleServices: true inetDomainStatus: active sunRegisteredServiceName: GroupMailService sunRegisteredServiceName: DomainMailService sunRegisteredServiceName: UserMailService sunRegisteredServiceName: iPlanetAMAuthService sunRegisteredServiceName: UserCalendarService sunRegisteredServiceName: iPlanetAMAuthLDAPService sunRegisteredServiceName: DomainCalendarService # . # . # [Entries and ACIs required by Access Manager] # . # . dn: ou=People,o=<provider_sub_org>,o=<providerorg>,<maildomain_dn> changetype: add ou: People objectClass: iplanet-am-managed-people-container objectClass: organizationalUnit objectClass: top dn: ou=Groups,o=<provider_sub_org>,o=<providerorg>,<maildomain_dn> changetype: add ou: Groups objectClass: iplanet-am-managed-group-container objectClass: organizationalUnit objectClass: top # . # . # [Entries and ACIs required by Access Manager] # . # . # # User - provider administrator # dn: uid=<spa_uid>,ou=People,o=<provider_sub_org>,o=<providerorg>, \ <maildomain_dn> changetype: add sn: <spa_lastname> givenname: <spa_firstname> cn: <spa_firstname> <spa_lastname> uid: <spa_uid> iplanet-am-modifiable-by: cn=Top-level Admin Role,<ugldapbasedn> objectClass: inetAdmin objectClass: top objectClass: iplanet-am-managed-person objectClass: iplanet-am-user-service objectClass: iPlanetPreferences objectClass: person objectClass: organizationalPerson objectClass: inetuser objectClass: inetOrgPerson objectClass: ipUser objectClass: inetMailUser objectClass: inetLocalMailRecipient objectClass: inetSubscriber objectClass: userPresenceProfile objectClass: icsCalendarUser mailhost: <preferredmailhost> mail: <spa_mailaddress> maildeliveryoption: mailbox mailuserstatus: active inetCos: <spa_servicepackage> inetUserStatus: Active nsroledn: cn=Provider Admin Role,o=<providerorg>,<maildomain_dn> userPassword: <spa_password>