Access Manager がレルムモードでインストールされている場合、新しいグループを作成すると、Access Manager はそのグループを管理するのに必要な ACI を持つグループ管理者を動的に作成します。レルムモードでは、これらのグループ管理者 ACI は使用されません。しかし、Directory Server はサフィックスの下にあるエントリの処理中にこれらの ACI を評価するため、特に配備によって数多くのグループが作成されている場合は、Access Manager のパフォーマンスが低下することがあります。
回避策: この問題の回避策は、次の 2 つの部分から成ります。
新しいグループが作成されたときに、Access Manager がグループ管理者とそれに対応する ACI を作成しないようにします
既存のグループ管理者 ACI を Directory Server から削除します
グループ管理者 ACI が作成されないようにする
次の手順を実行すると、新しいグループが作成されたときに、Access Manager がグループ管理者とそれに対応する ACI を作成しないようになります。
この手順により、新しいグループの作成時にグループ管理者とそれに対応する ACI が永続的に作成されなくなります。この手順を使用するのは、この動作が特定の配備に適している場合だけにしてください。
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 です。
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=(&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>
amadmin を使用して、Access Manager から管理コンソールサービスを削除します。たとえば、Solaris システムでは次のコマンドを実行します。
# cd /opt/SUNWam/bin # ./amadmin -u amadmin -w amadmin_password --deleteService iPlanetAMAdminConsoleService
amadmin を使用して、手順 2 で編集した amAdminConsole.xml ファイルから Access Manager に管理コンソールサービスを再読み込みします。
# ./amadmin -u amadmin -w amadmin_password -t /etc/opt/SUNWam/config/xml/amAdminConsole.xml
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 が削除されます。
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"; )
前の手順で示した LDIF ファイルを指定した ldapmodify を使用して、Directory Server からグループ ACI を削除します。たとえば、次のように指定します。
# ldapmodify -h ds-host -p 389 -D "cn=Directory Manager" -w ds-bind-password -f Remove_Group_ACIs.ldif
Access Manager Web コンテナを再起動します。