Sun Java System Delegated Administrator 6.4 管理指南

配置後作業

執行 Delegated Administrator 配置程式後,您應執行以下作業:

僅當您在 Schema 2 相容模式中使用 LDAP 目錄時,才執行以下作業:

將郵件服務和行事曆服務增加至預設網域

config-commda 程式會建立預設網域。

如果您要在預設網域中建立具有郵件服務或行事曆服務的使用者,則首先必須將郵件服務和行事曆服務增加至該網域中。

若要執行此作業,請使用帶有 -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 會使用以下郵件屬性以識別使用者的郵件地址和替代郵件地址:

每個使用者的郵件屬性在所有目錄中都必須是唯一的。

以下程序會顯示如何修改 Directory Server ldif 檔案以強制這些屬性的唯一性。當 Delegated Administrator (或任何 LDAP 工具) 加入一個項目或修改郵件屬性時,ldif 外掛程式會檢查郵件屬性值是否為唯一的值。如果一項作業會造成兩個項目具有相同的郵件屬性值,則會終止該作業。

如需郵件屬性的定義,請參閱「Sun Java Communications Suite 5 Schema Reference 」中的第 3 章「Messaging Server and Calendar Server Attributes」

Procedure強制郵件屬性的唯一性

開始之前

備註 –

如果您正在執行 Directory Server 5.2.5 (Java ES 發行版本 4) 或更新版本, 請執行下述程序。

如果您正在執行 Directory Server 5.2.4 (Java ES 發行版本 4),在開始以下程序之前,您必須套用修補程式 5.2_Patch_4_6313027。

如果您正在執行較舊的 Directory Server 版本,在開始之前,您必須升級至 Directory Server 5.2.5 或更新版本。

若要存取 Directory Server 修補程式,請移至 http://sunsolve.sun.com。


  1. 請建立文字檔,其中包括以下內容。使用安裝的特定值來替代檔案中顯示的參數:


    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

    變更以下參數:

    以安裝 Directory Server 的上層目錄來替代 server_root。例如: /var/opt/mps/serverroot

    以根尾碼來替代 ugldapbasedn。會對此尾碼之下的所有項目執行唯一性檢查。

  2. 停止 Directory Server。

  3. 將修改的文字檔加入至 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

  4. 重新啟動 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 提供的每個服務類別定義均可對應該範本:

您可以使用 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

Procedure建立您自己的服務套裝軟體

  1. 複製並重新命名 da.cos.skeleton.ldif 檔案中的一個參數化範本。

    安裝 Delegated Administrator 時,da.cos.skeleton.ldif 檔案安裝在以下目錄中:

    da-base/lib/config-templates

    選擇 da.cos.skeleton.ldif 檔案中以下範本中的其中一個範本,以複製並重新命名:


    standardUserMail
    standardUserCalendar
    standardUserMailCalendar
    standardGroupMail
  2. 在範本副本中編輯以下參數:

    • <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>

      這些參數代表 icsPreferredHosticsDWPHosticsFirstDay LDAP 屬性的值。

      按照規格編輯這些值。

    如需這些屬性的定義和說明,請參閱Messaging Server and Calendar Server Attributes」。

    您必須在自訂的服務類別範本中至少使用一個屬性。您不必在自訂範本中使用全部四個郵件屬性。您可以刪除服務套裝軟體中的一個或多個屬性。

  3. 使用 LDAP 目錄工具 ldapmodify 在目錄中安裝服務套裝軟體。

    例如,您可以執行以下指令:

    ldapmodify -D <directory manager> -w <password> -f <cos.finished.template.ldif>

    其中,

    <directory manager> 是 Directory Server 管理員的名稱。

    <password> 是 Directory Service 管理員的密碼。

    <cos.finished.template.ldif> 是要在目錄中做為服務套裝軟體安裝的已編輯 ldif 檔案的名稱。

為 Schema 2 相容模式增加 ACI

如果您要在 Schema 2 相容模式中使用 LDAP 目錄,則必須手動將 ACI 增加至目錄,以便可以在目錄中佈建 Delegated Administrator。執行以下步驟:

Procedure為 Schema 2 相容模式增加 ACI

  1. 將以下兩個 ACI 增加至 OSI 根。您可以在位於 /opt/SUNWcomm/config 目錄中的 usergroup.ldif 檔案中找到以下兩個 ACI。

    確定使用 usergroup 字尾替代 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>";)
  2. 將以下兩個 ACI 增加至 DC 樹狀結構根字尾。您可以在位於 /opt/SUNWcomm/lib/config-templates 目錄中的 dctree.ldif 檔案中找到以下兩個 ACI。

    確定使用 DC 樹狀結構根字尾替代 dctreebasedn,使用 usergroup 字尾替代 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>";)
  3. 將以下附加 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>";)
  4. 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

  5. 配置 Access Manager 以使用相容性模式。

    在 Access Manager 主控台中,在 [Administration Console 服務] 頁面中核取 (啟用) [已啟用網域元件樹狀結構] 核取方塊。

  6. 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
  7. 重新啟動 Web 容器。