第3章 ユーザー管理および認証
ユーザーのアクセス権限、リソース制限、ユーザーグループ、ユーザーロールを管理する方法を説明します。パスワードとアカウントのロックアウトポリシーを設定し、ユーザーグループのアクセスを拒否し、バインド識別名 (バインド DN) に応じてシステムリソースを制限できます。
3.1. Directory Server でのグループの使用 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server のグループにユーザーを追加できます。グループはディレクトリーエントリーをグループ化するメカニズムの 1 つであり、ユーザーアカウントの管理を簡素化します。
グループを使用すると、Directory Server は、このグループのメンバーであるユーザーの識別名 (DN) をグループエントリーのメンバーシップ属性に保存します。この特別な属性は、グループエントリーを作成するときに選択したオブジェクトクラスによって定義されます。グループタイプの詳細は、Directory Server のグループタイプ を参照してください。
グループはロールよりも高速です。ただし、グループがロールのメリットを享受するには、MemberOf プラグインを有効にする必要があります。デフォルトでは、MemberOf プラグインは、ユーザーがグループのメンバーである場合に、ユーザーエントリーに memberOf
属性を自動的に追加します。その結果、メンバーシップに関する情報は、グループとユーザーエントリーの両方に保存されます。MemberOf プラグインの詳細は、ユーザーエントリーのグループメンバーシップのリスト表示 を参照してください。
3.1.1. Directory Server のグループタイプ リンクのコピーリンクがクリップボードにコピーされました!
Directory Server では、static グループまたは dynamic グループにメンバーを追加できます。各グループタイプの定義の詳細は、Directory Server のグループについて を参照してください。グループオブジェクトクラスはメンバーシップ属性を定義し、グループにメンバーを追加するには、グループエントリーのこのメンバーシップ属性に値を追加する必要があります。
次の表に、グループオブジェクトクラスと対応するメンバーシップ属性を示します。
グループタイプ | オブジェクトクラス | メンバーシップ属性 |
---|---|---|
静的であること |
|
|
|
| |
動的 |
|
|
|
|
グループを作成するときに使用できるオブジェクトクラス:
-
groupOfNames
は単純なグループです。このグループには任意のエントリーを追加できます。member
属性によりグループメンバーシップが決まります。member
属性値は、グループのメンバーであるユーザーエントリーの識別名 (DN) です。 -
groupOfUniqueNames
は、ユーザー DN をメンバーとしてリストしますが、DN は一意である必要があります。このグループは、グループメンバーシップが自己参照されないようにします。uniqueMember
属性は、グループメンバーシップを決定します。 -
groupOfURLs
は、LDAP URL の一覧を使用して、メンバーシップの一覧をフィルタリングして作成します。あらゆる動的グループにはこのオブジェクトクラスが必要であり、groupOfNames
およびgroupOfUniqueNames
と組み合わせて使用できます。memberURL
属性はグループメンバーシップを決定します。 -
groupOfCertificates
は、LDAP フィルターを使用して証明書名を検索し、グループメンバーを識別します。このグループに特別なアクセスを付与できるため、グループベースのアクセス制御にはgroupOfCertificates
オブジェクトクラスを使用します。memberCertificateDescription
属性は、グループメンバーシップを決定します。
静的グループのオブジェクトクラスを動的オブジェクトクラスの 1 つと一緒に使用すると、グループは動的になります。
MemberOf プラグインは動的グループをサポートして いません。したがって、ユーザーエントリーが動的グループのフィルターと一致する場合、プラグインはユーザーエントリーに memberOf
属性は追加されません。
3.1.2. 静的グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインまたは Web コンソールを使用して静的グループを作成できます。
3.1.2.1. コマンドラインでの静的グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
dsidm
ユーティリティーを使用して、groupOfNames
オブジェクトクラスを持つ静的グループを作成します。ldapmodify
ユーティリティーを使用して、groupOfUniqueNames
オブジェクトクラスで静的グループを作成します。
以下の例では、ou=groups,dc=example,dc=com
エントリーに 2 つの静的グループを作成します。
前提条件
-
ou=groups,dc=example,dc=com
の親エントリーが存在する。
手順
groupOfNames
オブジェクトクラスを使用してcn=simple_group
グループを作成するには、次を実行します。dsidm <instance_name> -b "dc=example,dc=com" group create --cn "simple_group"
# dsidm <instance_name> -b "dc=example,dc=com" group create --cn "simple_group" Successfully created simple_group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsidm group create
コマンドは、ou=group
サブエントリーにグループのみを作成することに注意してください。別のエントリーにグループを作成する場合は、ldapmodify
ユーティリティーを使用します。groupOfUniqueNames
オブジェクトクラスを使用してcn=unique_members_group
グループを作成するには、次を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
groupOfNames
オブジェクトクラスのグループをリスト表示するには、dsidm group list
コマンドを使用します。dsidm --basedn "dc=example,dc=com" <instance_name> group list
# dsidm --basedn "dc=example,dc=com" <instance_name> group list simple_group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsidm uniquegroup list
コマンドを使用して、メンバーが一意のグループをリスト表示します。dsidm --basedn "dc=example,dc=com" <instance_name> uniquegroup list
# dsidm --basedn "dc=example,dc=com" <instance_name> uniquegroup list unique_members_group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.2.2. LDAP ブラウザーでの静的グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して静的グループを作成できます。次の例では ou=groups,dc=example,dc=com
の親エントリーに static_group
を作成します。
前提条件
-
ou=groups,dc=example,dc=com
の親エントリーが存在する。 - Web コンソールのインスタンスにログインするパーミッションがある。Web コンソールへのロギングの詳細は、Web コンソールを使用したディレクトリーサーバーへのロギング を参照してください。
手順
- LDAP Browser メニューに移動します。
-
Tree ビューまたは Table ビューを使用して、グループを作成する親エントリー
ou=groups,dc=example,dc=com
を展開します。 - Options メニュー (⫶) をクリックし、 を選択してウィザードウィンドウを開きます。
- Create a group を選択し、 をクリックします。
- グループタイプの Basic Group を選択し、 をクリックします。
グループ名とグループの説明を追加し、グループのメンバーシップ属性を選択します。
-
groupOfNames
オブジェクトクラスを持つグループの member。 -
groupOfUniqueNames
オブジェクトクラスを持つグループの uniquemember。
-
- をクリックします。
- オプション: グループにメンバーを追加し、 をクリックします。
- グループ情報を確認し、 をクリックし、 をクリックします。
検証
- 接尾辞ツリーで新しく作成されたグループエントリーを展開します。
3.1.3. 静的グループへのメンバーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールのコマンドラインを使用して、グループにメンバーを追加できます。
3.1.3.1. コマンドラインを使用した静的グループへのメンバーの追加 リンクのコピーリンクがクリップボードにコピーされました!
静的グループにメンバーを追加するには、ldapmodify
ユーティリティーを使用します。
前提条件
- グループエントリーが存在する。
- ユーザーエントリーが存在する。
手順
groupOfNames
オブジェクトクラスを持つ静的グループにメンバーを追加するには、グループエントリーのmember
属性に値としてユーザー識別名 (DN) を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
uid=jsmith
ユーザーをcn=simple_group
グループに追加します。groupOfUniqueNames
オブジェクトクラスを持つ静的グループにメンバーを追加するには、グループエントリーのuniqueMember
属性に値としてユーザー識別名 (DN) を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
uid=ajonson
ユーザーをcn=unique_members_group
グループに追加します。
検証
グループのメンバーをリスト表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.3.2. LDAP ブラウザーでの静的グループへのメンバーの追加 リンクのコピーリンクがクリップボードにコピーされました!
LDAP Browser を使用して、Web コンソールの静的グループにメンバーを追加できます。
前提条件
- グループエントリーが存在する。
- ユーザーエントリーが存在する。
- Web コンソールでインスタンスにログインしている。Web コンソールへのロギングの詳細は、Web コンソールを使用した Directory Server へのロギング を参照してください。
手順
- LDAP Browser メニューに移動します。
-
Tree または Table ビューを使用して、メンバーを追加するグループエントリーを展開します。たとえば、
cn=unique_members_group,ou=groups,dc=example,dc=com
にメンバーを追加します。 - Options メニュー (⫶) をクリックし、 を選択してウィザードウィンドウを開きます。ウィンドウに現在のメンバーリストが表示されます。
- Find New Members タブを選択します。
-
検索バーにメンバーの
uid
またはcn
属性値の一部を入力し、 を押します。Available Members フィールドには、グループに追加できるユーザー識別名 (DN) が表示されます。 - メンバー DN を選択し、矢印 (>) をクリックして Chosen Members フィールドに移動します。
- ボタンをクリックします。
検証
-
cn=unique_members_group,ou=groups,dc=example,dc=com
グループエントリーを展開し、エントリーの詳細で追加されたユーザーを見つけます。
3.1.4. コマンドラインで動的グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は、コマンドラインのみを使用して動的グループを作成することをサポートしています。ldapmodify
ユーティリティーを使用して、groupOfURLs
および groupOfCertificates
オブジェクトクラスを持つ動的グループを作成します。
以下の例では、ou=groups,dc=example,dc=com
エントリーに 2 つの動的グループを作成します。
前提条件
-
ou=groups,dc=example,dc=com
の親エントリーが存在する。
手順
groupOfURLs
オブジェクトクラスを使用してcn=example_dynamic_group
グループを作成するには、次のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
person
オブジェクトクラスと、共通名 (cn
) の値の右側のsen
サブ文字列を使用してメンバーをフィルター処理する動的グループを作成します。groupOfCertificates
オブジェクトクラスでcn=example_certificates_group
グループを作成するには、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、証明書のサブジェクト DN に
ou=people,l=USA,dc=example,dc=com
が含まれるメンバーをフィルタリングする動的グループを作成します。
検証
groupOfURLs
オブジェクトクラスを使用して新しく作成されたグループを検索します。ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfURLs" 1.1
# ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfURLs" 1.1 dn: cn=example_dynamic_group,ou=groups,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow groupOfCertificates
オブジェクトクラスで新しく作成されたグループを検索します。ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfCertificates" 1.1
# ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfCertificates" 1.1 dn: cn=example_certificates_group,ou=groups,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5. ユーザーエントリーにおけるグループメンバーシップのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
グループは、メンバーシップ属性を使用して、このグループに属するエントリーを定義します。グループを閲覧してメンバーを見つけるのは簡単です。たとえば、groupOfNames
オブジェクトクラスを持つ静的グループは、メンバーの識別名 (DN) を member
属性の値として保存します。ただし、個々のユーザーがどのグループに属しているかをすぐに確認することはできません。グループの場合、ロールとは異なり、ユーザーエントリーにはユーザーのメンバーシップを示すものは何も含まれません。
この問題を解決するには、MemberOf プラグインを使用できます。MemberOf プラグインは、グループエントリー内のメンバーシップ属性を分析し、グループを指すユーザーエントリーに memberOf
属性を自動的に書き込みます。デフォルトでは、プラグインはグループ内の member
属性をチェックしますが、複数の属性を使用してさまざまなグループタイプをサポートできます。
グループのメンバーを追加または削除すると、プラグインはユーザーエントリーの memberOf
属性を更新します。MemberOf プラグインを使用すると、特定のユーザーエントリーに対して簡単な検索を実行し、そのユーザーがメンバーになっているすべてのグループを見つけることができます。MemberOf プラグインは、すべてのグループの直接および間接でメンバーになっているメンバーシップを表示します。
MemberOf プラグインは、static グループのメンバーシップ属性のみを管理します。
3.1.5.1. MemberOf プラグインを使用する際の考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインを使用する場合は、以下を考慮してください。
レプリケーショントポロジーの MemberOf プラグイン
レプリケーショントポロジーでは、MemberOf プラグインを 2 つの方法で管理できます。
トポロジー内のすべてのサプライヤーサーバーとコンシューマーサーバーで MemberOf プラグインを有効にします。この場合、すべてのレプリカ合意でユーザーエントリーの
memberOf
属性をレプリケーションから除外する必要があります。属性の除外の詳細は、部分レプリケーション内の属性の管理 を参照してください。
トポロジー内のすべてのサプライヤーサーバーでのみ MemberOf プラグインを有効にします。これを実行するには、以下を行います。
レプリカ合意ですべての書き込みが有効なサプライヤーに対する
memberOf
属性のレプリケーションを無効にする必要があります。属性の除外の詳細は、部分レプリケーション内の属性の管理 を参照してください。
-
レプリカ合意内のすべてのコンシューマーレプリカに対して、
memberOf
属性のレプリケーションを有効にする必要があります。 - コンシューマーレプリカの MemberOf プラグインを無効にする必要があります。
分散データベースを備えた MemberOf プラグイン
ディレクトリーデータベースの設定 で説明されているように、ディレクトリーのサブツリーを個別のデータベースに保存できます。デフォルトでは、MemberOf プラグインはグループと同じデータベース内に保存されているユーザーエントリーのみを更新します。すべてのデータベースでユーザーを更新するには、
memberOfAllBackends
パラメーターをon
に設定する必要があります。memberOfAllBackends
パラメーターの設定の詳細は、Web コンソールを使用した各サーバーでの MemberOf プラグインの設定 を参照してください。
3.1.5.2. MemberOf プラグインに必要なオブジェクトクラス リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、MemberOf プラグインは、memberOf
属性を提供するために、nsMemberOf
オブジェクトクラスをユーザーエントリーに追加します。プラグインを正しく動作させるには、nsMemberOf
オブジェクトクラスで十分です。
または、inetUser
、inetAdmin
、inetOrgPerson
オブジェクトクラスを含むユーザーエントリーを作成することもできます。これらのオブジェクトクラスは memberOf
属性をサポートします。
ネストされたグループを設定するには、グループで extensibleObject
オブジェクトクラスを使用する必要があります。
ディレクトリーエントリーに必要な属性をサポートするオブジェクトクラスが含まれていない場合、操作は次のエラーで失敗します。
LDAP: error code 65 - Object Class Violation
LDAP: error code 65 - Object Class Violation
3.1.5.3. MemberOf プラグイン構文 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインを設定するときは、次の 2 つの主要な属性を設定します。
-
memberOfGroupAttr
.グループエントリーからポーリングするメンバーシップ属性を定義します。memberOfGroupAttr
属性は多値です。したがって、プラグインは複数のタイプのグループを管理できます。デフォルトでは、プラグインはmember
属性をポーリングします。 -
memberOfAttr
.メンバーのユーザーエントリーで作成および管理するメンバーシップ属性を定義します。デフォルトでは、プラグインはユーザーエントリーにmemberOf
属性を追加します。
さらに、プラグイン構文は、プラグインパス、MemberOf プラグインを識別する関数、プラグインの状態、およびその他の設定パラメーターを提供します。
次の例は、デフォルトの MemberOf プラグインエントリー設定を示しています。
例のパラメーターと設定できるその他のパラメーターの詳細は、「設定とスキーマのリファレンス」ドキュメントの MemberOf プラグイン のセクションを参照してください。
3.1.5.4. MemberOf プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインまたは Web コンソールを使用して、MemberOf プラグインを有効にできます。
3.1.5.4.1. コマンドラインを使用した MemberOf プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインを有効にするには、dsconf
ユーティリティーを使用します。
手順
プラグインを有効にします。
dsconf <instance_name> plugin memberof enable
# dsconf <instance_name> plugin memberof enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
プラグイン設定の詳細を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5.4.2. Web コンソールを使用した MemberOf プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して MemberOf プラグインを有効にできます。
前提条件
- Web コンソールでインスタンスにログインしている。Web コンソールへのロギングの詳細は、Web コンソールを使用した Directory Server へのロギング を参照してください。
手順
- Plugins メニューに移動します。
- プラグインの一覧から MemberOf プラグインを選択します。
-
ステータスを
ON
に変更し、プラグインを有効にします。 - インスタンスを再起動します。インスタンスを再起動する手順は、Web コンソールを使用した Directory Server インスタンスの起動と停止 を参照してください。
3.1.5.5. 各サーバーでの MemberOf プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインの設定を複製しない場合は、コマンドラインまたは Web コンソールを使用して、各サーバーでプラグインを手動で設定します。
3.1.5.5.1. コマンドラインを使用した各サーバーでの MemberOf プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、MemberOf プラグインはグループエントリーから member
のメンバーシップ属性を読み取り、memberOf
属性をユーザーエントリーに追加します。ただし、グループから他のメンバーシップ属性を読み取ったり、ユーザーエントリーに別の属性を追加したり、ネストされたグループをスキップしたり、すべてのデータベースやその他の設定で作業したりするようにプラグインを設定できます。
たとえば、MemberOf プラグインで次の操作を実行するとします。
-
グループエントリーから
uniqueMember
属性を読み取り、メンバーシップを識別します。 - ネストされたグループをスキップします。
- すべてのデータベース内のユーザーエントリーを検索します。
前提条件
- MemberOf プラグインを有効化した。詳細は、MemberOf プラグインの有効化 を参照してください。
手順
オプション: MemberOf プラグイン設定を表示して、プラグインが現在グループエントリーから読み取っているメンバーシップ属性を確認します。
dsconf <instance_name> plugin memberof show
# dsconf <instance_name> plugin memberof show ... memberofgroupattr: member ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在、プラグインはグループエントリーから
member
属性を読み取ってメンバーを取得します。プラグイン設定の
memberOfGroupAttr
パラメーターにuniqueMember
属性を値として設定します。dsconf <instance_name> plugin memberof set --groupattr uniqueMember
# dsconf <instance_name> plugin memberof set --groupattr uniqueMember
Copy to Clipboard Copied! Toggle word wrap Toggle overflow memberOfGroupAttr
パラメーターは複数の値を持ち、それらすべてを--groupattr
パラメーターに渡すことで複数の値を設定できます。以下に例を示します。dsconf <instance_name> plugin memberof set --groupattr member uniqueMember
# dsconf <instance_name> plugin memberof set --groupattr member uniqueMember
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 分散データベースを使用する環境では、ローカルデータベースだけでなくすべてのデータベース内のユーザーエントリーを検索するようにプラグインを設定します。
dsconf <instance_name> plugin memberof set --allbackends on
# dsconf <instance_name> plugin memberof set --allbackends on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
memberOfAllBackends
パラメーターを設定します。ネストされたグループをスキップするようにプラグインを設定します。
dsconf <instance_name> plugin memberof set --skipnested on
# dsconf <instance_name> plugin memberof set --skipnested on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは
memberOfSkipNested
パラメーターを設定します。オプション: デフォルトでは、ユーザーエントリーに
memberOf
属性を許可するオブジェクトクラスがない場合、プラグインはnsMemberOf
オブジェクトクラスをユーザーエントリーに追加します。nsMemberOf
の代わりにinetUser
オブジェクトクラスをユーザーエントリーに追加するようにプラグインを設定するには、次を実行します。dsconf <instance_name> plugin memberof set --autoaddoc inetUser
# dsconf <instance_name> plugin memberof set --autoaddoc inetUser
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
memberOfAutoAddOC
パラメーターを設定します。インスタンスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
MemberOf プラグイン設定を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5.5.2. Web コンソールを使用した各サーバーでの MemberOf プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、MemberOf プラグインはグループエントリーから member
のメンバーシップ属性を読み取り、memberOf
属性をユーザーエントリーに追加します。ただし、Web コンソールを使用して、グループから他のメンバーシップ属性を読み取ったり、ネストされたグループをスキップしたり、すべてのデータベースやその他の設定を処理したりするようにプラグインを設定できます。
たとえば、MemberOf プラグインで次の操作を実行するとします。
-
グループエントリーから
member
属性とuniqueMember
属性を読み取り、メンバーシップを識別します。 -
プラグインのスコープを
dc=example,dc=com
に設定します。 - ネストされたグループをスキップします。
- すべてのデータベース内のユーザーエントリーを検索します。
前提条件
- Web コンソールでインスタンスにログインしている。Web コンソールへのロギングの詳細は、Web コンソールを使用した Directory Server へのロギング を参照してください。
- MemberOf プラグインを有効化した。詳細は、MemberOf プラグインの有効化 を参照してください。
手順
- LDAP Browser メニューに移動します。
- プラグインリストから MemberOf プラグインを選択します。
-
Group Attribute フィールドに
uniqueMember
属性を追加します。 プラグインのスコープを
dc=example,dc=com
に設定します。-
dc=example,dc=com
を Subtree Scope フィールドに入力します。 ドロップダウンリストで Create "dc=example,dc=com" をクリックします。
-
オプション: 除外するサブツリーを設定します。たとえば、プラグインを
ou=private,dc=example,dc=com
サブツリーで動作させない場合は以下を実行します。-
Exclude Subtree フィールドに
ou=private,dc=example,dc=com
と入力します。 - ドロップダウンリストで Create "ou=private,dc=example,dc=com" をクリックします。
-
Exclude Subtree フィールドに
- All Backends をチェックして、ローカルデータベースだけでなくすべてのデータベース内のユーザーエントリーを検索するようにプラグインを設定します。
- ネストされたグループをスキップするようにプラグインを設定するには、Skip Nested をオンにします。
- をクリックします。
3.1.5.6. サーバー間での MemberOf プラグイン設定の共有 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、各サーバーは MemberOf プラグインの独自の設定を保存します。プラグインの共有設定により、各サーバーでプラグインを手動で設定しなくても、同じ設定を使用できます。Directory Server は、共有設定を cn=config
接尾辞の外部に保存し、複製します。
たとえば、プラグインの共有設定を cn=shared_MemberOf_config,dc=example,dc=com
エントリーに保存するとします。
共有設定を有効にすると、プラグインは cn=MemberOf Plugin,cn=plugins,cn=config
プラグインエントリーに設定されたすべてのパラメーターを無視し、共有設定エントリーの設定のみを使用します。
前提条件
- レプリケーショントポロジー内のすべてのサーバーで MemberOf プラグインが有効化されている。詳細は、MemberOf プラグインの有効化 を参照してください。
手順
サーバーで共有設定エントリーを有効にします。
dsconf <instance_name> plugin memberof config-entry add "cn=shared_MemberOf_config,dc=example,dc=com" --attr memberOf --groupattr member
# dsconf <instance_name> plugin memberof config-entry add "cn=shared_MemberOf_config,dc=example,dc=com" --attr memberOf --groupattr member Successfully created the cn=shared_MemberOf_config,dc=example,dc=com MemberOf attribute nsslapd-pluginConfigArea (config-entry) was set in the main plugin config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
nsslapd-pluginConfigArea
属性値をcn=shared_MemberOf_config,dc=example,dc=com
に設定します。インスタンスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 共有設定を使用する必要があるレプリケーショントポロジー内の他のサーバーで共有設定を有効にします。
共有設定を保存する設定エントリーの識別名 (DN) を設定します。
dsconf -D "cn=Directory Manager" ldap://server2.example.com plugin memberof set --config-entry cn=shared_MemberOf_config,dc=example,dc=com
# dsconf -D "cn=Directory Manager" ldap://server2.example.com plugin memberof set --config-entry cn=shared_MemberOf_config,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
MemberOf プラグインが共有設定を使用していることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 共有設定を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5.7. MemberOf プラグインのスコープの設定 リンクのコピーリンクがクリップボードにコピーされました!
複数のバックエンドまたは複数のネストされた接尾辞を設定した場合は、memberOfEntryScope
および memberOfEntryScopeExcludeSubtree
パラメーターを使用して、MemberOf
プラグインが機能する接尾辞を設定できます。
ユーザーをグループに追加すると、MemberOf プラグインは、ユーザーとグループの両方がプラグインのスコープ内にある場合にのみ、memberOf
属性をグループに追加します。
たとえば、次の手順では、MemberOf プラグインが dc=example,dc=com
内のすべてのエントリーで機能し、ou=private,dc=example,dc=com
内のエントリーを除外するように設定します。
前提条件
- レプリケーショントポロジー内のすべてのサーバーで MemberOf プラグインが有効化されている。詳細は、MemberOf プラグインの有効化 を参照してください。
手順
MemberOf プラグインのスコープ値を
dc=example,dc=com
に設定します。dsconf <instance_name> plugin memberof set --scope "dc=example,dc=com"
# dsconf <instance_name> plugin memberof set --scope "dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ou=private,dc=example,dc=com
のエントリーを除外します。dsconf <instance_name> plugin memberof set --exclude "ou=private,dc=example,com"
# dsconf <instance_name> plugin memberof set --exclude "ou=private,dc=example,com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --scope
DN パラメーターを使用してユーザーエントリーをスコープ外に移動した場合:-
MemberOf プラグインは、グループエントリー内の
member
などのメンバーシップ属性を更新して、ユーザー DN 値を削除します。 MemberOf プラグインは、ユーザーエントリー内の
memberOf
属性を更新して、グループ DN 値を削除します。注記--exclude
パラメーターで設定された値は、--scope
で設定された値よりも優先されます。両方のパラメーターで設定したスコープが重複する場合、MemberOf プラグインは、非オーバーラッピングディレクトリーエントリーでのみ機能します。
-
MemberOf プラグインは、グループエントリー内の
MemberOf プラグインのスコープ設定の詳細は、Web コンソールを使用した各サーバーでの MemberOf プラグインの設定 を参照してください。
3.1.5.8. fixup タスクを使用したユーザーエントリーの memberOf 属性値の更新 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインは、グループエントリーの設定に基づいて、グループメンバーエントリー内の memberOf
属性を自動的に管理します。ただし、サーバープラグインが管理する memberOf
設定とユーザーエントリーで定義されている実際のメンバーシップとの間の不整合を回避するために、次の状況では fixup
タスクを実行する必要があります。
- MemberOf プラグインを有効にする前に、グループにグループメンバーを追加した。
-
ユーザーエントリーの
memberOf
属性を手動で編集した。 -
memberOf
属性がすでにあるサーバーに、新しいユーザーエントリーをインポートまたは複製した。
fixup
タスクはローカルでのみ実行できることに注意してください。レプリケーション環境では、Directory Server は更新されたエントリーをレプリケートした後、他のサーバー上のエントリーの memberOf
属性を更新します。
前提条件
- レプリケーショントポロジー内のすべてのサーバーで MemberOf プラグインが有効化されている。詳細は、MemberOf プラグインの有効化 を参照してください。
手順
たとえば、
dc=example,dc=com
エントリーとサブエントリーのmemberOf
値を更新するには、次を実行します。dsconf <instance_name> plugin memberof fixup "dc=example,dc=com"
# dsconf <instance_name> plugin memberof fixup "dc=example,dc=com" Attempting to add task entry... Successfully added task entry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、
fixup
タスクは、inetUser
、inetAdmin
、またはnsMemberOf
オブジェクトクラスを含むすべてのエントリーのmemberOf
値を更新します。他のオブジェクトクラスを含むエントリーに対しても
fixup
タスクを実行する場合は、-f
フィルターオプションを使用します。dsconf <instance_name> plugin memberof fixup -f "(|(objectclass=inetuser)(objectclass=inetadmin)(objectclass=nsmemberof)(objectclass=nsmemberof)(objectclass=inetOrgPerson))" "dc=example,dc=com"
# dsconf <instance_name> plugin memberof fixup -f "(|(objectclass=inetuser)(objectclass=inetadmin)(objectclass=nsmemberof)(objectclass=nsmemberof)(objectclass=inetOrgPerson))" "dc=example,dc=com"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この
fixup
タスクは、inetUser
、inetAdmin
、nsMemberOf
、またはinetOrgPerson
オブジェクトクラスを含むすべてのエントリーのmemberOf
値を更新します。