29 管理ユーザーの管理

ルート・ユーザーのパスワードと権限を作成および変更できます。また、制限された権限を持つ管理者を表示および作成できます。

トピック

29.1 特権サブシステムについて

Oracle Unified Directoryは、ルート・ユーザー、グローバル管理者およびサーバーの管理者を構成できる柔軟な特権サブシステムを備えています。複数のルート・ユーザーを構成して、管理者ごとに異なるroot特権を割り当てることができます。管理ドメインについては、ネットワーク内またはレプリケート環境内の管理ドメインを管理する複数のドメイン管理者を構成することもできます。

この章で説明する手順の使用を開始する前に、サーバーに関する次のガイドラインを決定する必要があります。

  • ルート・ユーザー数、各ルート・ユーザーの特権およびリソース制限(制限が必要な場合)。

  • 管理者数、各管理者の特権およびリソース制限(制限が必要な場合)。

  • システムのユーザー・アカウントに関するガイドライン。

  • サーバーおよび特定のユーザー・グループのパスワード・ポリシー。

29.2 ルート・ユーザーの定義

ルート・ユーザーおよび特権サブシステムの詳細は、これらのトピックを参照してください。

29.2.1 ルート・ユーザーについて

Oracle Unified Directoryは、cn=Directory ManagerというデフォルトのルートDN (ルート・ユーザー)を1つ備えています。このデフォルトのルートDNは、サーバー内のすべてのデータに対する完全な読取りおよび書込みアクセスを含む特殊特権を割り当てられたユーザー・エントリです。

ルートDNは、UNIXのルート・ユーザーまたはスーパーユーザーに相当し、アクセス制御を回避してサーバー上でタスクを実行できます。ルート・ユーザーは、サーバーの"cn=Root DNs,cn=config"ブランチの下にあるcn=Directory Manager,cn=Root DNs,cn=configで定義されます。

ルート・ユーザーは、次の面で通常のユーザー・エントリとは異なります:

  • 構成。サーバー構成(cn=config)内に存在することが可能なユーザー・アカウントはルート・ユーザーのみです。

  • 特権の継承。ルート・ユーザーは、デフォルトのルート・ユーザー特権セットを自動的に継承します。通常のユーザーは、明示的に付与されないかぎり、どのような特権も自動的には受け取りません。特権は、実際、仮想またはこの両方のroot-privilege-name属性を使用して、エントリ内で付与できます。

  • ロックダウン・モード。サーバーにロックダウン・モードを開始または終了させることができるユーザーは、ルート・ユーザーのみです。これらの操作はループ・インタフェースを介してのみ可能です。

29.2.2 複数のルート・ユーザーについて

サーバーでは、複数のルート・ユーザー(それぞれがそのサーバー上に固有のエントリと固有の資格証明セットを保有)をサポートしています。そのため、特定のタスクについてルート・アクセス権を必要とし、ルート・ユーザーの完全な特権セットは必要としない可能性があるユーザーに対しても特権を割り当てることが可能です。

各エントリでは、GSSAPI SASLメカニズムなどの厳密な認証やパスワード・ポリシーの割当またはリソース制限の追加(スキーマでこの制限が可能な場合)を行うことができ、ルート・ユーザーごとにまったく異なる構成を設定できます。

特権サブシステムでは、複数のルート・ユーザーの構成をサポートしています。

29.2.3 ルート・ユーザーと特権サブシステム

特権サブシステムは、ルート・ユーザーの特定のアクセス特権セットのみを必要とする可能性があるユーザーに対して、特権を絞り込んで割り当てることを可能にします。ルート・ユーザーには、"cn=Root DNs,cn=config"サブツリー内のdefault-root-privilege-name属性で定義されている特権セットが自動的に付与されます。

特権サブシステムはアクセス制御サブシステムからは独立していますが、一部の操作にはアクセス制御が適用されることがあります。

次の表は、ルート・ユーザーに自動的に割り当てられる特権セットを示しています。

特権 説明

backend-backup

バックエンドのバックアップ・タスクのリクエストをユーザーに許可します。

backend-restore

バックエンドのリストア・タスクのリクエストをユーザーに許可します。

bypass-acl

アクセス制御評価の回避をユーザーに許可します。

bypass-lockdown

サーバー・ロックダウン・モードの回避を関連付けられたユーザーに許可します。

cancel-request

任意のクライアント・リクエストの取消をユーザーに許可します。

config-read

サーバー構成への読取りアクセスをユーザーに許可します。

config-write

サーバー構成への書込みアクセスをユーザーに許可します。

disconnect-client

任意のクライアント接続の終了をユーザーに許可します。

ldif-export

LDIFエクスポート・タスクのリクエストをユーザーに許可します。

ldif-import

LDIFインポート・タスクのリクエストをユーザーに許可します。

modify-acl

サーバーに定義されているアクセス制御命令の変更をユーザーに許可します。

password-reset

ユーザー・パスワードのリセットをユーザーに許可します。

privilege-change

ユーザーに割り当てられた特権セットの変更またはデフォルトのroot特権セットの変更をユーザーに許可します。

server-restart

サーバー再起動タスクのリクエストをユーザーに許可します。

server-shutdown

サーバー停止タスクのリクエストをユーザーに許可します。

subentry-write

LDAPサブエントリ書込み操作の実行を関連付けられたユーザーに許可します。

unindexed-search

索引なし検索操作のリクエストをユーザーに許可します。

update-schema

サーバー・スキーマの更新をユーザーに許可します。

次の表は、ルート・ユーザーに割り当てることができる特権を示しています。

特権 説明

jmx-notify

JMX通知のサブスクライブをユーザーに許可します。

jmx-read

JMX属性値の読取りをユーザーに許可します。

jmx-write

JMX属性値の更新をユーザーに許可します。

proxied-auth

プロキシ設定された認可制御の使用または代替SASL認証IDのリクエストをユーザーに許可します。

29.3 dsconfigによるルート・ユーザーの管理

ルート・ユーザーの管理にはdsconfigコマンドを使用します。

詳細は、「dsconfigを使用したサーバー構成の管理」を参照してください。

次の各トピックでは、dsconfigコマンドを使用して、ルート・ユーザーを管理するタスクを示しています。

29.3.1 デフォルトのルート・ユーザー特権の表示

デフォルトのルート・ユーザーは様々な特権を保有しています。これらの特権はdefault-root-privilege-nameプロパティの値として格納されています。

デフォルトのルート・ユーザー特権を表示するには、次のdsconfigコマンドを実行します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -n \
  get-root-dn-prop

Property                    : Value(s)
----------------------------:--------------------------------------------------
default-root-privilege-name : backend-backup, backend-restore, bypass-acl, 
                            : cancel-request, config-read, config-write,
                            : disconnect-client, ldif-export, ldif-import, 
                            : modify-acl, password-reset, privilege-change,
                            : server-restart, server-shutdown,
                            : unindexed-search, update-schema

29.3.2 デフォルトのルート・ユーザー特権の編集

デフォルトのルート・ユーザーの特権を追加または削除したり、default-root-privilege-nameプロパティの値を追加または削除できます。ルート・ユーザー特権の最も容易な管理方法は、対話モードでdsconfigを使用することです。対話モードでは画面の指示に従ってルート・ユーザー構成を変更できるため、この手順はここでは取り上げません。

default-root-privilege-nameプロパティには、次の値を指定できます。

  • backend-backup

  • backend-restore

  • bypass-acl

  • cancel-request

  • config-read

  • config-write

  • disconnect-client

  • jmx-notify

  • jmx-read

  • jmx-write

  • ldif-export

  • ldif-import

  • modify-acl

  • password-reset

  • privilege-change

  • proxied-auth

  • server-restart

  • server-shutdown

  • unindexed-search

  • update-schema

次の例では、dsconfigを非対話モードで使用して、デフォルトのルート・ユーザーにjmx-notify特権を追加します。

dsconfigコマンドを次のように実行します:

$ dsconfig -h localhost -p 4444 -D "cn=directory manager" -j pwd-file -n \
  set-root-dn-prop --add default-root-privilege-name:jmx-notify

29.3.3 ルート・ユーザーの作成

ldapmodifyコマンドを使用して、新しいルート・ユーザーを作成し、LDIFでエントリを作成します。ルート・ユーザーはcn=Root DNs,cn=configエントリの下に格納されます。

ノート:

cn=config接尾辞は管理コネクタからのみ使用可能なため、SSLを使用して管理ポートからアクセスする必要があります。

ルート・ユーザーは、サーバーのデフォルトのルート・ユーザー特権セットを自動的に継承します。

ルート・ユーザーを作成するには:

  1. cn=Root DNs,cn=configエントリの下にルート・ユーザー・エントリを作成します。

    次のLDIFファイルは、Administration Managerという新しいルート・ユーザー名を示しています。このエントリはadd-root-user.ldifという名前のファイルに保存されています。

    dn: cn=MyRootUser,cn=Root DNs,cn=config
    objectClass: inetOrgPerson
    objectClass: person
    objectClass: top
    objectClass: ds-cfg-root-dn-user
    objectClass: organizationalPerson
    userPassword: password
    cn: MyRootUser
    sn: MyRootUser
    ds-cfg-alternate-bind-dn: cn=MyRootUser
    givenName: Directory
    
  2. ldapmodifyコマンドを使用して、エントリを追加します。
    $ ldapmodify -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file \
      --useSSL --defaultAdd --filename "add-root-user.ldif"
    Processing ADD request for cn=MyRootUser,cn=Root DNs,cn=config
    ADD operation successful for DN cn=MyRootUser,cn=Root DNs,cn=config
    
  3. サーバーに定義されているすべてのルート・ユーザーを表示するには、ldapsearchコマンドを使用します。
    $ ldapsearch -p 4444 -b "cn=root DNs,cn=config" -D "cn=directory manager" -j pwd-file \
    --useSSL "objectclass=*" dn
    dn: cn=Root DNs,cn=config
    
    dn: cn=MyRootUser,cn=Root DNs,cn=config
    
    dn: cn=Directory Manager,cn=Root DNs,cn=config
    

特定のルート・ユーザーの特権の追加または削除の詳細は、「ルート・ユーザーの特権の変更」を参照してください。

29.3.4 ルート・ユーザーのパスワードの変更

ldappasswordmodifyクライアント・コマンドを使用して、ルート・ユーザーのパスワードを変更します。

ルート・ユーザーのパスワードを変更するには:

  1. セキュア・ファイルにパスワードを作成します。
  2. ldappasswordmodifyを使用して、パスワードを変更します。
    $ ldappasswordmodify -h localhost -p 4444 -D "cn=MyRootUser" -j pwd-file \
      --useSSL --newPasswordFile rootuser_pwd.txt
    The LDAP password modify operation was successful
    

29.3.5 ルート・ユーザーの特権の変更

特定のルート・ユーザーに対して異なる特権セットを割り当てるには、そのルート・ユーザーのエントリにds-privilege-name属性を追加します。

次の例では、ルート・ユーザー"cn=MyRootUser,cn=Root DNs,cn=config"に、プロキシ認可を使用する権限を割り当てます。この例では、ユーザー特権の変更権限と構成へのアクセス権限を削除します。特権の前のマイナス記号は、その特権が追加されるのではなく、削除されることを表します。

ルート・ユーザーのエントリに次のLDIF文を適用します:

dn: cn=MyRootUser,cn=Root DNs,cn=config
changetype: modify
add: ds-privilege-name
ds-privilege-name: proxied-auth
ds-privilege-name: -config-read
ds-privilege-name: -config-write 

この例のルート・ユーザー"cn=MyRootUser,cn=Root DNs,cn=config"は、ルート・ユーザーに自動的に付与される特権のうち、config-read特権とconfig-write特権を除くすべての特権を継承します。また、このユーザーにはproxied-auth特権も付与されます。

29.4 ルート・ユーザーのリソース制限の設定

サーバーにバインドされているクライアント・アプリケーションで操作属性を使用することによって、検索操作に対するサーバーのリソース制限を設定できます。

使用可能なリソース制限は次のとおりです:

  • 検索制限。単一の検索操作中に調べることができる最大エントリ数を指定します。ds-rlim-lookthrough-limit操作属性を使用します。

  • サイズ制限。単一の検索操作で返すことができる最大エントリ数を指定します。ds-rlim-size-limit操作属性を使用します。

  • 時間制限。検索操作の処理に使用できる最大時間を秒単位で指定します。ds-rlim-time-limit操作属性を使用します。

次のLDIF update文では、前の項で作成した新しいルート・ユーザーに対してリソース制限を設定します。この文をルート・ユーザーのエントリに適用します。

dn: cn=MyRootUser,cn=Root DNs,cn=config
changetype: modify
add: ds-rlim-lookthrough-limit
ds-rlim-lookthrough-limit: 1000
-
add: ds-rlim-size-limit
ds-rlim-size-limit: 500
-
add: ds-rlim-time-limit
ds-rlim-time-limit: 300

特定のリソース制限を無制限に設定するには、対応する属性の値を0(ゼロ)に設定します。

29.5 管理者の管理

一般に、管理者はほとんどのユーザーよりも広範な権限を保有します。デフォルトでは、管理者はOUD構成に格納されているため、レプリケートされません。複数の管理者を作成し、それぞれの管理者に異なるアクセス制御やリソース制限を割り当てることができます。

グラフィカル・インストーラまたはdsreplicationコマンドを使用したレプリケーション・サーバーの設定時には、グローバル管理者のユーザー名とパスワードを設定するように求められます。グローバル管理者は、レプリケート環境内の管理サーバーの管理とメンテナンスの責任者です。

ノート:

管理バインドはcn=configのルートdnsで解決されるため、ルート・ユーザーのみが管理ポートをバインドできます

管理者の詳細は、次の各項を参照してください。

29.5.1 グローバル管理者エントリの表示

レプリケーション用に作成したグローバル管理者はcn=Administrators,cn=admin dataサブツリーに存在するため、レプリケートされ、レプリケートされたトポロジの各OUDインスタンスとともに使用できます。

グローバル管理者のエントリを表示するには、次のldapsearchコマンドを実行します:

$ ldapsearch -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file \
  --useSSL -b "cn=Administrators,cn=admin data" -s sub "(objectclass=*)"
dn: cn=Administrators,cn=admin data
objectClass: top
objectClass: groupofurls
description: Group of identities which have full access.
cn: Administrators
memberURL: ldap:///cn=Administrators,cn=admin data??one?(objectclass=*)
dn: cn=admin,cn=Administrators,cn=admin data
objectClass: person
objectClass: top
userPassword: {SSHA}+ed1wbhcWjxtv2zJ6OHEA2TuE9n1qIJGnuR94w==
description: The Administrator that can manage all the OUD instances.
cn: admin 

29.5.2 制限された権限を持つ管理者の作成

レプリケーション用に作成されたグローバル管理者は、管理者権限のフルセットを持っています。場合によっては、一部の管理者権限のみを持つ管理者を別途作成することが有用な場合があります。たとえば、モニター管理者はOUD構成を読み取る権限を持ちますが、変更はできません。カスタム管理者は、レプリケートされた接尾辞cn=admin dataに格納されます。グローバル管理者同様、カスタム管理者はレプリケートされます。

限られた権限を持つ管理者を作成するには、cn=admin data接尾辞に独自の管理者コンテナ・ノードを作成します。

./ldapmodify -a -p 4444 -Z -X -D "cn=directory manager"  -w ****
dn: cn= my admins,cn=admin data
objectclass: top
objectClass: ds-cfg-branch
 
dn: cn=monitor,cn=my admins,cn=admin data
objectClass: person
cn: monitor
sn: monitor 
userpassword: ****

この段階で、これらの資格証明(cn=monitor,cn=my admins,cn=admin data)をdsconfigで使用できます。dsconfigコマンドではそのユーザーを認証できます。ただし、管理者は権限がないため、構成を読み取ることはできません。dsconfigコマンドで、構成内の移動時に次のエラーが報告されます。

The Administration Connector could not be modified because you do not 
have the correct authorization

適切な権限を割り当て、管理者が必要な処理を実行できるようにする必要があります。前述の例では、管理者にconfig-read権限を割り当てる必要があります。管理者が構成に対して権限アクションを実行できるようbypass-acl権限も必要です。

./ldapmodify -p 4444 -Z -X -D "cn=directory manager"  -w ****
dn: cn=monitor,cn=my admins,cn=admin data
changetype: modify
add: ds-privilege-name
ds-privilege-name: bypass-acl
ds-privilege-name: config-read

これで管理者はdsconfigを使用して構成を読み取れます。ただし、構成を変更しようとすると、次のエラーになります。

The Configuration could not be modified because you do not have 
the correct authorization.