ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Internet Directory管理者ガイド
11g リリース1(11.1.1)
B55919-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

14 動的グループと静的グループの管理

この章では、Oracle Internet Directoryで静的グループと動的グループの両方を管理する方法について説明します。この章の項目は次のとおりです。

14.1 動的グループと静的グループの管理の概要

Oracle Internet Directoryでは、静的グループと動的グループの2種類のグループでメンバーシップを割り当てて管理できます。各タイプのグループは、それぞれ異なる目的に適しています。


注意:

グループの階層を作成する場合は、第14.1.3項「階層」で説明したとおり、必ず正しい階層にしてください。



関連項目:


この項の項目は次のとおりです。

14.1.1 静的グループ

静的グループは、明示的に管理するメンバーのリストを含むエントリで構成されるグループです。

静的グループに対しては、管理者がそのメンバーシップを明示的に管理する必要があります。たとえば、メンバーが名前を変更した場合、管理者はそのメンバーが属する各グループでそのユーザーの識別名を変更する必要があります。このため、静的グループは、メンバーシップの変更が頻繁に行われないグループに適しています。

14.1.1.1 静的グループ作成のためのスキーマ要素

この種のグループのエントリを作成する場合は、エントリをgroupOfNamesオブジェクト・クラスまたはgroupOfUniqueNamesオブジェクト・クラスのいずれかと関連付けます。

いずれのオブジェクト・クラスにも、グループ・メンバーの名前を格納するための複数値属性があります。ユーザーをグループのメンバーとして割り当てるには、各メンバーの識別名を対応する複数値属性に追加します。逆に、グループからメンバーを削除するには、そのメンバーの識別名を対応する属性から削除します。この複数値属性は、groupOfNamesオブジェクト・クラスではmemberで、groupOfUniqueNamesオブジェクト・クラスではuniqueMemberです。

14.1.2 動的グループ

動的グループは、そのメンバーシップがリストで管理されるのではなく、指定した規則およびアサーションに基づいて計算されるグループです。Oracle Internet Directoryでは、グループのメンバーシップを動的に計算するために次の方法がサポートされています。

  • orclDynamicGroupオブジェクト・クラスおよびlabeleduri属性の使用

  • orclDynamicGroupオブジェクト・クラスおよびCONNECT_BY属性の使用

  • orclDynamicListオブジェクト・クラスおよびlabeleduri属性(動的リストと呼ばれます)の使用

動的グループは、静的メンバーと動的メンバーを持つことができます。静的メンバーは、memberまたはuniquemember属性の値として表示されます。

14.1.2.1 キャッシュされる動的グループおよびキャッシュされない動的グループ

動的グループはキャッシュされる場合もされない場合もあります。キャッシュされることにより、動的グループが追加されると、その動的グループのメンバーが計算されて格納され、動的グループを後で変更したときに、メンバー・リストの一貫性が維持されます。エントリが追加、変更、削除されたり、名前の変更が行われたりすると、すべての動的グループのメンバー・リストの一貫性が維持されます。たとえば、c=usの下にすべてのpersonエントリを含む動的グループがある場合、cn=user1,c=usを追加すると、そのエントリは動的グループのメンバー・リストに自動的に追加されます。同様に、cn=user1,c=usを削除すると、エントリは動的グループのメンバー・リストから削除されます。この機能により、動的グループの検索が実行された場合はいつでも、格納されているデータから追加の計算なしでメンバー・リストをフェッチできます。キャッシュされた動的グループの検索パフォーマンスは、静的グループの場合とほぼ同じになります。

キャッシュされる動的グループ

Oracle Internet Directory 10g(10.1.4.0.1)より、labeleduri属性を使用したorclDynamicGroupオブジェクト・クラスに基づく動的グループは、キャッシュされるようになりました

キャッシュされない動的グループ

  • CONNECT_BY属性を使用したorclDynamicGroupオブジェクト・クラスに基づく動的グループはキャッシュされません。

  • Oracle Internet Directory 11gリリース1(11.1.1.4)以降では、labeleduri属性に基づく動的グループの2番目のタイプを使用できます。これは動的リストと呼ばれ、このメンバーはキャッシュされません。第14.1.2.3項「動的グループ作成のためのスキーマ要素」の説明に従って、グループが関連付けられている補助型オブジェクト・クラスのタイプを選択し、labeleduri属性に基づく動的グループがキャッシュされるかされないかを決定します。キャッシュされるグループが必要な場合は、グループを補助型オブジェクト・クラスorclDynamicGroupに関連付けます。キャッシュされないグループが必要な場合は、グループを補助型オブジェクト・クラスまたはorclDynamicListオブジェクト・クラスに関連付けます。


注意:

  • 有効範囲がbaselabeledURI属性に基づく動的グループは追加できません。有効範囲suboneのみがサポートされています。

  • orclDynamicGroupオブジェクト・クラスおよびlabeleduri属性を使用して、動的グループのメンバーシップを動的グループに対してリフレッシュするには、DSA構成エントリのorclrefreshdgrmems属性を1に設定します。Oracle Internet Directoryは、すべての動的グループのメンバー・リストを再計算し、orclrefreshdgrmemsの値を0に再設定します。グループが多数ある場合、この操作の完了には時間がかかることがあります。

  • あるユーザーが属するグループを問い合せると、labeledURI属性に基づく動的グループは自動的にその結果に含まれます。CONNECT_BYアサーションおよび動的リストに基づく動的グループは、明示的に問い合せる必要があります。たとえば、nc=jdoe,cn=users,o=oracleが、labeleduri動的グループdgrouplab1CONNECT BY動的グループdgroupcby1および動的リストdlist1の3つのグループのメンバーであると仮定します。検索uniquemember=cn=jdoe,cn=users,o=oracleによって、キャッシュされたlabeleduri動的グループdgrouplab1のみが検索されます。



関連項目:

  • Oracle Internet Directoryで使用される制御の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のLDAP制御に関する説明を参照してください。

  • 『Oracle Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド』の「C API」

  • 『Oracle Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド』の階層検索の実行に関する項


14.1.2.2 Oracle Internet Directoryでの動的グループの拡張機能および制限事項

Oracle Internet Directory 10g(10.1.4.1)以降のリリースでは、動的グループを静的グループと同様に使用できます。たとえば、動的グループは次のもので使用できます。

  • アクセス制御リスト。グループをorclACPgroupまたはorclPrivilegeGroupオブジェクト・クラスのいずれかと関連付けます。

  • 階層グループ解決の問合せ

動的グループには、Oracle Internet Directoryで次の制限事項があります。

  • 階層問合せと、メンバーの特定の属性関連の問合せは、キャッシュされた動的グループに対してのみ行うことができます。

  • 動的グループを追加できるのは、ldapaddまたはODSMを使用した場合のみです。bulkloadを使用して追加することはできません。

  • labeleduriのLDAPフィルタ部分で使用される属性は、索引付けされている必要があります。第21.3.7項「ldapmodifyを使用した属性の索引付け」第15.7項「catalogを使用した既存の属性の索引の作成および削除」および第21.1.3.4項「属性の索引付けの概要」を参照してください。

  • グループを作成した後に、動的グループのオブジェクト・クラスを変更することはできません。グループを削除して再作成する必要があります。

  • uniquemember属性の検索では、動的リストまたはCONNECT BYアサーションベースの動的グループは取得されません。

14.1.2.3 動的グループ作成のためのスキーマ要素

動的グループを作成する場合も、静的グループの作成と同様に、まずエントリをgroupOfNamesオブジェクト・クラスまたはgroupOfUniqueNamesオブジェクト・クラスのいずれかに関連付けます。次に、そのオブジェクト・クラスを補助型オブジェクト・クラスorclDynamicGroupまたはorclDynamicListと関連付けます。

この補助型オブジェクト・クラスorclDynamicGroupには、グループのメンバーシップを動的に計算するための2つの方法(labeledURI属性を使用する方法とCONNECT BYアサーションを使用する方法)のいずれかを指定する各種属性があります。補助型オブジェクト・クラスorclDynamicListでは、メンバーシップを計算するlabeledURI属性を使用した方法のみがサポートされています。

メンバーシップを計算する2つの方法は、次のとおりです。

  • labeledURI属性を使用する方法

    補助型オブジェクト・クラスorclDynamicGroupおよびorclDynamicListには、labeledURI属性が含まれています。グループをorclDynamicGroupに関連付けて、labeledURI属性を使用してメンバーシップを計算する場合、そのグループはキャッシュされます。グループをorclDynamicListに関連付けて、labeledURI属性を使用してメンバーシップを計算する場合、そのグループはキャッシュされません。このorclDynamicListオブジェクト・クラスを使用したキャッシュされないタイプは、動的リストと呼ばれます。

    labeledURIの方法を使用する場合、ディレクトリ・サーバーにより、DIT階層に基づいた標準検索が実行されます。この場合、orclDynamicGroupまたはorclDynamicListオブジェクト・クラスの属性(labeledURI)のうちいずれかに対して値を指定する必要があります。この属性では、問合せ、フィルタおよび必要な任意の属性のベースを指定します。たとえば、labeledURI属性に対して次の値を入力したとします。

    labeledURI:ldap://host:port/ou=NewUnit,o=MyCompany,c=US??sub?(objectclass=person)
    

    この方法を使用した場合、エントリの検索では、グループの全メンバーのエントリが返されます。

    labeledURI属性メソッドを使用する場合は、orclConnectByAttributeorclConnectByStartingValueを設定しないでください。


    注意:

    labeledURI属性において、host:portセクションは構文表示専用です。labeledURI属性でのホスト設定およびポート設定にかかわらず、ディレクトリ・サーバーでは、常にローカル・ディレクトリ・サーバーから動的グループのメンバーが計算されます。ここでは、他のディレクトリ・サーバーからメンバーを取得することはできません。



    関連項目:

    『The LDAP URL Format』(RFC 2255)(T.Howes, M. Smith, December 1997)を参照してください。このRFCでは、labeledURI属性などでLDAP URLを表示する方法について説明しています。これは、http://www.ietf.orgで入手できます。


  • CONNECT BYアサーションを使用する方法

    labeledURI属性の方法とは異なり、この方法ではDIT階層を使用しないで、エントリを暗黙的に相互接続している属性を、DITでのエントリの位置にかかわらず使用します。たとえば、manager属性により、従業員のエントリがそのマネージャのエントリと接続されるため、この接続はDITでの従業員エントリの位置に関係なく適用されます。この方法では、CONNECT BY句を使用して、階層を作成するために使用する属性(managerなど)およびそのような階層の開始値(cn=Anne Smith,cn=users,dc=example,dc=com)を指定します。


    関連項目:

    『Oracle Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド』の階層検索の実行に関する項


    具体的には、このメソッドを使用する場合、表14-1に示す単一値属性の各値をorclDynamicGroupオブジェクト・クラスに指定します。

    表14-1 Connect ByアサーションのためのorclDynamicGroup属性

    属性 説明

    orclConnectByAttribute

    問合せのフィルタとして使用する属性(例: manager)。この属性は、索引付けされている必要があります。

    orclConnectByStartingValue

    orclConnectByAttribute属性に指定した属性の識別名。例: cn=Anne Smith,cn=users,dc=example,dc=com


    たとえば、米国のMyOrganizational UnitのAnne Smithの部下であるすべての従業員のエントリを取得するには、前述の属性に対して次のような値を設定します。

    orclConnectByAttribute=manager
    orclConnectByStartingValue=
    "cn=Anne Smith,ou=MyOrganizationalUnit,o=MyCompany,c=US"

CONNECT BYアサーション・メソッドを使用する場合は、labeledURIを設定しないでください。

また、すべてのメンバーの特定の属性(email属性など)の値を取得することを指定するアプリケーションを開発することもできます。


関連項目:

特定の属性の値を取得するアプリケーションを開発する方法の詳細は、『Oracle Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド』を参照してください。


次の例は、2種類の動的グループ・エントリを示しています。

例: labeledURI属性を使用した動的グループ・エントリ

次の例は、labeledURI属性を使用した動的グループ・エントリを示しています。

dn: cn=dgroup1
cn: dgroup1
description: this is an example of a dynamic group
labeleduri:ldap://hostname:7777/ou=oid,l=amer,dc=oracle,
 dc=dgrptest??sub?objectclass=person
objectclass: orcldynamicgroup
objectclass: groupOfUniqueNames
objectclass: top

このグループには、サブツリーou=oid,l=amer,dc=oracle,dc=dgrptest内のオブジェクト・クラスpersonに関連付けられている、すべてのエントリの識別名となるuniquemember値が指定されます。

例: labeledURI属性を使用した動的リスト・エントリ

次の例は、labeledURI属性を使用した動的リスト・エントリを示しています。(動的リストはキャッシュされません。)これは、補助型オブジェクト・クラスがorclDynamicGroupではなくorclDynamicListであるという点を除き、前述の例と同じです。

dn: cn=dgroup1
cn: dgroup1
description: this is an example of a dynamic group
labeleduri:ldap://hostname:7777/ou=oid,l=amer,dc=oracle,
 dc=dgrptest??sub?objectclass=person
objectclass: orcldynamiclist
objectclass: groupOfUniqueNames
objectclass: top

このグループには、サブツリーou=oid,l=amer,dc=oracle,dc=dgrptest内のオブジェクト・クラスpersonに関連付けられている、すべてのエントリの識別名となるuniquemember値が指定されます。ただし、uniquemember属性の検索では、動的リストは取得されません。

例: CONNECT BYアサーションを使用した動的グループ・エントリ

次の例は、CONNECT_BYアサーションを使用した動的グループ・エントリを示しています。

dn: cn=dgroup2
cn: dgroup2
description: this is connect by manager assertion dynamic group
orclconnectbyattribute: manager
orclconnectbystartingvalue: cn=john doe sr,l=amer,dc=oracle,dc=dgrptest
objectclass: orcldynamicgroup
objectclass: groupOfUniqueNames
objectclass: top

この動的グループは、固有のメンバーとして、manager属性が間接または直接cn=john doe sr.であるすべてのエントリの識別名を値に持ちます。複数の個人の上司としてcn=john doe JR.が指定されており、さらにその上司としてcn=john doe SR.が指定されている場合、下位のすべての個人が返されます。

14.1.3 階層

階層は、明示的または暗黙的のいずれかにできます。

明示的階層では、DITのエントリの位置によって関係が決まります。たとえば、グループAはDITでグループBより上位にあります。

暗黙的階層では、エントリ間の関係は、DIT内の位置によってではなく、特定の属性の値によって決まります。たとえば、John DoeのエントリがAnne Smithと同じレベルの階層にあるDITがあるとします。ただし、John Doeのエントリでは、manager属性にAnne Smithが彼の上司として指定されているとします。この場合、DITでの両方の位置は同レベルですが、Anne SmithはJohn Doeの上司として指定されているため、階層のランクは同一ではありません。


注意:

暗黙的階層に基づく問合せでは、クライアントは検索リクエストに制御2.16.840.1.113894.1.8.3を指定できます。この問合せのフィルタにより、暗黙的階層の作成に使用する属性が指定されます。たとえば、(manager=cn=john doe, o=foo)では、直接的または間接的にJohn Doeの部下であるすべての人への問合せが指定されます。暗黙的階層は、manager属性に基づいています。このような問合せでは、検索のベースは無視されます。

Oracle Internet Directoryで使用される制御の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のLDAP制御に関する説明を参照してください。



関連項目:

『Oracle Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド』の「C API」


14.1.4 グループ・エントリの問合せ

アプリケーションは、いずれかのグループに問い合せて、次の操作を実行できます。

  • グループのすべてのメンバーをリスト

  • あるユーザーがメンバーであるすべてのグループをリスト

  • あるユーザーが特定のグループのメンバーであるかどうかをチェック

また、指定するメンバー属性について、動的グループに問合せできますが、静的グループには問合せできません。


関連項目:

『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のLDAP制御に関する説明のGSL_REQDATTR_CONTROLエントリを参照してください。


14.1.5 orclMemberOf属性

orclMemberOfは、そのエントリが属するグループを含む複数値属性です。orclMemberOf内のグループには、静的グループおよびlabeleduriベースの動的グループが含まれています。CONNECT BYアサーションベースの動的グループおよび動的リストは含まれていません。メンバーシップには、直接グループおよびネストされたグループの両方が含まれています。

たとえば、Maryが静的グループdirectorsのメンバーであり、グループdirectorsが静的グループmanagersのメンバーであるとします。MaryのDNで属性orclMemberOfに対して特定の問合せを行った場合、値にはmanagersおよびdirectorsの両方が含まれます。

この属性値は、検索中に計算されず、また格納されません。orclMemberOfは、名前を指定して明示的にリクエストしないかぎり、検索では返されません。

Oracle Internet Directory 11g リリース1(11.1.1.7.0)では、orclMemberOfは検索フィルタで使用できます。複合的なフィルタでは、orclmemberofが非常に役立ちます。以前は、複数のグループに属しているユーザーを検索する最もよい方法は、データをフェッチするために複数の検索問合せを実行した後、結果を計算するためにクライアント側アプリケーションのロジックを使用することでした。検索フィルタでorclmemberofを使用できるようになったので、単一の検索問合せによりこうした処理が可能になりました。いくつかの例には、こうした問合せが含まれます。

orclMemberOfには、Active DirectoryおよびOracle Directory Server Enterprise Edition(以前のSun Java System Directory ServerおよびSunONE iPlanet)との互換性を確保するために、memberofismemberofという別名があります。これらの別名は代替使用可能であり、orclmemberofのかわりにこの2つの別名を使用してすべての検索問合せを実行することもできます。


注意:

属性orclMemberOfは仮想属性であり、次の目的で使用することはできません

  • 動的なグループまたは動的なリストを作成するためのlabeleduri属性のLDAPフィルタの一部として。

  • orclinmemfiltprocessを使用してメモリー内で処理されるフィルタの一部として。orclinmemfiltprocessの詳細は、Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイドのOracle Internet Directoryに関する章を参照してください。


例:

  • シングル・ユーザーの検索:

    ldapsearch -h host -p 3060 -D binddn -q -b "cn=jdoe,cn=users,o=oracle" -s base "(objectclass=*)" orclmemberof
    
  • memberof別名による検索:

    ldapsearch -h host -p 3060 -D binddn -q -b "cn=jdoe,cn=users,o=oracle" -s base "(objectclass=*)" memberof
    
  • すべての属性およびorclmemberofの取得:

    ldapsearch -h host -p 3060 -D binddn -q -b "cn=jdoe,cn=users,o=oracle" -s base "(objectclass=*)" orclmemberof  *
    
  • 複数のユーザーの検索:

    ldapsearch -h host -p 3060 -D binddn -q -b "cn=users,o=oracle" -s sub "(objectclass=person)" orclmemberof
    
  • 検索フィルタでの使用:

    • ユーザーJohn DoeがHR従業員グループのメンバーであるかどうかを判断するには、orclmemberofにHR従業員グループが含まれるかどうかをチェックするフィルタによりユーザーに対するベース検索を実行します。

      ldapsearch -h localhost -p 3060 -D binddn -q -b "cn=johndoe,cn=users,o=oracle" -s base "(orclmemberof=cn=hr,cn=groups,o=oracle)" dn
      
    • HR従業員グループのメンバーであるすべてのユーザーを検索するには、orclmemberofHR従業員グループを含むすべてのエントリについてuserコンテナでsubstree検索を実行します。

      ldapsearch -h localhost -p 3060 -D binddn -q -b "cn=users,o=oracle" -s sub "(orclmemberof=cn=hr,cn=groups,o=oracle)" dn
      
    • 複数のグループのメンバーであるユーザーを検索するには、複数のorclmemberof条件をANDで組み合せるフィルタを使用します。これによって、2つのグループ・メンバーシップの共通部分が得られます。次の検索は、HR従業員およびManagersグループの両方のメンバーであるユーザーを検索します。

      ldapsearch -h localhost -p 3060 -D binddn -q -b "cn=users,o=oracle" -s sub "(&(orclmemberof=cn=hr,cn=groups,o=oracle)(orclmemberof=cn=managers,cn=groups,o=oracle))" dn
      
    • HR従業員またはManagersグループのいずれかのメンバーであるユーザーを検索するには、複数のorclmemberof条件をORで組み合せるフィルタを使用します。これによって、2つのグループ・メンバーシップの結合が得られます。3つ以上のグループに対してこの方法を使用することもできます。

      ldapsearch -h localhost -p 3060 -D binddn -q -b "cn=users,o=oracle" -s sub "(|(orclmemberof=cn=hr,cn=groups,o=oracle)(orclmemberof=cn=managers,cn=groups,o=oracle))" dn
      
    • HRグループに属し、所在地がカリフォルニアであり、役職がHR Administratorであるすべての従業員を特定するには、次の問合せを使用します。

      ldapsearch -h localhost -p 3060 -D binddn -q -b "cn=users,o=oracle" -s sub "(&(orclmemberof=cn=hr,cn=groups,o=oracle)(l=ca)(title=HR Administrator))" dn
      
    • 次の例では、検索フィルタでorclmemberofではなくmemberofの別名を使用しています。

      ldapsearch -h localhost -p 3060 -D binddn -q -b "cn=users,o=oracle" -s sub "(memberof=cn=hr,cn=groups,o=oracle)" dn
      

14.1.6グループを使用すべき場合

使用するグループについて検討する場合は、管理の容易性とパフォーマンスの効率を比較検討する必要があります。たとえば、動的グループは管理が容易ですが、パフォーマンスが低下します。表14-2に、静的グループを使用すべきか動的グループを使用すべきかを検討する場合の考慮事項を示します。

表14-2 静的グループと動的グループについての考慮事項

考慮事項 静的グループ 動的グループ

管理の容易性

グループのメンバーシップが大きく、頻繁に変更がある場合は管理が困難

特に、グループのメンバーシップが大きく、頻繁に変更がある場合に有効

検索パフォーマンス

メンバーシップ・リストを明示的に管理するため、パフォーマンスが向上

静的グループと比較すると、labeleduriを使用した動的グループの場合にはメンバーシップがキャッシュされるため、パフォーマンスはわずかに劣るレベルかほぼ同等。静的グループおよびキャッシュされる動的グループと比較すると、キャッシュされないグループを使用する場合にはメンバーシップが必要に応じて計算されるため、パフォーマンスが低下。


14.2 Oracle Directory Services Managerを使用したグループ・エントリの管理

静的および動的グループ・エントリを管理するには、Oracle Directory Services Managerの「データ・ブラウザ」ページを使用します。第13.2項「Oracle Directory Services Managerを使用したエントリの管理」の手順に従って、グループ・エントリの表示、グループの検索およびグループの表示を実行できます。グループの作成および変更の手順は、この項で説明します。この項の内容は次のとおりです。

14.2.1 Oracle Directory Services Managerを使用した静的グループ・エントリの作成

静的グループ・エントリがgroupOfNamesオブジェクト・クラスに属する場合は、複数値属性memberに識別名を追加してグループのメンバーシップを決定します。エントリがgroupOfUniqueNamesオブジェクト・クラスに属する場合は、複数値属性uniqueMemberに識別名を追加してグループのメンバーシップを決定します。

静的グループ・エントリを追加する手順は、次のとおりです。

  1. 第7.4.5項「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。

  2. タスク選択バーで、「データ・ブラウザ」を選択します。

  3. ツールバーの「エントリを新規作成します。」アイコンを選択します。または、任意のエントリを右クリックして、「作成」を選択します。

    あるいは、作成するグループに類似したグループを選択してから、「このエントリに類似したエントリを新規作成します。」アイコンを選択します。または、任意のエントリを右クリックして、「作成」を選択します。

    新規エントリの作成ウィザードが表示されます。

  4. 新規エントリのオブジェクト・クラスを指定します。「追加」アイコンをクリックし、「オブジェクト・クラスの追加」ダイアログを使用して、groupOfNamesまたはgroupOfUniqueNamesを選択します。(このオブジェクト・クラスからtopまでのすべてのスーパークラスも追加されます。)

    「OK」をクリックします。

  5. 「エントリの親」フィールドで、作成するエントリの親エントリの完全な識別名を指定できます。「参照」をクリックして、追加するエントリの親の識別名を見つけて選択し、「選択」をクリックすることもできます。

    「エントリの親」フィールドを空白のままにすると、ルート・エントリの下にエントリが作成されます。

  6. 「次へ」をクリックします。

  7. このエントリの相対識別名値となる属性を選択し、その属性の値を入力します。cn属性がRDN値でない場合でも、この値を入力する必要があります。

  8. 「次へ」をクリックします。このウィザードの次のページが表示されます。(あるいは、「戻る」をクリックして前のページに戻ります。)

  9. 「終了」をクリックします。

  10. 所有者またはメンバーを追加するには、先ほどデータ・ツリーに作成したグループ・エントリに移動します。

  11. 「グループ」タブを選択します。

  12. グループに所有者を追加するには、「所有者」ボックスの横にある「追加」アイコンをクリックします。

  13. 所有者のDNを入力するか、またはボタンをクリックして所有者として追加するエントリ(通常はユーザーまたはグループ・エントリ)を識別名パスの選択ダイアログで選択します。

    「OK」をクリックします。

  14. グループにメンバーを追加するには、「メンバー」テキスト・ボックスの横にある「追加」アイコンをクリックします。

  15. メンバーのDNを入力するか、またはボタンをクリックしてメンバーとして追加するエントリ(通常はユーザーまたはグループ・エントリ)を識別名パスの選択ダイアログで選択します。

    「OK」をクリックします。

  16. 必要に応じてエントリの説明を入力します。

  17. 「適用」を選択して変更を適用するか、「元に戻す」を選択して変更を破棄します。

  18. グループ・エントリに他の変更を行うには、第14.2.2項「Oracle Directory Services Managerを使用した静的グループ・エントリの変更」を参照してください。

14.2.2 Oracle Directory Services Managerを使用した静的グループ・エントリの変更

グループ・エントリの属性(メンバー・リストなど)を変更する手順は、次のとおりです。

  1. データ・ツリーでグループを選択します。

  2. 所有者またはメンバーを追加または削除するには、「グループ」タブまたは「属性」タブを選択します。

  3. グループにメンバーを追加するには、「メンバー」テキスト・ボックスの横にある「追加」アイコンをクリックします。

  4. メンバーとして追加するエントリ(通常はユーザーまたはグループ・エントリ)を識別名パスの選択ダイアログで選択します。

    「OK」をクリックします。

  5. グループに所有者を追加するには、「所有者」テキスト・ボックスの横にある「追加」アイコンをクリックします。

  6. 所有者として追加するエントリ(通常はユーザーまたはグループ・エントリ)を識別名パスの選択ダイアログで選択します。

    「OK」をクリックします。

  7. 所有者またはメンバーを削除するには、リストで選択し、「削除」アイコンをクリックします。

  8. 所有者またはメンバー以外の属性を追加または変更するには、「属性」タブを選択します。

  9. デフォルトでは、空でない属性のみが表示されます。「ビュー」リストを使用すると、「管理対象属性」「すべて表示」を切り替えることができます。

  10. 管理対象属性として表示されている属性のリストを変更するには、「オプション属性」のアイコンをクリックします。「すべての属性」リストから「表示された属性」リストに移動する属性を選択し、「移動」および「すべて移動」の矢印を使用して属性を移動します。「表示された属性」リストから「すべての属性」リストに移動する属性を選択し、「削除」および「すべて削除」の矢印を使用して属性を移動します。「属性の追加」をクリックして変更を有効にするか、「取消」をクリックして変更を破棄します。「属性の追加」をクリックすると、「表示された属性」リストにあった属性のみが「管理対象属性」ビューに表示されます。

  11. オプション・プロパティの値を指定します。必須プロパティの値を変更することもできます。複数値属性の場合、「追加」および「削除」アイコンを使用して複数の値を追加および削除できます。

  12. 「適用」をクリックして変更を保存するか、「元に戻す」をクリックして変更を破棄します。

  13. 「サブツリー・アクセス」および「ローカル・アクセス」タブを使用して、このエントリに対してアクセス制御ポイント(ACP)を設定できます。手順は、第30.2.4項「ODSMのデータ・ブラウザを使用したACPの追加または変更」および第30.2.5項「ODSMのデータ・ブラウザを使用したエントリ・レベルのアクセスの設定または変更」を参照してください。

14.2.3 Oracle Directory Services Managerを使用した動的グループ・エントリの作成

動的グループは、静的メンバーと動的メンバーを持つことができます。静的メンバーは、memberまたはuniquemember属性の値として表示されます。動的グループ・エントリがgroupOfNamesオブジェクト・クラスに属する場合は、複数値属性memberに識別名を追加してグループに静的メンバーを追加します。動的グループ・エントリがgroupOfUniqueNamesオブジェクト・クラスに属する場合は、複数値属性uniqueMemberに識別名を追加してグループに静的メンバーを追加します。

動的グループの場合、グループのメンバーシップの算出方法を指定するための属性も設定する必要があります。グループのメンバーシップの動的な計算には、labeledURIまたはCONNECT BYメソッドを選択する必要があります。両方の方法を使用することはできません。labeledURIメソッドを使用する場合は、labeledURI属性を設定する必要がありますが、orclConnectByAttribute属性とorclConnectByStartingValue属性を設定する必要はありません。CONNECT BYメソッドを使用する場合は、orclConnectByAttribute属性とorclConnectByStartingValue属性を設定する必要がありますが、labeledURI属性を設定する必要はありません。

動的グループ・エントリを追加する手順は、次のとおりです。

  1. 第7.4.5項「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。

  2. タスク選択バーで、「データ・ブラウザ」を選択します。

  3. ツールバーの「エントリを新規作成します。」アイコンを選択します。新規エントリの作成ウィザードが表示されます。

  4. 新規エントリのオブジェクト・クラスを指定します。少なくとも次のオブジェクト・クラス・エントリを選択します。

    • groupOfNamesまたはgroupOfUniqueNames

    • orclDynamicGroupまたはorclDynamicList

    labeledURIに基づくキャッシュされる動的グループまたはCONNECT BYに基づく動的グループに対しては、orclDynamicGroupを使用します。labeledURIに基づくキャッシュされない動的リストに対しては、orclDynamicListを使用します。

    「追加」アイコンをクリックし、「オブジェクト・クラスの追加」ダイアログを使用して、オブジェクト・クラスのエントリを選択します。必要に応じて、検索ボックスを使用してオブジェクト・クラスのリストをフィルタリングします。オブジェクト・クラスを追加するには、オブジェクト・クラスを選択して「OK」をクリックします。(このオブジェクト・クラスからtopまでのすべてのスーパークラスも追加されます。)

  5. 「エントリの親」フィールドで、作成するエントリの親エントリの完全な識別名を指定できます。「参照」をクリックして、追加するエントリの親の識別名を見つけ、「選択」をクリックすることもできます。

    「エントリの親」フィールドを空白のままにすると、ルート・エントリの下にエントリが作成されます。

  6. 「次へ」をクリックします。

  7. このエントリの相対識別名値となる属性を選択し、その属性の値を入力します。cn属性がRDN値でない場合でも、この値を入力する必要があります。

  8. 「次へ」をクリックします。このウィザードの次のページが表示されます。(あるいは、「戻る」をクリックして前のページに戻ります。)

  9. 「終了」をクリックします。

  10. 所有者またはメンバーを追加するには、先ほどデータ・ツリーに作成したグループ・エントリに移動します。(新規エントリを表示するには、「リフレッシュ」アイコンをクリックする必要がある場合があります)。

  11. 「グループ」タブを選択します。

  12. グループに所有者を追加するには、「所有者」ボックスの横にある「追加」アイコンをクリックします。

  13. 所有者として追加するエントリ(通常はユーザーまたはグループ・エントリ)を識別名パスの選択ダイアログで選択します。

    「OK」をクリックします。

  14. グループにメンバーを追加するには、「メンバー」テキスト・ボックスの横にある「追加」アイコンをクリックします。

  15. メンバーとして追加するエントリ(通常はユーザーまたはグループ・エントリ)を識別名パスの選択ダイアログで選択します。

    「OK」をクリックします。

  16. 必要に応じてエントリの説明を入力します。

  17. 「適用」を選択して変更を適用するか、「元に戻す」を選択して変更を破棄します。

  18. 「属性」タブを選択します。

  19. 「ビュー」リストを使用すると、「管理対象属性」と「すべて表示」を切り替えることができます。

  20. 管理対象属性として表示されている属性のリストを変更するには、「オプション属性」のアイコンをクリックします。「すべての属性」リストから「表示された属性」リストに移動する属性を選択し、「移動」および「すべて移動」の矢印を使用して属性を移動します。「表示された属性」リストから「すべての属性」リストに移動する属性を選択し、「削除」および「すべて削除」の矢印を使用して属性を移動します。「属性の追加」をクリックして変更を有効にするか、「取消」をクリックして変更を破棄します。「属性の追加」をクリックすると、「表示された属性」リストにあった属性のみが「管理対象属性」ビューに表示されます。

  21. labeledURIメソッドを使用してグループのメンバーシップを動的に計算する場合は、labeledURI属性を設定する必要がありますが、orclConnectByAttribute属性とorclConnectByStartingValue属性を設定する必要はありません。「属性」タブ・ページの「labeledURI」フィールドで、次のように指定します。

    ldap:ldap_URL
    

    次に例を示します。

    ldap://my_host:3000/ou=MyNeworganizationalUnit,
     o=MyCompany,c=US??sub?(objectclass=person)
    

    CONNECT BYメソッドを使用してグループのメンバーシップを動的に計算する場合は、orclConnectByAttribute属性とorclConnectByStartingValue属性を設定する必要がありますが、labeledURI属性を設定する必要はありません。「orclConnectByAttribute」フィールドで、問合せのフィルタとして使用する属性(managerなど)を指定します。「orclConnectByStartingValue」フィールドで、orclConnectByAttribute属性で指定した属性の識別名(cn=Anne Smithなど)を指定します。

    「属性」タブ・ページに表示される他の属性の指定方法の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のユーザーおよびグループ・スキーマ要素に関する説明を参照してください。

  22. 「適用」をクリックして変更を保存するか、「元に戻す」をクリックして変更を破棄します。

  23. 「サブツリー・アクセス」および「ローカル・アクセス」タブを使用して、このエントリに対してアクセス制御ポイント(ACP)を設定できます。手順は、第30.2.4項「ODSMのデータ・ブラウザを使用したACPの追加または変更」および第30.2.5項「ODSMのデータ・ブラウザを使用したエントリ・レベルのアクセスの設定または変更」を参照してください。

14.2.4 Oracle Directory Services Managerを使用した動的グループ・エントリの変更

グループ内のメンバーシップの動的な計算にはlabeledURIまたはCONNECT BYメソッドを選択する必要があります。両方の方法を使用することはできません。labeledURIメソッドを使用する場合は、labeledURI属性を設定する必要がありますが、orclConnectByAttribute属性とorclConnectByStartingValue属性を設定する必要はありません。CONNECT BYメソッドを使用する場合は、orclConnectByAttribute属性とorclConnectByStartingValue属性を設定する必要がありますが、labeledURI属性を設定する必要はありません。

動的グループ・エントリの属性を変更するには、第14.2.2項「Oracle Directory Services Managerを使用した静的グループ・エントリの変更」の説明に従って、静的グループ・エントリの手順を実行します。静的メンバーを動的グループに追加できますが、そうすることは必須ではありません。

14.3 コマンドラインを使用したグループ・エントリの管理

LDAPツールを使用して、コマンドラインから静的グループと動的グループを管理できます。この項の内容は次のとおりです。


注意:

  • グループを作成する場合、メンバーの指定はオプションです。ここでは完全を期すために示します。

  • これに静的メンバーシップが含まれることはまれです。


14.3.1 ldapaddを使用した静的グループ・エントリの作成

LDIFファイルの構文は、次のとおりです。

dn: DN_of_group_entry
objectclass: top
objectclass: groupOfNames | groupOfUniqueNames
member: DN of member 1
member: DN of member 2
.
.
.
member: DN of member N

次のコマンドは、このLDIFファイルのグループおよびメンバーをディレクトリに追加します。

ldapadd -p port_number -h host -D cn=orcladmin -q -f file_name.ldif

例: ldapaddを使用した静的グループ・エントリの作成 次の例は、MyStaticGroupというグループのエントリ用のmyStaticGroup.ldifというLDIFファイルを示しています。

dn: cn=myStaticGroup,c=us
objectclass: top
objectclass: groupOfNames
member: cn=John Doe
member: cn=Anne Smith

次のコマンドは、このLDIFファイルのグループおよびメンバーをディレクトリに追加します。

ldapadd -p 3060 -h myhost -D cn=orcladmin -q -f myStaticGroup.ldif

14.3.2 ldapmodifyを使用した静的グループの変更

グループにメンバーを追加する場合、LDIFファイルの構文は次のようになります。

dn: DN_of_group_entry
changetype: modify
add: member
member: DN of member entry

グループからメンバーを削除する場合、LDIFファイルの構文は次のようになります。

dn: DN of group entry
changetype: modify
delete:member
member:DN of member entry

ファイルを変更するには、次のコマンドを発行します。

ldapmodify -D "cn=orcladmin" -q -p 3060 -v -f file_name.ldif

-vは冗長モードを指定します。

例: ldapmodifyを使用した静的グループの変更 次の例では、John DoeをMyStaticGroupというグループに追加します。前述の例と同様に、このユーザー・エントリに関するデータはmyStaticGroup.ldifファイルに記述されています。このファイルの内容は次のとおりです。

dn: cn=myStaticGroup,c=us
changetype: modify
add:member
member: cn=John Doe

ファイルを変更するには、次のコマンドを発行します。

ldapmodify -D "cn=orcladmin" -q -p 3060 -v -f myStaticGroup.ldif

-vは冗長モードを指定します。


注意:

エントリを追加または変更する場合、Oracleディレクトリ・サーバーではエントリの存在は検証されません。ただし、属性値に識別名を含める必要がある場合、ディレクトリ・サーバーは識別名が指定されていることを検証します。


14.3.3 ldapaddを使用した動的グループ・エントリの作成

コマンドラインからldapaddを使用して、動的グループを作成できます。

14.3.3.1 labeledURI属性を使用したキャッシュされた動的グループの作成

labeledURI属性を使用してキャッシュされる動的グループを作成する場合、LDIFファイルの構文は次のとおりです。

dn: DN_of_group_entry
objectclass: top
objectclass: groupOfNames | groupOfUniqueNames
objectclass: orcldynamicgroup
labeledURI:ldap:ldap_URL
member: DN of member 1
member: DN of member 2
.
.
.
member: DN of member N

次のコマンドを使用して、このLDIFファイルのグループおよびメンバーをディレクトリに追加します。

ldapadd -p port_number -h host -f file_name.ldif

14.3.3.2 labeledURI属性を使用したキャッシュされない動的リストの作成

labeledURI属性を使用してキャッシュされない動的リストを作成する場合、LDIFファイルの構文は次のとおりです。

dn: DN_of_group_entry
objectclass: top
objectclass: groupOfNames | groupOfUniqueNames
objectclass: orcldynamiclist
labeledURI:ldap:ldap_URL
member: DN of member 1
member: DN of member 2
.
.
.
member: DN of member N

前述の例と同じコマンドを使用して、このLDIFファイルのグループおよびメンバーをディレクトリに追加します。

ldapadd -p port_number -h host -f file_name.ldif

14.3.3.3 CONNECT BY文字列を使用した動的グループの作成

CONNECT BY文字列を使用する場合、LDIFファイルの構文は次のようになります。

dn: DN_of_group_entry
objectclass: top
objectclass: groupOfNames | groupOfUniqueNames
objectclass: orclDynamicGroup
orclConnectByAttribute:attribute_name
orclConnectByStartingValue:DN_of_attribute
member: DN of member 1
member: DN of member 2
.
.
.
member: DN of member N

この構文でエントリを指定する場合は、識別名を二重引用符で囲まないでください。

次の例は、動的グループのエントリ用のLDIFファイルを示しています。

dn: cn=myDynamicGroup,c=us
objectclass: top
objectclass: groupOfNames
objectclass: orcldynamicgroup
labeledURI:ldap://my_host:3000/ou=MyNeworganizationalUnit,
 o=MyCompany,c=US??sub?(objectclass=person)
member: cn=John Doe
member: cn=Anne Smith

次のコマンドは、このLDIFファイルをディレクトリに追加します。

ldapadd -p 3060 -h myhost -f myDynamicGroup.ldif

14.3.4 ldapmodifyを使用した動的グループの変更

前述の例で作成したグループの組織単位を変更する場合、LDIFファイルの構文は次のようになります。

dn: DN_of_group_entry
changetype: modify
replace:labeledURI
labeledURI:ldap://my_host:3000/
 ou=MyNeworganizationalUnit,o=MyCompany,c=US??sub?(objectclass=person)

注意:

エントリを追加または削除する場合、Oracleディレクトリ・サーバーではエントリ属性値の構文検証は行われません。