JavaScriptが検索に必要です。
ナビゲーション・リンクをスキップ
印刷ビューの終了
Oracle Directory Server Enterprise Edition管理ガイド 11gリリース1(11.1.1.5.0)
検索フィルタ・アイコン
検索アイコン

ドキュメント情報

はじめに

第1部 Directory Serverの管理

1.  Directory Serverのツール

2.  Directory Serverのインスタンスと接尾辞

3.  Directory Serverの構成

4.  Directory Serverのエントリ

5.  Directory Serverのセキュリティ

6.  Directory Serverのアクセス制御

ACIの作成、表示および変更

ACIを作成、変更および削除するには:

ACI属性値を表示するには:

ルート・レベルでACIを表示するには:

ACI構文

ACIターゲット

ターゲット構文

ターゲット・キーワード

ACI権限

権限構文

権限の割当て

一般的なLDAP操作の権限

ACIバインド・ルール

バインド・ルールの概要

バインド・ルール構文

バインド・ルールのキーワード

ブール値バインド・ルール

dsutilコマンドを使用して通常ユーザーにユーザー・アカウントを管理させるには:

アクセス制御の使用例

匿名アクセスの許可

ACI "Anonymous Example.com"

ACI "Anonymous World"

個人エントリへの書込みアクセスの許可

ACI "Write Example.com"

ACI "Write Subscribers"

特定のレベルへのアクセス権の付与

ACI "Read Example.com only"

キー・ロールへのアクセス権の制限

ACI "Roles"

ロールに対する接尾辞全体への完全アクセスの許可

ACI "Full Access"

グループに対する接尾辞への完全アクセスの許可

ACI "HR"

グループ・エントリを追加および削除する権限の付与

ACI "Create Group"

ACI "Delete Group"

ユーザーに対するグループへの自身の追加または削除の許可

ACI "Group Members"

グループまたはロールへの条件付きアクセスの許可

ACI "Company333"

アクセスの拒否

ACI "Billing Info Read"

ACI "Billing Info Deny"

プロキシ認可

プロキシ認可の例

フィルタリングを使用したターゲットの設定

カンマを含むDNの権限の定義

実効権限の表示

実効権限取得制御へのアクセス制限

実効権限取得制御の使用方法

高度なアクセス制御: マクロACIの使用方法

マクロACIの例

マクロACIの構文

ターゲット内での($dn)とのマッチング

サブジェクト内での($dn)の置換

サブジェクト内での[$dn]の置換

($attr.attrName)に対するマクロ・マッチング

アクセス制御情報のロギング

ACIのロギングを設定するには:

TCPラップによるクライアントホスト・アクセス制御

TCPラップを有効にするには:

TCPラップを無効にするには:

7.  Directory Serverのパスワード・ポリシー

8.  Directory Serverのバックアップとリストア

9.  Directory Serverのグループ、ロールおよびCoS

10.  Directory Serverのレプリケーション

11.  Directory Serverのスキーマ

12.  Directory Serverの索引作成

13.  Directory Serverの属性値の一意性

14.  Directory Serverのロギング

15.  Directory Serverの監視

第2部 Directory Proxy Serverの管理

16.  Directory Proxy Serverのツール

17.  Directory Proxy Serverのインスタンス

18.  LDAPデータ・ビュー

19.  Directory Proxy Serverの証明書

20.  Directory Proxy Serverのロード・バランシングとクライアント・アフィニティ

21.  Directory Proxy Serverの配布

22.  Directory Proxy Serverによる仮想化

23.  仮想データ変換

24.  Directory Proxy ServerとバックエンドLDAPサーバーの接続

25.  クライアントとDirectory Proxy Serverの接続

26.  Directory Proxy Serverのクライアント認証

27.  Directory Proxy Serverのロギング

28.  Directory Proxy Serverの監視とアラート

第3部 Directory Service Control Centerの管理

29.  Directory Service Control Centerの構成

索引

高度なアクセス制御: マクロACIの使用方法

同じようなディレクトリ・ツリー構造を持つ組織では、マクロによってディレクトリ内で使用するACIの数を最適化できます。ディレクトリ・ツリー内のACIの数を減らすことによって、アクセス制御ポリシーの管理が簡単になります。また、ACIによるメモリー使用の効率も向上します。

マクロは、ACIの中でDN、またはDNの一部を表現するために使用されるプレースホルダです。マクロを使用すると、ACIのターゲット部分またはバインド・ルール部分、あるいはその両方のDNを表せます。実際の処理では、Directory ServerがLDAP操作を受け取ると、LDAP操作のターゲットとなるリソースに対してACIマクロのマッチングが行われます。このマッチングは、一致する部分文字列の存在を確認するために行われます。一致が検出された場合は、一致した部分文字列を使用してバインド・ルール側のマクロが展開され、その展開バインド・ルールを評価してリソースへのアクセス権が決定されます。

この項では、マクロACIの例とマクロACIの構文について説明します。

マクロACIの例

マクロACIの利点と最も効果的に機能させる方法を、例を示しながら説明します。図6-1は、全体的なACIの数を減らすために、マクロACIを効果的に利用しているディレクトリ・ツリーです。

この例では、同じツリー構造のサブドメインが同じパターンで繰り返されています(ou=groups,ou=people)。Example.comディレクトリ・ツリーには、dc=hostedCompany2,dc=example,dc=comおよびdc=hostedCompany3,dc=example,dc=comという2つの接尾辞が格納されているので、このパターンはツリー内でも繰り返されています。ただし、図には示されていません。

ディレクトリ・ツリーにあるACIでも、同じパターンが繰り返されています。たとえば、次のACIはdc=hostedCompany1,dc=example,dc=comノード上に置かれています。

aci: (targetattr="*")
 (targetfilter=(objectClass=nsManagedDomain))(version 3.0;
 acl "Domain access"; allow (read,search) groupdn=
 "ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany1,
 dc=example,dc=com";)

このACIは、dc=hostedCompany1,dc=example,dc=comツリー内のすべてのエントリに対する読取りおよび検索権限をdomainAdminsグループに与えます。

図6-1 マクロACIのディレクトリ・ツリーの例

図: dc=hostedcompany1,dc=example,dc=comと各種サブドメインを示すディレクトリ・ツリーの例のトポロジ

次のACIは、dc=hostedCompany1,dc=example,dc=comノード上に置かれています。

aci: (targetattr="*")
 (targetfilter=(objectClass=nsManagedDomain))
 (version 3.0; acl "Domain access"; allow (read,search)
 groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com";)

次のACIは、dc=subdomain1,dc=hostedCompany1, dc=example,dc=comノード上に置かれています。

aci: (targetattr="*")
 (targetfilter=(objectClass=nsManagedDomain))
 (version 3.0; acl "Domain access"; allow (read,search)
 groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany1,
  dc=example,dc=com";)

次のACIは、dc=hostedCompany2,dc=example,dc=comノード上に置かれています。

aci: (targetattr="*")
 (targetfilter=(objectClass=nsManagedDomain))
 (version 3.0; acl "Domain access"; allow (read,search)
 groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany2, dc=example,dc=com";)

次のACIは、dc=subdomain1,dc=hostedCompany2, dc=example,dc=comノード上に置かれています。

aci: (targetattr="*")
 (targetfilter=(objectClass=nsManagedDomain))
 (version 3.0; acl "Domain access"; allow (read,search)
 groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany2,
 dc=example,dc=com";)

前述の4つのACIの違いは、groupdnキーワード内で指定されているDNのみです。DN用のマクロを使用することによって、これらのACIを、1つのACIにまとめてルート・ツリーのdc=example,dc=comノードに置くことができます。このマクロACIは次のようになります。

aci: (target="ldap:///ou=Groups,($dn),dc=example,dc=com")
 (targetattr="*")(targetfilter=(objectClass=nsManagedDomain))
 (version 3.0; acl "Domain access"; allow (read,search) 
 groupdn="ldap:///cn=DomainAdmins,ou=Groups,[$dn],dc=example,dc=com";)

前述の個々のACIでは使用されていなかったtargetキーワードをここでは新たに使用していることに注意してください。

この例では、ACIの数が4つから1つに減っています。ただし、本当の利点はそれのみではなく、ディレクトリ・ツリー全体で複数繰り返されているパターンをまとめられるところにあります。

マクロACIの構文

ここでは、わかりやすくするために、userdnroledngroupdnuserattrなどのバインド資格証明を与えるために使用されるACIキーワードをまとめて、サブジェクトと呼びます。サブジェクトは、ACIの適用対象を決定します。

次の表に、特定のACIキーワードの置換に使用できるマクロを示します。

表6-3 マクロACIキーワード

マクロ
説明
ACIキーワード
($dn)
targetでマッチング要素として使用されます。サブジェクト内では、実際に($dn)と一致した文字列に置き換えられます。
target、targetfilter、userdn、roledn、groupdn、userattr
[$dn]
サブジェクトのサブツリー内で機能する複数のRDNに置き換えられます。
targetfilter、userdn、roledn、groupdn、userattr
($attr.attrName)
ターゲット・エントリのattributeName属性に設定されている値に置き換えられて、サブジェクトに設定されます。
userdn、roledn、groupdn、userattr

マクロACIキーワードには、次のような制限が適用されます。

ターゲット内での($dn)とのマッチング

ACIのtargetに含まれる($dn)マクロを、LDAPリクエストのターゲットとなるエントリと比較することによって、実際に置き換えられる値が決定します。たとえば、このエントリをターゲットとするLDAPリクエストがあるとします。

cn=all,ou=groups,dc=subdomain1, dc=hostedCompany1,dc=example,dc=com

また、次のようなtargetを定義しているACIもあるとします。

(target="ldap:///ou=Groups,($dn),dc=example,dc=com")

この場合、($dn)マクロはdc=subdomain1, dc=hostedCompany1と一致します。ACIのサブジェクト内で($dn)はこの部分文字列に置き換えられます。

サブジェクト内での($dn)の置換

ACIのサブジェクト内では、($dn)マクロはターゲット内で一致する部分文字列全体に置き換えられます。たとえば、次のようになります。

groupdn="ldap:///cn=DomainAdmins,ou=Groups,($dn),dc=example,dc=com"

サブジェクトは次のようになります。

groupdn="ldap:///cn=DomainAdmins,ou=Groups,
 dc=subdomain1,dc=hostedCompany1,dc=example,dc=com"

マクロが展開されると、通常のプロセスに続いてDirectory ServerがACIを評価し、アクセス権が与えられるかどうかを決定します。


注意: 標準のACIとは異なり、マクロ置換を使用したACIはターゲット・エントリの子へのアクセスを許可する必要はありません。これは、子のDNがターゲットとなった場合に、置換によってサブジェクト文字列内に有効なDNが作成されない可能性があるためです。


サブジェクト内での[$dn]の置換

[$dn]の置換メカニズムは($dn)のものと少し異なります。一致する対象が見つかるまで、一番左にあるRDNコンポーネントを外しながら、ターゲット・リソースのDNの検証を繰り返します。

たとえば、cn=all,ou=groups, dc=subdomain1,dc=hostedCompany1,dc=example,dc=comサブツリーをターゲットとするLDAPリクエストで、次のようなACIがあるとします。

aci: (targetattr="*")
 (target="ldap:///ou=Groups,($dn),dc=example,dc=com")
 (version 3.0; acl "Domain access"; allow (read,search)
 groupdn="ldap:///cn=DomainAdmins,ou=Groups,[$dn],
 dc=example,dc=com";)

サーバーは次のように処理を続け、このACIを展開します。

  1. targetの($dn)dc=subdomain1,dc=hostedCompany1が一致することを確認します。

  2. サブジェクトの[$dn]dc=subdomain1,dc=hostedCompany1で置き換えます。

    この結果、サブジェクトはgroupdn="ldap:///cn=DomainAdmins,ou=Groups, dc=subdomain1,dc=hostedCompany1,dc=example,dc=com"になります。バインドDNがそのグループのメンバーであるためにアクセスが許可される場合は、マクロの展開を停止し、ACIを評価します。バインドDNがメンバーでない場合は、処理を継続します。

  3. サブジェクトの[$dn]dc=hostedCompany1で置き換えます。

    この結果、サブジェクトはgroupdn="ldap:///cn=DomainAdmins,ou=Groups, dc=hostedCompany1,dc=example,dc=com"になります。バインドDNがこのグループのメンバーであるかどうかが再び検証され、メンバーである場合はACIが完全に評価されます。バインドDNがメンバーでない場合は、マクロの展開は最後に一致したRDNで置き換えたところで終了し、このACIに対する評価は終了します。

[$dn]マクロの利点は、ドメインレベルの管理者に対して、ディレクトリ・ツリー内のすべてのサブドメインへのアクセス権を柔軟な方法で与えられることです。したがって、[$dn]マクロは、ドメイン間の階層的な関係を表す場合に便利です。

たとえば、次のようなACIがあるとします。

aci: (target="ldap:///ou=*,($dn),dc=example,dc=com") (targetattr="*")
(targetfilter=(objectClass=nsManagedDomain)) 
(version 3.0; acl "Domain access"; allow (read,search) groupdn= 
"ldap:///cn=DomainAdmins,ou=Groups,[$dn],dc=example,dc=com";)

このACIは、cn=DomainAdmins,ou=Groups, dc=hostedCompany1,dc=example,dc=comのメンバーに対して、dc=hostedCompany1の下にあるすべてのサブドメインへのアクセス権を与えます。したがって、そのグループに属する管理者は、サブツリーou=people,dc=subdomain1.1,dc=subdomain1などにアクセスできます。

ただし、同時に、cn=DomainAdmins,ou=Groups, dc=subdomain1.1のメンバーのou=people,dc=subdomain1, dc=hostedCompany1およびou=people,dc=hostedCompany1ノードに対するアクセスは拒否されます。

($attr.attrName)に対するマクロ・マッチング

($attr.attrname)マクロは、常にDNのサブジェクト部分で使用されます。たとえば、次のようなrolednを定義できます。

roledn = "ldap:///cn=DomainAdmins,($attr.ou),dc=HostedCompany1,dc=example,dc=com"

ここで、サーバーが次のエントリをターゲットとするLDAP操作を受け取ったとします。

dn: cn=Babs Jensen,ou=People,dc=HostedCompany1,dc=example,dc=com
cn: Babs Jensen
sn: Jensen
ou: Sales
...

ACIのroledn部分を評価するために、サーバーはターゲット・エントリに格納されているou属性の値を読み取ります。その後、サブジェクト内でこの値を置換してマクロを展開します。この例では、rolednは次のように展開されます。

roledn = "ldap:///cn=DomainAdmins,ou=Sales,dc=HostedCompany1,dc=example,dc=com"

続いて、通常のACI評価アルゴリズムに従って、Directory ServerがACIを評価します。

マクロ内で指定された属性が複数の値を持つ場合は、それぞれの値を使用して順にマクロが展開されます。最初にマッチングに成功した値が使用されます。