Sun Java System Delegated Administrator 6.4 管理指南

第 4 章 自定义 Delegated Administrator

当您利用配置程序 (config-commda) 安装和配置 Delegated Administrator 之后,可以根据需要自定义您的配置。本章提供了有关如何自定义 Delegated Administrator 某些功能的示例。

开始自定义配置之前,您应该对所有现有 Delegated Administrator 配置文件进行备份。

此外,在升级 Delegated Administrator 时也可能会丢失自定义配置数据。因此,在升级 Delegated Administrator 或重新运行 Delegated Administrator 配置程序之前,您也应该保存自定义配置。有关详细信息,请参见保留现有配置

本章首先列出配置文件的位置,并说明如何将自定义文件重新部署到正确的位置。然后说明如何自定义特定的功能。包括以下主题:

部署自定义配置文件

当使用 config-commda 程序配置 Delegated Administrator 时,config-commda 会将配置文件保存在 Delegated Administrator 安装目录中的配置数据标准位置。然后,config-commda 程序将配置文件部署到已部署 Delegated Administrator 的 Web 容器的应用程序系统信息库中。

因此,配置文件的部署位置会根据您所使用的 Web 容器不同而各异。

在运行时,Delegated Administrator 使用配置文件的属性值,这些配置文件位于其部署位置——也就是部署 Delegated Administrator 的 Web 容器的系统信息库。

要自定义配置文件,执行以下步骤:

  1. 编辑位于 Delegated Administrator 安装目录中的原始配置文件。

  2. 使用 Delegated Administrator 提供的脚本将配置文件重新部署到 Web 容器。

自定义配置文件时,在将文件重新部署到 Web 容器之前,新值不会生效。

本节的剩余部分说明以下主题:

配置文件的原始(标准)位置

Delegated Administrator 配置完成后(在您运行 config-commda 程序之后),配置文件位于以下目录中:

配置文件的部署位置

运行 config-commda 程序后,根据您所选的部署 Delegated Administrator 的 Web 容器,配置文件会部署到以下位置。

Delegated Administrator 服务器文件 (resource.properties) 的部署位置

resource.properties 文件部署到以下默认位置之一:

Web Server 6.x

/opt/SUNWwbsvr/https-hostname/webapps/https-hostname \
/commcli/WEB-INF/classes/sun/comm/cli/server/servlet
Web Server 7.x

/var/opt/SUNWwbsvr7/https-hostname/webapps/hostname \
/commcli/WEB-INF/classes/sun/comm/cli/server/servlet
Application Server 7.x

/var/opt/SUNWappserver7/domains/domain1/server1 \
/applications/j2ee-modules \
/commcli/WEB-INF/classes/sun/comm/cli/server/servlet
Application Server 8.x

/var/opt/SUNWappserver/domains/domain1 \
/applications/j2ee-modules \
/commcli/WEB-INF/classes/sun/comm/cli/server/servlet

Delegated Administrator 控制台配置文件的部署位置

以下文件部署到同一默认位置:

根据您所选的部署 Delegated Administrator 的 Web 容器,这些属性文件会被部署到以下默认位置之一:

Web Server 6.x

/opt/SUNWwbsvr/https-hostname/webapps/https-hostname \
/da/WEB-INF/classes/com/sun/comm/da/resources
Web Server 7.x

/var/opt/SUNWwbsvr7/https-hostname/webapps/hostname \
/da/WEB-INF/classes/com/sun/comm/da/resources
Application Server 7.x

/var/opt/SUNWappserver7/domains/domain1/server1 \
/applications/j2ee-modules \
/Delegated_Administrator/WEB-INF \
/classes/com/sun/comm/da/resources
Application Server 8.x

/var/opt/SUNWappserver/domains/domain1 \
/applications/j2ee-modules \
/Delegated_Administrator/WEB-INF \
/classes/com/sun/comm/da/resources

Procedure部署自定义配置文件

  1. 以超级用户身份(或成为超级用户)登录并转至以下目录:

    /opt/SUNWcomm/sbin

  2. 运行适当的部署脚本将您的自定义配置文件重新部署到 Delegated Administrator 所使用的 Web 容器。

    必须将配置文件重新部署到上次运行 Delegated Administrator 配置程序 (config-commda) 将 Delegated Administrator 部署到的 Web 容器中。

    使用可同时应用到您的自定义配置文件和正确的 Web 容器的部署脚本。

    例如,要将 resource.properties 文件重新部署到 Web Server 6,运行此命令:


    # ./config-wbsvr-commcli
    

    有关部署脚本的列表,请参见配置文件部署脚本

配置文件部署脚本

每个 Web 容器有两个部署脚本。一个脚本部署 Delegated Administrator 服务器文件。另一个部署 Delegated Administrator 控制台文件:

部署脚本如下所示:

Web Server 6
  • 适用于 Delegated Administrator 服务器文件 (resource.properties) 的部署脚本:

    config-wbsvr-commcli

  • 适用于 Delegated Administrator 控制台文件的部署脚本:

    config-wbsvr-da

要运行脚本,输入以下命令:


# ./config-wbsvr-commcli
# ./config-wbsvr-da
Web Server 7.x
  • 适用于 Delegated Administrator 服务器文件 (resource.properties) 的部署脚本:

    config-wbsvr7x-commcli

  • 适用于 Delegated Administrator 控制台文件的部署脚本:

    config-wbsvr7x-da

要运行脚本,输入以下命令:


# ./config-wbsvr7x-commcli
# ./config-wbsvr7x-da
Application Server 7.x
  • 适用于 Delegated Administrator 服务器文件 (resource.properties) 的部署脚本:

    config-appsvr-commcli

  • 适用于 Delegated Administrator 控制台文件的部署脚本:

    config-appsvr-da

要运行脚本,输入以下命令:


# ./config-appsvr-commcli deploy
# ./config-appsvr-da deploy

必须使用参数 deploy 运行这些命令。

Application Server 8.x
  • 适用于 Delegated Administrator 服务器文件 (resource.properties) 的部署脚本:

    config-appsvr8x-commcli

  • 适用于 Delegated Administrator 控制台文件的部署脚本:

    config-appsvr8x-da

要运行脚本,输入以下命令:


# ./config-appsvr8x-commcli deploy
# ./config-appsvr8x-da deploy

必须使用参数 deploy 运行这些命令。

使用服务范围默认值配置首选邮件主机

如果要使用服务器范围的默认值来设置“首选邮件主机”和“首选邮件存储库”,可以执行本节中所述的任务。

如果需要从控制台(具体来讲,是从“新建组织”向导和“组织属性”屏幕)删除“首选邮件主机”字段,可以执行以下步骤:

Security.properties 文件允许您为所有角色或个别角色自定义 Delegated Administrator 控制台。

Procedure从控制台删除首选邮件主机

  1. 将以下的内容添加到 Security.properties 文件中。


    # Remove Preferred Mail Host from UI
    *.NewOrganizationPage6.PreferredMailHostProperty=INVISIBLE
    *.NewOrganizationSummaryPage.PreferredMailHostSummaryProperty=INVISIBLE
    *.OrgProperties.MailHostName=INVISIBLE
    *.OrgProperties.MailHostNameText=INVISIBLE
    *.OrgProperties.MailHostValue=INVISIBLE

    Security.properties 文件位于以下目录:

    da-base/data/da/WEB-INF/classes/com/sun/comm/da/resources

    注意:您可以向此文件中添加行以进行自定义,但是不能编辑已有的行。编辑现有的行会导致控制台中抛出异常。

  2. 将编辑的 Security.properties 文件重新部署到 Delegated Administrator 控制台使用的 Web 容器。

    必须运行脚本将自定义 Security.properties 文件部署到您的 Web 容器,更改才会生效。

    有关如何将自定义的属性文件部署到特定 Web 容器的说明,请参见部署自定义配置文件

Security.properties 文件属性的语法和值

文件中的属性的格式为:Security Element Name=Permission

安全元素名的格式为:角色名.容器视图名.控制台元素名

安全元素指定了要定义其权限的控制台元素和角色。如果不知道元素名称,请查看页来源,以使该页上的名称与您所需的控制台元素相匹配。

页面上的名称是全限定名。您只需挑选名称的后两个元素,其格式为容器视图名.控制台元素名

Delegated Administrator 的有效角色名如下:

"ProviderAdminRole" (SPA) 有关此角色的信息,请参见附录 A,服务提供商管理员和服务提供商组织

"OrganizationAdminRole" (OA)

"Top-levelAdminRole" (TLA)

"*"(将权限应用于所有角色,除非对于某一特定角色,该权限被忽略)

权限必须是以下字符串之一:

为 Delegated Administrator 添加插件

您可以自定义 Delegated Administrator 以支持以下插件:

启用插件

要启用这些插件,请编辑 commcli servlet resource.properties 文件,该文件位于以下目录:


da-base/data/WEB-INF/classes/sun/comm/cli/server/servlet/ \
resource.properties

(默认情况下,da-base/opt/SUNWcomm。)

这些插件位于 resource.properties 文件中标题如下的部分:


########################
# Plugin Configuration #
##########################

每个插件均带有 "plugin" 后缀。当前的列表如下所示:


jdapi-mailhoststoreplugin=disabled

jdapi-mailhoststorepluginclass=sun.comm.cli.server.util.MailHostStorePlugin
jdapi-mailhoststorepluginfile=/tmp/mailhostmailstore
jdapi-maildomainreportaddressplugin=enabled
jdapi-maildomainreportaddresspluginclass=sun.comm.cli.server.
  util.MailDomainReportAddressPlugin
jdapi-uidautogenerationplugin=disabled
jdapi-uidautogenerationpluginclass=sun.comm.cli.server.util.UidPlugin

在编辑 resource.properties 文件后,将它重新部署到 Delegated Administrator 服务器所使用的 Web 容器。

必须运行脚本将自定义 resource.properties 文件部署到您的 Web 容器,更改才会生效。

有关如何将自定义的属性文件部署到特定 Web 容器的说明,请参见部署自定义配置文件

插件格式

每个插件至少具有两行,其格式如下:

要启用插件,请将 "disabled" 改为 "enabled"。

本节中列出的所有插件的插件类均已提供。这些类位于以下目录:

da-base/data/WEB-INF/classes/sun/comm/cli/server/util

您不需要对这些类进行任何操作。

MailHostStorePlugin 所需的其他平面文件

MailHostStorePlugin 需要另外一个平面文件,该文件将包含在插件的第三行中。插件将读取该平面文件中的值并使用该值来设置各个属性值。如果启用了此插件,则该文件必须存在,否则将发生错误。

创建 LDAP 对象时添加自定义对象类

您可以启用 Delegated Administrator 来向新的用户、组、资源或组织的 LDAP 条目中添加自定义类。要完成此任务,可自定义由 Access Manager 安装在目录中的相应的对象创建模板。

例如,BasicUser 创建模板决定了在创建新用户时要向用户条目中添加哪些对象类和属性。您可以利用自定义对象类来更新 BasicUser 创建模板。此后,该自定义对象类会与标准对象类一起添加到每个新的用户条目中。

以下过程说明了如何自定义 BasicUser 模板。您可以按照相同的过程来自定义 BasicGroup、BasicResource 和 BasicOrganization 创建模板。

Procedure在用户创建进程中添加自定义对象类

  1. 请确保您在目录模式下定义了自定义对象类。

  2. 查找以下目录条目:


    ou=basicuser,ou=creationtemplates,ou=templates,ou=default,
    ou=globalconfig,ou=1.0,ou=dai,ou=services,
    o=$Root_Suffix
    

    其中 $Root_Suffix 是您的目录的根后缀。

  3. 将以下 attribute:value 添加到该条目中:


    sunkeyValue:required=objectClass=$Your_Custom_Objectclass.

    其中 $Your_Custom_Objectclass 是您的自定义的对象类。

自定义用户登录帐户

当您运行 Delegated Administrator 配置程序 (config-commda) 时,用来登录到 Delegated Administrator 的值被设置为 uid

例如,如果您打算作为 TLA 登录,而 TLA 的 uidjohn.doe,那么就要使用 john.doe 登录到 Delegated Administrator。

您可以自定义 Delegated Administrator 以便能够使用其他值作为用户登录帐户。例如,可以添加邮件地址 (mail)。

如何设置用户登录帐户值

config-commda 程序可利用 resource.properties 文件中的 loginAuth-idAttr 属性将此值设置为 uid,如以下示例所示:


loginAuth-searchBase=<$rootSuffix>
servicepackage-cosdefbasedn = <$rootSuffix>
loginAuth-idAttr-1=uid

其中 <$rootSuffix> 是您的目录的根后缀。

添加用户登录帐户值

通过编辑 resource.properties 文件,您可以设置其他值来作为用户登录帐户。

resource.properties 文件所在的位置为


da-base/data/WEB-INF/classes/sun/comm/cli/server/servlet/ \
resource.properties

例如,要能够使用邮件地址(例如 john.doe@sesta.com)来登录,您可以向 resource.properties 文件中添加以下行:


loginAuth-searchBase=<$rootSuffix>
servicepackage-cosdefbasedn = <$rootSuffix>
loginAuth-idAttr-1=uid
loginAuth-idAttr-2=mail

其中 <$rootSuffix> 是您的目录的根后缀。

请注意,每个新的 loginAuth-idAttr 属性值必须是递增的。在本例中,添加的是第二个值,因此应向 loginAuth-idAttr 中添加 -2

可以添加多个 loginAuth-idAttr 属性实例:


loginAuth-idAttr-1=uid
loginAuth-idAttr-2=mail
| 
loginAuth-idAttr-n=<login-in value>

在编辑 resource.properties 文件后,将它重新部署到 Delegated Administrator 服务器所使用的 Web 容器。

必须运行脚本将自定义 resource.properties 文件部署到您的 Web 容器,更改才会生效。

有关如何将自定义的属性文件部署到特定 Web 容器的说明,请参见部署自定义配置文件

要求为新用户指派服务包

默认情况下,Delegated Administrator 允许您创建新用户而不为该用户指派服务包。

您可以更改默认设置,以便要求必须为每个新用户至少指派一个服务包。

Procedure要求为新用户指派服务包的步骤

  1. 在一个文本编辑器中打开 daconfig.properties 文件。

    daconfig.properties 文件默认情况下位于以下目录:

    da-base/data/da/WEB-INF/classes/com/sun/comm/da/resources

  2. user.atleastOneServicePackage 属性值从 false 改为 true

    默认情况下,此值为 false

    例如:

    user.atleastOneServicePackage=true

    将此值设置为 true 之后,当使用 Delegated Administrator 控制台中的“创建新用户”向导时,就必须为成功创建的新用户至少指派一个服务包。

  3. 将编辑的 daconfig.properties 文件重新部署到 Delegated Administrator 控制台所使用的 Web 容器。

    必须运行脚本将自定义 daconfig.properties 文件部署到您的 Web 容器,更改才会生效。

    有关如何将自定义的属性文件部署到特定 Web 容器的说明,请参见部署自定义配置文件

添加新的日历时区

您可以通过添加新的 Calendar Server 时区来自定义 Delegated Administrator。这样,Delegated Administrator 就可以使用该新时区来置备组织、用户、组和资源。

要添加新时区,执行以下任务。要使用 Delegated Administrator 实用程序管理新时区,仅执行第一个任务。要通过 Delegated Administrator 控制台管理新时区,必须执行两个任务。

时区添加之后,可通过执行以下任务,将它设置为新创建用户的默认时区:

Procedure在 Delegated Administrator 中添加新时区的步骤

必须执行此任务,您才能使用 commadmin 实用程序或 Delegated Administrator 控制台来按照新时区置备用户。此任务会用新时区值更新 Access Manager。此任务完成后,可使用 commadmin 将新时区指定给用户。

  1. 在 Calendar Server 中添加新时区。

    要完成此步骤,必须编辑 timezones.ics 文件和其他 Calendar Server 文件。有关说明,请参见 Sun Java System Calendar Server 管理指南中“管理 Calendar Server 的时区”的“添加新时区”一节。

  2. 备份 UserCalendarService.xmlDomainCalendarService.xml 文件。

    xml 文件默认情况下位于以下目录:

    da-base/lib/services

  3. 编辑 UserCalendarService.xmlDomainCalendarService.xml 文件以便在 Delegated Administrator 中添加新时区。

    • UserCalendarService.xml DomainCalendarService.xml 文件中,都找到以下条目标题:


      <AttributeSchema name="icstimezone"
                                  type="single choice"
                                  syntax="string"
                                  any="optional|adminDisplay">
                                  <ChoiceValues>
    • 将新时区值添加到 <ChoiceValues> 列表中。

  4. 运行 Access Manager amadmin 实用程序以删除当前的服务并添加更新的服务。

    UserCalendarService.xmlDomainCalendarService.xml 文件都运行以下 amadmin 命令:


    ./amadmin -u <admin> -w <password> -r CalendarService
    

    ./amadmin -u <admin> -w <password> 
    -s da_base/lib/services/CalendarService.xml

    其中 CalendarServiceUserCalendarServiceDomainCalendarService 之一。


    注 –

    如果您还打算将新时区设置为默认时区,则可以在执行上述两个任务之后运行这些 amadmin 命令。有关详细信息,请参见更改 Delegated Administrator 中的默认时区的步骤


  5. 重新启动您的 Web 容器以使所做的更改生效。

  6. 要使 Delegated Administrator 控制台能显示新时区,请参见在 Delegated Administrator 控制台中显示和管理新时区

Procedure在 Delegated Administrator 控制台中显示和管理新时区

此任务向控制台显示的时区列表中添加新时区。然后,此任务将在目录中保存新时区值。

要在控制台中显示时区,必须向 Resources.properties 文件添加新值。

要允许控制台在目录中存储时区,必须向 daconfig.properties 文件中的两个列表添加新值。第一个列表指定存储在 LDAP 目录中的实际值。第二个列表使控制台能够将时区的显示值(可能已本地化)映射到存储的值。

  1. 编辑 Resources.properties 文件,该文件位于 Delegated Administrator 数据目录下。

    Resources.properties 文件默认情况下位于以下目录:


    da-base/data/da/WEB-INF/classes/com/sun/ \
    comm/da/resources

    要编辑 Resources.properties,请搜索 rsrc.Timezone 属性并将新时区添加到相应的列表中。您可以本地化这个新时区的显示值。

  2. 找到位于 Delegated Administrator 数据目录下的 daconfig.properties 文件中的时区值列表。

    daconfig.properties 文件默认情况下位于以下目录:


    da-base/data/da/WEB-INF/classes/com/sun/ \
    comm/da/resources

    要查找时区值的列表,搜索以下内容:

    #Timezone values - only English

    这些是存储在 LDAP 目录中的值。新时区必须以英文书写,这是存储在目录中的值必需的格式。

  3. 将新时区添加到列表。

    例如,要将 America/Miami 添加到列表,假设 Timezone1 目前有 24 个值,那么您应该添加

    rsrc.Timezone1-25=America/Miami

    此值将是显示在控制台中的 Americas 下拉列表中的第 25 个时区。注意,根据前述任务中您在 Resources.properties 文件中指定的内容不同,时区可能以别的语言显示。

  4. 找到 daconfig.properties 文件中的反向时区映射列表。

    该列表提供了本地化时区值(在控制台中显示)与您在上述步骤 2 中指定的实际值的映射关系。

    要查找反向映射的列表,搜索以下内容:

    #reverse timezone mappings - used by DA in getting localized tz value
  5. 向反向映射列表添加新值。

    例如,要将 America/Miami 添加到列表,您应该添加

    rsrcKey-America-Miami=rsrc.Timezone1-25
  6. 将编辑的 daconfig.propertiesResources.properties 文件重新部署到 Delegated Administrator 控制台所使用的 Web 容器。

    必须运行脚本将自定义 daconfig.properties 文件部署到您的 Web 容器,更改才会生效。

    有关如何将自定义的属性文件部署到特定 Web 容器的说明,请参见部署自定义配置文件

    编辑并重新部署 daconfig.propertiesResources.properties 文件后,新时区会显示在 Delegated Administrator 控制台中的相应列表框内。只要您在 Delegated Administrator 控制台中选择该时区并单击“保存”,它就会被保存在目录中。

Procedure更改 Delegated Administrator 中的默认时区的步骤

  1. UserCalendarService.xmlDomainCalendarService.xml 文件中,编辑以下值:


    <DefaultValues>
                    <Value>America/Denver</Value>
    </DefaultValues>

    可以在 xml 文件中的以下条目下找到 <DefaultValues>


    <AttributeSchema name="icstimezone"
  2. 运行 Access Manager amadmin 实用程序以删除当前的服务并添加更新的服务。

    UserCalendarService.xmlDomainCalendarService.xml 文件,运行以下 amadmin 命令:


    ./amadmin -u <admin> -w <password> -r DomainCalendarService

    ./amadmin -u <admin> -w <password> 
    -s da_base/lib/services/DomainCalendarService.xml
  3. 重新启动您的 Web 容器以使所做的更改生效。

防止新用户访问 Instant Messaging

如果已安装 Sun Java System Instant Messaging (IM),并将其配置为使用 LDAP 存储用户属性,那么当 Delegated Administrator 创建新用户时,访问 IM 服务所必需的对象类会自动添加到该用户的 LDAP 条目。

可以阻止新用户在用户创建期间被授予必需的 IM 对象类。要做到这一点,可更改 Delegated Administrator 服务器的 resource.properties 文件中的一个属性值。

Procedure禁用新用户的 Instant Messaging 服务

  1. 在文本编辑器中打开 resource.properties 文件。

    resource.properties 文件默认情况下位于 Delegated Administrator 安装路径中的原始(标准)位置:

    da-base/data/WEB-INF/classes/sun/comm/cli/server/servlet

  2. im-provision 属性的值从 true 更改为 false

    默认情况下,此值为 true

    例如:

    im-provision=false

  3. 将编辑的 resource.properties 文件重新部署到 Delegated Administrator 服务器使用的 Web 容器。

    必须运行脚本将自定义的 resource.properties 文件部署到您的 Web 容器,更改才会生效。

    有关如何将自定义的属性文件部署到特定 Web 容器的说明,请参见部署自定义配置文件