Oracle Unified Directoryは、ルート・ユーザー、グローバル管理者およびサーバーの管理者を構成できる柔軟な特権サブシステムを備えています。複数のルート・ユーザーを構成して、管理者ごとに異なるroot特権を割り当てることができます。管理ドメインについては、ネットワーク内またはレプリケート環境内の管理ドメインを管理する複数のドメイン管理者を構成することもできます。
この項のトピックでは、複数のルート・ユーザーおよび特権サブシステムの管理について説明します。また、サーバーを安全に管理するために必要な様々なユーザー・アカウントの構成およびメンテナンス手順についても説明します。
ここで概説する手順を開始する前に、サーバーに関する次のガイドラインについて決定しておきます:
ルート・ユーザー数、各ルート・ユーザーの特権およびリソース制限(制限が必要な場合)。
管理者数、各管理者の特権およびリソース制限(制限が必要な場合)。
システムのユーザー・アカウントに関するガイドライン。
サーバーおよび特定のユーザー・グループのパスワード・ポリシー。
この章では、次のトピックを取り扱います:
Oracle Unified Directoryは、"cn=Directory Manager"
というデフォルトのルートDN(ルート・ユーザー)を1つ備えています。このデフォルトのルートDNは、サーバー内のすべてのデータに対する完全な読取りおよび書込みアクセスが可能な特殊特権を割り当てられたユーザー・エントリです。ルートDNは、Unixのルート・ユーザーまたはスーパーユーザーに相当し、アクセス制御を回避してサーバー上でタスクを実行できます。ルート・ユーザーは、サーバーの"cn=Root DNs,cn=config"
ブランチの下にあるcn=Directory Manager,cn=Root DNs,cn=config
で定義されます。
サーバーでは、複数のルート・ユーザー(それぞれがそのサーバー上に固有のエントリと固有の資格証明セットを保有)をサポートしています。そのため、特定のタスクについてのみルート・アクセス権を必要とし、ルート・ユーザーの完全な特権セットは必要としない可能性があるユーザーに対しても特権を割り当てることが可能です。各エントリでは、GSSAPI SASLメカニズムなどの厳密な認証やパスワード・ポリシーの割当またはリソース制限の追加(スキーマでこの制限が可能な場合)を行うことができ、ルート・ユーザーごとにまったく異なる構成を設定できます。
ルート・ユーザーは、次の面で通常のユーザー・エントリとは異なります:
構成。サーバー構成(cn=config
)内に存在することが可能なユーザー・アカウントはルート・ユーザーのみです。
特権の継承。ルート・ユーザーは、デフォルトのルート・ユーザー特権セットを自動的に継承します。通常のユーザーは、明示的に付与されないかぎり、どのような特権も自動的には受け取りません。特権は、実際、仮想またはこの両方のroot-privilege-name属性を使用して、エントリ内で付与できます。
ロックダウン・モード。サーバーにロックダウン・モードを開始または終了させることができるユーザーは、ルート・ユーザーのみです。これらの操作はループ・インタフェースを介してのみ可能です。
特権サブシステムでは、複数のルート・ユーザーの構成をサポートしています。
特権サブシステムは、ルート・ユーザーの特定のアクセス特権セットのみを必要とする可能性があるユーザーに対して、特権を絞り込んで割り当てることを可能にします。ルート・ユーザーには、"cn=Root DNs,cn=config"
サブツリー内のdefault-root-privilege-name
属性で定義されている特権セットが自動的に付与されます。
特権サブシステムはアクセス制御サブシステムからは独立していますが、一部の操作にはアクセス制御が適用されることがあります。
ルート・ユーザーには、次の特権セットが自動的に割り当てられます。
特権 | 説明 |
---|---|
|
アクセス制御評価の回避をユーザーに許可します。 |
|
サーバーに定義されているアクセス制御命令の変更をユーザーに許可します。 |
|
サーバー構成への読取りアクセスをユーザーに許可します。 |
|
サーバー構成への書込みアクセスをユーザーに許可します。 |
|
LDIFインポート・タスクのリクエストをユーザーに許可します。 |
|
LDIFエクスポート・タスクのリクエストをユーザーに許可します。 |
|
バックエンドのバックアップ・タスクのリクエストをユーザーに許可します。 |
|
バックエンドのリストア・タスクのリクエストをユーザーに許可します。 |
|
サーバー停止タスクのリクエストをユーザーに許可します。 |
|
サーバー再起動タスクのリクエストをユーザーに許可します。 |
|
任意のクライアント接続の終了をユーザーに許可します。 |
|
任意のクライアント・リクエストの取消をユーザーに許可します。 |
|
索引なし検索操作のリクエストをユーザーに許可します。 |
|
ユーザー・パスワードのリセットをユーザーに許可します。 |
|
サーバー・スキーマの更新をユーザーに許可します。 |
|
ユーザーに割り当てられた特権セットの変更またはデフォルトのroot特権セットの変更をユーザーに許可します。 |
ルート・ユーザーには、次の特権を割り当てることができます。
特権 | 説明 |
---|---|
|
JMX属性値の読取りをユーザーに許可します。 |
|
JMX属性値の更新をユーザーに許可します。 |
|
JMX通知のサブスクライブをユーザーに許可します。 |
|
プロキシ設定された認可制御の使用または代替SASL認証IDのリクエストをユーザーに許可します。 |
dsconfig
によるルート・ユーザーの管理ルート・ユーザーの管理にはdsconfig
コマンドを使用します。詳細は、第17.1項「dsconfig
を使用したサーバー構成の管理」を参照してください。
デフォルトのルート・ユーザーはいくつかの特権を保有しています。これらの特権は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
ルート・ユーザー特権の最も容易な管理方法は、対話モードで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
ルート・ユーザーはcn=Root DNs,cn=config
エントリの下に格納されます。新しいルート・ユーザーを作成するには、LDIFでエントリを作成し、ldapmodify
コマンドを使用してそのエントリを追加します。cn=config
接尾辞は管理コネクタからのみ使用可能なため、SSLを使用して管理ポートからアクセスする必要がある点に注意してください。
ルート・ユーザーは、サーバーのデフォルトのルート・ユーザー特権セットを自動的に継承します。特定のルート・ユーザーの特権の追加または削除の詳細は、「ルート・ユーザーの特権を変更するには」を参照してください。
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
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
サーバーに定義されているすべてのルート・ユーザーを表示するには、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
セキュア・ファイルにパスワードを作成します。
ldappasswordmodify
を使用して、パスワードを変更します。
$ ldappasswordmodify -h localhost -p 4444 -D "cn=MyRootUser" -j pwd-file \ --useSSL --newPasswordFile rootuser_pwd.txt The LDAP password modify operation was successful
特定のルート・ユーザーに対して異なる特権セットを割り当てるには、そのルート・ユーザーのエントリに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
特権も付与されます。
サーバーにバインドされているクライアント・アプリケーションで操作属性を使用することによって、検索操作に対するサーバーのリソース制限を設定できます。使用可能なリソース制限は次のとおりです:
検索制限。単一の検索操作中に調べることができる最大エントリ数を指定します。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
(ゼロ)に設定します。
一般に、管理者はほとんどのユーザーよりも広範な権限を保有します。多数の管理者を作成し、それぞれの管理者に異なるアクセス制御やリソース制限を割り当てることができます。
import-ldif
を使用して、管理者データをインポートします。
この例で追加する管理者はuid=Admin.Lab
を持っています。
または、既存のユーザーを使用することもできます。
cn=Administrators
を使用して、管理者のグループを作成します。
管理者のグループには少数のユーザーしか含めないため、静的グループを作成できます。詳細は、「静的グループの定義」を参照してください。
dn: cn=Administrators,ou=People,dc=example,dc=com objectClass: top objectClass: groupOfNames member: uid=Admin.Lab,ou=People,dc=example,dc=com cn: Administrator
ldapmodify
コマンドを使用して、管理者の特権を設定します。
たとえば、次のコマンドでは、バックエンドでバックアップとリストアを実行する権限が管理者に付与されます。
ldapmodify -h localhost -p 1389 -j pwd-file -D "cn=directory manager" dn: uid=Admin.Lab,ou=People,dc=example,dc=com changetype: modify add: ds-privilege-name ds-privilege-name: backend-backup ds-privilege-name: backend-restore
必要に応じて、リソース制限を設定します。
手順は、ルート・ユーザーに対してリソース制限を設定する場合と同様です。「ルート・ユーザーのリソース制限の設定」を参照してください。
管理者またはユーザーにルート・ユーザーの特権を割り当てることができます。
管理者を作成するか、既存のユーザーを使用します。
「新しい管理者を作成するには」を参照してください。
ldapmodify
コマンドを使用して、特権を変更します。
たとえば次のコマンドでは、Admin.Lab
という名前の管理者の特権を変更して、ルート・ユーザーと同じデフォルトの特権を割り当てます。
ldapmodify -h localhost -p 1389 -j pwd-file -D "cn=directory manager" dn: uid=Admin.Lab,cn=Administrators,ou=People,dc=example,dc=com changetype: modify add: ds-privilege-name ds-privilege-name: bypass-acl ds-privilege-name: modify-acl ds-privilege-name: config-read ds-privilege-name: config-write ds-privilege-name: ldif-import ds-privilege-name: ldif-export ds-privilege-name: backend-backup ds-privilege-name: backend-restore ds-privilege-name: server-shutdown ds-privilege-name: server-restart ds-privilege-name: disconnect-client ds-privilege-name: cancel-request ds-privilege-name: password-reset ds-privilege-name: update-schema ds-privilege-name: privilege-change ds-privilege-name: unindexed-search
注意: アクセス制御に関する特権 |
グラフィカル・インストーラまたはdsreplication
コマンドを使用したレプリケーション・サーバーの設定時には、グローバル管理者のユーザー名とパスワードを設定するように求められます。グローバル管理者は、レプリケート環境内の管理サーバーの管理とメンテナンスの責任者です。
グローバル管理者はcn=Administrators,cn=admin data
サブツリー内に存在します。グローバル管理者のエントリを表示するには、次の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 sn: admin