Sun Java System Access Manager 7.1 リリースノート

レルムモードで新しいグループを作成すると、使用されない ACI を持つグループ管理者が生成される (6485695)

Access Manager がレルムモードでインストールされている場合、新しいグループを作成すると、Access Manager はそのグループを管理するのに必要な ACI を持つグループ管理者を動的に作成します。レルムモードでは、これらのグループ管理者 ACI は使用されません。しかし、Directory Server はサフィックスの下にあるエントリの処理中にこれらの ACI を評価するため、特に配備によって数多くのグループが作成されている場合は、Access Manager のパフォーマンスが低下することがあります。

回避策: この問題の回避策は、次の 2 つの部分から成ります。

グループ管理者 ACI が作成されないようにする

次の手順を実行すると、新しいグループが作成されたときに、Access Manager がグループ管理者とそれに対応する ACI を作成しないようになります。


注 –

この手順により、新しいグループの作成時にグループ管理者とそれに対応する ACI が永続的に作成されなくなります。この手順を使用するのは、この動作が特定の配備に適している場合だけにしてください。


  1. amAdminConsole.xml ファイルをバックアップします。このファイルは、プラットフォーム別に次のディレクトリにあります。

    • Solaris システム: /etc/opt/SUNWam/config/xml

    • Linux および HP-UX システム: /etc/opt/sun/identity/config/xml

    • Windows システム: javaes-install-dir\identity\config\xml

      javaes-install-dir は、Java ES 5 のインストールディレクトリを表します。デフォルト値は C:\Program Files\Sun\JavaES5 です。

  2. amAdminConsole.xml ファイルで、次のコメント行の間にあるグループ管理者エントリを削除します。

    <AttributeSchema name="iplanet-am-admin-console-dynamic-aci-list"
        type="list"
        syntax="string"
        i18nKey="g111">
        <DefaultValues>
    ...
    # Beginning of entry to delete
                    <Value>Group Admin|Group Admin Description|ORGANIZATION:aci: 
    (target="ldap:///GROUPNAME")(targetattr = "*") 
    (version 3.0; acl "Group and people container admin role"; 
    allow (all) roledn = "ldap:///ROLENAME";)##ORGANIZATION:aci: 
    (target="ldap:///ORGANIZATION")
    (targetfilter=(&amp;FILTER(!(|(nsroledn=cn=Top-level Admin Role,dc=iplanet,dc=com)
    (nsroledn=cn=Top-level Help Desk Admin Role,dc=iplanet,dc=com)
    (nsroledn=cn=Top-level Policy Admin Role,dc=iplanet,dc=com)
    (nsroledn=cn=Organization Admin Role,ORGANIZATION)
    (nsroledn=cn=Container Admin Role,ORGANIZATION)
    (nsroledn=cn=Organization Policy Admin Role,ORGANIZATION)))))
    (targetattr != "iplanet-am-web-agent-access-allow-list || 
    iplanet-am-web-agent-access-not-enforced-list|| 
    iplanet-am-domain-url-access-allow || 
    iplanet-am-web-agent-access-deny-list ||nsroledn")
    (version 3.0; acl "Group admin's right to the members"; allow (read,write,search) 
    roledn = "ldap:///ROLENAME";)</Value>
    # End of entry to delete
    ...
        </DefaultValues>
    </AttributeSchema>
  3. amadmin を使用して、Access Manager から管理コンソールサービスを削除します。たとえば、Solaris システムでは次のコマンドを実行します。

    # cd /opt/SUNWam/bin
    # ./amadmin -u amadmin -w amadmin_password 
    --deleteService iPlanetAMAdminConsoleService
  4. amadmin を使用して、手順 2 で編集した amAdminConsole.xml ファイルから Access Manager に管理コンソールサービスを再読み込みします。

    # ./amadmin -u amadmin -w amadmin_password 
    -t /etc/opt/SUNWam/config/xml/amAdminConsole.xml
  5. Access Manager Web コンテナを再起動します。次の手順に従って Directory Server から ACI を削除する場合は、次の手順の完了後、しばらく待ってから Web コンテナを再起動します。

既存のグループ管理者 ACI を削除する


注 –

次の手順では、ldapsearch ユーティリティーと ldapmodify ユーティリティーを使用して、グループ管理者 ACI の検索と削除を行います。配備に Directory Server 6.0 を使用している場合は、Directory Server Control Center (DSCC) または dsconf コマンドを使用して、これらの機能を実行することもできます。詳細については、次の場所にある Directory Server 6.0 のマニュアルを参照してください。

http://docs.sun.com/app/docs/coll/1660.1


次の手順を実行すると、Directory Server にすでに存在するグループ管理者 ACI が削除されます。

  1. ldapmodify でグループ管理者 ACI の削除に使用する LDIF ファイルを作成します。これらの ACI を見つけるには、ldapsearch (または、好みに応じてほかのディレクトリ検索ツール) を使用します。

    たとえば、Remove_Group_ACIs.ldif というサンプル LDIF ファイルの次のエントリは、「New Group」というグループの ACI を削除します。

    dn: ROOT_SUFFIX
    changetype: modify
    delete: aci
    aci: (target="ldap:///cn=New Group,ou=Groups,o=isp")(targetattr = "*") 
    (version 3.0; acl "Group and people container admin role"; allow (all) 
    roledn = "ldap:///cn=cn=New Group_ou=Groups_o=isp,o=isp";)
    
    dn: ROOT_SUFFIX
    changetype: modify
    delete: aci
    aci: (target="ldap:///ou=People,o=isp")(targetattr="nsroledn")
    (targattrfilters="add=nsroledn:(!(nsroledn=*)),
    del=nsroledn:(!(nsroledn=*))") (version 3.0; 
    acl "Group admin's right to add user to people container"; allow (add) 
    roledn = "ldap:///cn=cn=New Group_ou=Groups_o=isp,o=isp";)
    
    dn: ROOT_SUFFIX
    changetype: modify
    delete: aci
    aci: (target="ldap:///o=isp")
    (targetfilter=(&(|(memberof=*cn=New Group,ou=Groups,o=isp)
    (iplanet-am-static-group-dn=*cn=New Group,ou=Groups,o=isp))
    (!(|(nsroledn=cn=Top-level Admin Role,o=isp)
    (nsroledn=cn=Top-level Help Desk Admin Role,o=isp)
    (nsroledn=cn=Top-level Policy Admin Role,o=isp)
    (nsroledn=cn=Organization Admin Role,o=isp)(
    nsroledn=cn=Container Admin Role,o=isp)
    (nsroledn=cn=Organization Policy Admin Role,o=isp)))))
    (targetattr != "iplanet-am-web-agent-access-allow-list || 
    iplanet-am-web-agent-access-not-enforced-list || 
    iplanet-am-domain-url-access-allow || 
    iplanet-am-web-agent-access-deny-list ||nsroledn")
    (version 3.0; acl "Group admin's right to the members"; 
    allow (read,write,search) 
    roledn = "ldap:///cn=cn=New Group_ou=Groups_o=isp,o=isp";) 
    aci: (target="ldap:///o=isp")(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,o=isp"; )
  2. 前の手順で示した LDIF ファイルを指定した ldapmodify を使用して、Directory Server からグループ ACI を削除します。たとえば、次のように指定します。

    # ldapmodify -h ds-host -p 389 -D "cn=Directory Manager" 
    -w ds-bind-password -f Remove_Group_ACIs.ldif
  3. Access Manager Web コンテナを再起動します。