ユーザー管理および認証
ユーザー、グループ、ロール、および認証関連の設定の管理
概要
Red Hat Directory Server に関するフィードバックの提供 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat のドキュメントおよび製品に関するご意見をお待ちしております。ドキュメントの改善点があればお知らせください。改善点を報告する場合は、以下のように行います。
Jira を通じて Red Hat Directory Server ドキュメントに関するフィードバックを送信する場合 (アカウントが必要):
- Red Hat Issue Tracker にアクセスしてください。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
Jira を通じて Red Hat Directory Server 製品に関するフィードバックを送信する場合 (アカウントが必要):
- Red Hat Issue Tracker にアクセスしてください。
- Create Issue ページで、 をクリックします。
- Summary フィールドに入力します。
- Component フィールドでコンポーネントを選択します。
Description フィールドに以下の内容を入力します。
- 選択したコンポーネントのバージョン番号。
- 問題を再現するための手順、または改善のための提案。
- Create をクリックします。
第1章 Directory Server でのグループの使用 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server のグループにユーザーを追加できます。グループはディレクトリーエントリーをグループ化するメカニズムの 1 つであり、ユーザーアカウントの管理を簡素化します。
グループを使用すると、Directory Server は、このグループのメンバーであるユーザーの識別名 (DN) をグループエントリーのメンバーシップ属性に保存します。この特別な属性は、グループエントリーを作成するときに選択したオブジェクトクラスによって定義されます。グループタイプの詳細は、Directory Server のグループタイプ を参照してください。
グループはロールよりも高速です。ただし、グループがロールのメリットを享受するには、MemberOf プラグインを有効にする必要があります。デフォルトでは、MemberOf プラグインは、ユーザーがグループのメンバーである場合に、ユーザーエントリーに memberOf 属性を自動的に追加します。その結果、メンバーシップに関する情報は、グループとユーザーエントリーの両方に保存されます。MemberOf プラグインの詳細は、ユーザーエントリーのグループメンバーシップのリスト表示 を参照してください。
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 属性は追加されません。
1.2. 静的グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインまたは Web コンソールを使用して静的グループを作成できます。
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 -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" group create --cn "simple_group" Successfully created simple_group
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" group create --cn "simple_group" Successfully created simple_groupCopy 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 simple_group
# dsidm --basedn "dc=example,dc=com" instance_name group list simple_groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow dsidm uniquegroup listコマンドを使用して、メンバーが一意のグループをリスト表示します。dsidm --basedn "dc=example,dc=com" instance_name uniquegroup list unique_members_group
# dsidm --basedn "dc=example,dc=com" instance_name uniquegroup list unique_members_groupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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。
-
- をクリックします。
- オプション: グループにメンバーを追加し、 をクリックします。
- グループ情報を確認し、 をクリックし、 をクリックします。
検証
- 接尾辞ツリーで新しく作成されたグループエントリーを展開します。
1.3. 静的グループへのメンバーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールのコマンドラインを使用して、グループにメンバーを追加できます。
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
1.3.2. LDAP ブラウザーでの静的グループへのメンバーの追加 リンクのコピーリンクがクリップボードにコピーされました!
LDAP Browser を使用して、Web コンソールの静的グループにメンバーを追加できます。
前提条件
- グループエントリーが存在する。
- ユーザーエントリーが存在する。
- Web コンソールでインスタンスにログインしている。Web コンソールへのロギングの詳細は、Web コンソールを使用したディレクトリーサーバーへのロギング を参照してください。
手順
- 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グループエントリーを展開し、エントリーの詳細で追加されたユーザーを見つけます。
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 dn: cn=example_dynamic_group,ou=groups,dc=example,dc=com
# 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=comCopy 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 dn: cn=example_certificates_group,ou=groups,dc=example,dc=com
# 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=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. ユーザーエントリーにおけるグループメンバーシップのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
グループは、メンバーシップ属性を使用して、このグループに属するエントリーを定義します。グループを閲覧してメンバーを見つけるのは簡単です。たとえば、groupOfNames オブジェクトクラスを持つ静的グループは、メンバーの識別名 (DN) を member 属性の値として保存します。ただし、個々のユーザーがどのグループに属しているかをすぐに確認することはできません。グループの場合、ロールとは異なり、ユーザーエントリーにはユーザーのメンバーシップを示すものは何も含まれません。
この問題を解決するには、MemberOf プラグインを使用できます。MemberOf プラグインは、グループエントリー内のメンバーシップ属性を分析し、グループを指すユーザーエントリーに memberOf 属性を自動的に書き込みます。デフォルトでは、プラグインはグループ内の member 属性をチェックしますが、複数の属性を使用してさまざまなグループタイプをサポートできます。
グループのメンバーを追加または削除すると、プラグインはユーザーエントリーの memberOf 属性を更新します。MemberOf プラグインを使用すると、特定のユーザーエントリーに対して簡単な検索を実行し、そのユーザーがメンバーになっているすべてのグループを見つけることができます。MemberOf プラグインは、すべてのグループの直接および間接でメンバーになっているメンバーシップを表示します。
MemberOf プラグインは、static グループのメンバーシップ属性のみを管理します。
1.5.1. MemberOf プラグインを使用する際の考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインを使用する場合は、以下を考慮してください。
レプリケーショントポロジーの MemberOf プラグイン
レプリケーショントポロジーでは、MemberOf プラグインを 2 つの方法で管理できます。
-
トポロジー内のすべてのサプライヤーサーバーとコンシューマーサーバーで MemberOf プラグインを有効にします。この場合、すべてのレプリカ合意でユーザーエントリーの
memberOf属性をレプリケーションから除外する必要があります。 トポロジー内のすべてのサプライヤーサーバーでのみ MemberOf プラグインを有効にします。これを実行するには、以下を行います。
-
レプリカ合意ですべての書き込みが有効なサプライヤーに対する
memberOf属性のレプリケーションを無効にする必要があります。 -
レプリカ合意内のすべてのコンシューマーレプリカに対して、
memberOf属性のレプリケーションを有効にする必要があります。 - コンシューマーレプリカの MemberOf プラグインを無効にする必要があります。
-
レプリカ合意ですべての書き込みが有効なサプライヤーに対する
-
トポロジー内のすべてのサプライヤーサーバーとコンシューマーサーバーで MemberOf プラグインを有効にします。この場合、すべてのレプリカ合意でユーザーエントリーの
分散データベースを備えた MemberOf プラグイン
データベースの作成および維持 で説明されているように、ディレクトリーのサブツリーを別のデータベースに保存できます。デフォルトでは、MemberOf プラグインはグループと同じデータベース内に保存されているユーザーエントリーのみを更新します。すべてのデータベースでユーザーを更新するには、
memberOfAllBackendsパラメーターをonに設定する必要があります。memberOfAllBackendsパラメーターの設定の詳細は、Web コンソールを使用した各サーバーで MemberOf プラグインの設定 を参照してください。
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
1.5.3. MemberOf プラグイン構文 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインを設定するときは、次の 2 つの主要な属性を設定します。
-
memberOfGroupAttr.グループエントリーからポーリングするメンバーシップ属性を定義します。memberOfGroupAttr属性は多値です。したがって、プラグインは複数のタイプのグループを管理できます。デフォルトでは、プラグインはmember属性をポーリングします。 -
memberOfAttr.メンバーのユーザーエントリーで作成および管理するメンバーシップ属性を定義します。デフォルトでは、プラグインはユーザーエントリーにmemberOf属性を追加します。
さらに、プラグイン構文は、プラグインパス、MemberOf プラグインを識別する関数、プラグインの状態、およびその他の設定パラメーターを提供します。
次の例は、デフォルトの MemberOf プラグインエントリー設定を示しています。
例のパラメーターと設定できるその他のパラメーターの詳細は、「設定とスキーマのリファレンス」ドキュメントの MemberOf プラグイン のセクションを参照してください。
1.5.4. MemberOf プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインまたは Web コンソールを使用して、MemberOf プラグインを有効にできます。
1.5.4.1. コマンドラインを使用した MemberOf プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインを有効にするには、dsconf ユーティリティーを使用します。
手順
プラグインを有効にします。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof enable
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンスを再起動します。
dsctl instance_name restart
# dsctl instance_name restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
プラグイン設定の詳細を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.4.2. Web コンソールを使用した MemberOf プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して MemberOf プラグインを有効にできます。
前提条件
- Web コンソールでインスタンスにログインしている。Web コンソールへのロギングの詳細は、Web コンソールを使用したディレクトリーサーバーへのロギング を参照してください。
手順
- Plugins メニューに移動します。
- プラグインの一覧から MemberOf プラグインを選択します。
-
ステータスを
ONに変更し、プラグインを有効にします。 - インスタンスを再起動します。インスタンスを再起動する手順は、Web コンソールを使用した Directory Server インスタンスの起動と停止 を参照してください。
1.5.5. 各サーバーでの MemberOf プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインの設定を複製しない場合は、コマンドラインまたは Web コンソールを使用して、各サーバーでプラグインを手動で設定します。
1.5.5.1. コマンドラインを使用した各サーバーでの MemberOf プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、MemberOf プラグインはグループエントリーから member のメンバーシップ属性を読み取り、memberOf 属性をユーザーエントリーに追加します。ただし、グループから他のメンバーシップ属性を読み取ったり、ユーザーエントリーに別の属性を追加したり、ネストされたグループをスキップしたり、すべてのデータベースやその他の設定で作業したりするようにプラグインを設定できます。
たとえば、MemberOf プラグインで次の操作を実行するとします。
-
グループエントリーから
uniqueMember属性を読み取り、メンバーシップを識別します。 - ネストされたグループをスキップします。
- すべてのデータベース内のユーザーエントリーを検索します。
前提条件
- MemberOf プラグインを有効化した。詳細は、MemberOf プラグインの有効化 を参照してください。
手順
オプション: MemberOf プラグイン設定を表示して、プラグインが現在グループエントリーから読み取っているメンバーシップ属性を確認します。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof show ... memberofgroupattr: member ...
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof show ... memberofgroupattr: member ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在、プラグインはグループエントリーから
member属性を読み取ってメンバーを取得します。プラグイン設定の
memberOfGroupAttrパラメーターにuniqueMember属性を値として設定します。dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --groupattr uniqueMember
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --groupattr uniqueMemberCopy to Clipboard Copied! Toggle word wrap Toggle overflow memberOfGroupAttrパラメーターは複数の値を持ち、それらすべてを--groupattrパラメーターに渡すことで複数の値を設定できます。以下に例を示します。dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --groupattr member uniqueMember
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --groupattr member uniqueMemberCopy to Clipboard Copied! Toggle word wrap Toggle overflow 分散データベースを使用する環境では、ローカルデータベースだけでなくすべてのデータベース内のユーザーエントリーを検索するようにプラグインを設定します。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --allbackends on
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --allbackends onCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
memberOfAllBackendsパラメーターを設定します。ネストされたグループをスキップするようにプラグインを設定します。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --skipnested on
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --skipnested onCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは
memberOfSkipNestedパラメーターを設定します。オプション: デフォルトでは、ユーザーエントリーに
memberOf属性を許可するオブジェクトクラスがない場合、プラグインはnsMemberOfオブジェクトクラスをユーザーエントリーに追加します。nsMemberOfの代わりにinetUserオブジェクトクラスをユーザーエントリーに追加するようにプラグインを設定するには、次を実行します。dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --autoaddoc inetUser
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --autoaddoc inetUserCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
memberOfAutoAddOCパラメーターを設定します。インスタンスを再起動します。
dsctl instance_name restart
# dsctl instance_name restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
MemberOf プラグイン設定を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.5.2. Web コンソールを使用した各サーバーでの MemberOf プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、MemberOf プラグインはグループエントリーから member のメンバーシップ属性を読み取り、memberOf 属性をユーザーエントリーに追加します。ただし、Web コンソールを使用して、グループから他のメンバーシップ属性を読み取ったり、ネストされたグループをスキップしたり、すべてのデータベースやその他の設定を処理したりするようにプラグインを設定できます。
たとえば、MemberOf プラグインで次の操作を実行するとします。
-
グループエントリーから
member属性とuniqueMember属性を読み取り、メンバーシップを識別します。 -
プラグインのスコープを
dc=example,dc=comに設定します。 - ネストされたグループをスキップします。
- すべてのデータベース内のユーザーエントリーを検索します。
前提条件
- Web コンソールでインスタンスにログインしている。Web コンソールへのロギングの詳細は、Web コンソールを使用したディレクトリーサーバーへのロギング を参照してください。
- 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 をオンにします。
- をクリックします。
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 -D "cn=Directory Manager" ldap://server.example.com 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
# dsconf -D "cn=Directory Manager" ldap://server.example.com 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 configCopy 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 restartCopy 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=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンスを再起動します。
dsctl instance_name restart
# dsctl instance_name restartCopy 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
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 -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --scope "dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --scope "dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ou=private,dc=example,dc=comのエントリーを除外します。dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --exclude "ou=private,dc=example,com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof set --exclude "ou=private,dc=example,com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow --scopeDN パラメーターを使用してユーザーエントリーをスコープ外に移動した場合:-
MemberOf プラグインは、グループエントリー内の
memberなどのメンバーシップ属性を更新して、ユーザー DN 値を削除します。 MemberOf プラグインは、ユーザーエントリー内の
memberOf属性を更新して、グループ DN 値を削除します。注記--excludeパラメーターで設定された値は、--scopeで設定された値よりも優先されます。両方のパラメーターで設定したスコープが重複する場合、MemberOf プラグインは、非オーバーラッピングディレクトリーエントリーでのみ機能します。
-
MemberOf プラグインは、グループエントリー内の
MemberOf プラグインのスコープ設定の詳細は、Web コンソールを使用した各サーバーでの MemberOf プラグインの設定 を参照してください。
1.5.8. fixup タスクを使用したユーザーエントリーの memberOf 属性値の更新 リンクのコピーリンクがクリップボードにコピーされました!
MemberOf プラグインは、グループエントリーの設定に基づいて、グループメンバーエントリー内の memberOf 属性を自動的に管理します。ただし、サーバープラグインが管理する memberOf 設定とユーザーエントリーで定義されている実際のメンバーシップとの間の不整合を回避するために、次の状況では fixup タスクを実行する必要があります。
- MemberOf プラグインを有効にする前に、グループにグループメンバーを追加した。
-
ユーザーエントリーの
memberOf属性を手動で編集した。 -
memberOf属性がすでにあるサーバーに、新しいユーザーエントリーをインポートまたは複製した。
fixup タスクはローカルでのみ実行できることに注意してください。レプリケーション環境では、Directory Server は更新されたエントリーをレプリケートした後、他のサーバー上のエントリーの memberOf 属性を更新します。
前提条件
- レプリケーショントポロジー内のすべてのサーバーで MemberOf プラグインが有効化されている。詳細は、MemberOf プラグインの有効化 を参照してください。
手順
たとえば、
dc=example,dc=comエントリーとサブエントリーのmemberOf値を更新するには、次を実行します。dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof fixup "dc=example,dc=com" Attempting to add task entry... Successfully added task entry
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof fixup "dc=example,dc=com" Attempting to add task entry... Successfully added task entryCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、
fixupタスクは、inetUser、inetAdmin、またはnsMemberOfオブジェクトクラスを含むすべてのエントリーのmemberOf値を更新します。他のオブジェクトクラスを含むエントリーに対しても
fixupタスクを実行する場合は、-fフィルターオプションを使用します。dsconf -D "cn=Directory Manager" ldap://server.example.com plugin memberof fixup -f "(|(objectclass=inetuser)(objectclass=inetadmin)(objectclass=nsmemberof)(objectclass=nsmemberof)(objectclass=inetOrgPerson))" "dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com 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値を更新します。
1.6. 指定されたグループへのエントリーの自動追加 リンクのコピーリンクがクリップボードにコピーされました!
グループを使用すると、パスワードポリシー、アクセス制御、およびその他のルールをすべてグループメンバーシップに基づいて設定できるため、Directory Server はディレクトリー全体に整合性のあるポリシーを確実に適用できます。エントリーの作成時または変更時に新しいエントリーをグループに自動的に割り当てると、Directory Server はこれらのエントリーに適切なポリシーと機能を適用します。
Directory Server は動的グループフィルターに基づいてグループ内の一致するエントリーを含めるため、動的グループはメンバーを自動的に割り当てる 1 つの方法です。Directory Server のポリシーおよび設定を適用するには、これで十分です。ただし、LDAP アプリケーションとクライアントでは通常、必要な操作を実行するために、グループメンバーの静的かつ明示的なリストが必要です。静的グループのすべてのメンバーをこれらのグループに手動で追加する必要があります。
Auto Membership プラグインを使用すると、静的グループでも動的グループのようにメンバーを検索できます。Auto Membership プラグインを有効にすると、Directory Server は一致するエントリーを自動的に検索して識別し、これらのエントリーをメンバーとして静的グループに明示的に追加します。
Auto Membership プラグインは、ディレクトリーに保存されている任意のタイプのエントリー (ユーザー、マシン、ネットワークデバイス、顧客データ、その他のエントリー) をターゲットにすることができます。
Auto Membership は、定義された基準に基づいて既存のグループに新しいメンバーを追加します。新しいエントリー用のグループは作成されません。特定タイプの新規エントリーの作成時に対応するグループエントリーを作成するには、Managed Entries プラグインを使用します。
1.6.1. Auto Membership プラグインの構文の概要 リンクのコピーリンクがクリップボードにコピーされました!
Auto Membership プラグインは、cn=Auto Membership Plugin,cn=plugins,cn=config コンテナーエントリーです。次の設定エントリーを作成して、グループの割り当てを定義します。
- Auto Membership の定義エントリー
-
定義エントリーは、プラグインのメインの設定エントリーです。定義エントリーには、エントリーを識別するための LDAP 検索ベースとフィルター、およびエントリーを追加するデフォルトグループが含まれています。定義エントリーは、
cn=Auto Membership Plugin,cn=plugins,cn=configの子エントリーです。 - Auto Membership の正規表現エントリー
- 正規表現エントリーは、定義エントリーのオプションの子です。これらのエントリーは、新規または変更済みのエントリーをグループに割り当てるための追加条件を定義します。
1.6.1.1. Auto Membership の定義エントリー リンクのコピーリンクがクリップボードにコピーされました!
Auto Membership の定義エントリーは、autoMemberDefinition オブジェクトクラスを持つ cn=Auto Membership Plugin,cn=plugins,cn=config の子です。各プラグイン設定には個別の定義エントリーが必要であり、そこで次の基本設定を定義します。
-
必須の
autoMemberDefinitionオブジェクトクラス。エントリーをプラグインの定義エントリーとして識別します。 -
autoMemberDefaultGroup。メンバーエントリーを追加するデフォルトグループを設定します。 -
autoMemberFilter。エントリーを識別するための LDAP フィルターを設定します。 -
autoMemberGroupingAttr。グループエントリー内の属性 (memberなど) と属性値 (dnなど) で構成されるメンバーエントリーの形式を設定します。 -
autoMemberScope。エントリーを検索するディレクトリーサブツリーを設定します。
Auto Membership プラグインのその他の設定属性について、詳しくは RHDS 13 の設定およびスキーマリファレンス ドキュメントの Auto Membership プラグイン属性の説明 を参照してください。
定義エントリーは、一致するメンバーエントリーとそのメンバーのグループを識別します。たとえば、次の cn=hostgroups,cn=Auto Membership Plugin,cn=plugins,cn=config 定義エントリーは、objectclass=ipHost オブジェクトクラスを持つすべてのホストエントリーを cn=servers グループに割り当てます。
1.6.1.2. Auto Membership の正規表現エントリー リンクのコピーリンクがクリップボードにコピーされました!
モジュールの概要を説明する簡単な入門的な段落を書きます。
コンセプトモジュールの内容は、製品を理解して使用するために必要なユーザーの説明と説明を提供します。
- 関連するプロシージャモジュールとアセンブリのアンチフレーズを確認し、ユーザーを説明する概念を見つけます。
- ユーザーに表示されるものだけを説明します。概念が興味深いものであっても、ユーザーに見えない場合は説明が不要である可能性があります。
- アクション アイテムは含めないでください。アクション項目はプロシージャモジュールに属します。ただし、概念や参照には、簡単なアクションがあり、モジュールのコンテキストに大きく依存し、どのプロシージャモジュールにもあたっても、推奨されるアクションが含まれる場合があります。このような場合は、コンセプトまたは参照の見出しが、性質ではなく、無駄なフレーズのままであることを確認してください。
1.6.2. コマンドラインを使用して Auto Membership プラグインを設定する リンクのコピーリンクがクリップボードにコピーされました!
新しいエントリーまたは変更されたエントリーをグループに自動的に割り当てるには、cn=Auto Membership Plugin,cn=plugins,cn=config の下に Auto Membership プラグインの定義エントリーを作成する必要があります。新しいエントリーまたは変更されたエントリーに追加の条件を適用するには、定義エントリーに正規表現エントリーを追加する必要があります。
たとえば、Auto Membership プラグインで次のタスクを実行するとします。
-
新しいホストエントリーまたは変更されたホストエントリーを
cn=serversグループに追加します。 -
Web サーバーをフィルタリングし、別の
cn=webserversグループに追加します。 -
メールサーバーをフィルタリングし、別の
cn=mailserversグループに追加します。
前提条件
- root 権限がある。
- ディレクトリー内にグループエントリーが存在する。プラグインは新しいエントリーのグループを作成しないことに注意してください。
手順
オプション: Auto Membership プラグインを有効にします。
dsconf <instance_name> plugin automember enable
# dsconf <instance_name> plugin automember enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインは、デフォルトで有効になっています。
ホストエントリー、デフォルトの
cn=serversグループ、およびメンバーエントリー形式を識別するための LDAP フィルターを使用して、Auto Membership 定義エントリーを作成します。dsconf <instance_name> plugin automember definition "Hostgroups definition" add --default-group "cn=servers,cn=hostgroups,ou=groups,dc=example,dc=com" --scope "dc=example,dc=com" --filter "objectclass=ipHost" --grouping-attr "member:dn"
# dsconf <instance_name> plugin automember definition "Hostgroups definition" add --default-group "cn=servers,cn=hostgroups,ou=groups,dc=example,dc=com" --scope "dc=example,dc=com" --filter "objectclass=ipHost" --grouping-attr "member:dn"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Successfully created the cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=config
Successfully created the cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=configCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: Web サーバーとメールサーバーをフィルタリングするための正規表現エントリーを追加します。
Web サーバーを他のホストから識別し、別の
cn=webserversグループに追加するには、次のように入力します。dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "webservers" add --target-group "cn=webservers,cn=hostgroups,dc=example,dc=com" --inclusive "fqdn=^www\.web[0-9]+\.example\.com" --exclusive "fqdn=^web13\.example\.com"
# dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "webservers" add --target-group "cn=webservers,cn=hostgroups,dc=example,dc=com" --inclusive "fqdn=^www\.web[0-9]+\.example\.com" --exclusive "fqdn=^web13\.example\.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Successfully created the cn=webservers,cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=config
Successfully created the cn=webservers,cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=configCopy to Clipboard Copied! Toggle word wrap Toggle overflow この条件により、Directory Server は、
www.web1.example.comなどの^www\.web[0-9]+\.example\.com表現に一致する完全修飾ドメイン名を持つすべてのホストマシンをcn=webserversグループに追加します。ただし、Directory Server は、www.web13.example.comホストとobjectclass=ipHostフィルターに一致するその他のホストエントリーをデフォルトのcn=servers,cn=Host Groups,ou=groups,dc=example,dc=comグループに追加します。Directory Server は最初に除外条件を評価することに注意してください。
残りのホスト内のメールサーバーを識別し、それらを別の
cn=mailserversグループに追加するには、次のように入力します。dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "mailservers" add --target-group "cn=mailservers,cn=hostgroups,dc=example,dc=com" --inclusive "fqdn=^www\.mail[0-9]+\.example\.com"
# dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "mailservers" add --target-group "cn=mailservers,cn=hostgroups,dc=example,dc=com" --inclusive "fqdn=^www\.mail[0-9]+\.example\.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Successfully created the cn=mailservers,cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=config
Successfully created the cn=mailservers,cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
オプション: エントリーにグループエントリーを追加するか、エントリーを編集してエントリーを別のグループに移動すると、Directory Server はデフォルトでグループメンバーシップを更新します。プラグインがエントリーの変更を無視するようにする場合は、定義エントリー設定で
autoMemberProcessModifyOps属性をoffに設定します。ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -xCopy to Clipboard Copied! Toggle word wrap Toggle overflow dn: cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=config changetype: modify add: autoMemberProcessModifyOps autoMemberProcessModifyOps: off
dn: cn=Hostgroups definition,cn=Auto Membership Plugin,cn=plugins,cn=config changetype: modify add: autoMemberProcessModifyOps autoMemberProcessModifyOps: offCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Auto Membership の定義エントリー設定を表示します。
dsconf <instance_name> plugin automember definition "Hostgroups definition" show
# dsconf <instance_name> plugin automember definition "Hostgroups definition" showCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow Auto Membership の正規表現エントリーを表示します。
dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "webservers" show
# dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "webservers" showCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "mailservers" show
# dsconf <instace_name> plugin automember definition "Hostgroups definition" regex "mailservers" showCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.3. Web コンソールを使用して Auto Membership プラグインを設定する リンクのコピーリンクがクリップボードにコピーされました!
新しいエントリーを自動的にグループに割り当てるには、プラグインの Auto Membership 定義エントリーを作成します。新しいエントリーまたは変更されたエントリーに追加の条件を適用するには、定義エントリーに正規表現エントリーを追加する必要があります。
たとえば、Auto Membership プラグインで次のタスクを実行するとします。
-
ipHostオブジェクトクラスを持つ新しいホストエントリーまたは変更されたホストエントリーをcn=serversグループに追加します。 -
Web サーバーをフィルタリングし、別の
cn=webserversグループに追加します。同時に、一部の Web サーバーはデフォルトのcn=serversグループに移動する必要があります。
前提条件
- root 権限がある。
- Web コンソールにログインしている。詳細は、Web コンソールを使用した Directory Server へのログイン を参照してください。
- ディレクトリー内にグループエントリーが存在する。プラグインは新しいエントリーのグループを作成しないことに注意してください。
手順
- Directory Server インスタンスを選択します。
- Plugins メニューを開き、プラグインのリストから Auto Membership プラグインを選択します。
- Add Definition ボタンをクリックし、新しいプラグイン設定を追加します。
Add Auto Membership Plugin Definition Entry ポップアップウィンドウで、以下を設定します。
-
Definition Name として
Hostgroups definition -
Subtree scope として
dc=example,dc=com -
Entry Filter として
objectclass=ipHost -
Grouping Attribute として
member:dn Default Group として
cn=servers,cn=hostgroups,ou=groups,dc=example,dc=comプラグイン定義エントリー設定属性の詳細は、Auto Membership definition エントリー を参照してください。
-
Definition Name として
オプション: をクリックして、Web サーバーをフィルタリングするための正規表現エントリーを追加します。Manage Auto Membership Plugin Regex Entry ポップアップウィンドウで、以下を設定します。
-
Regex Name として
webservers -
Exclusive Regex として
fqdn=^web13\.example\.com -
Inclusive Regex として
fqdn=^www\.web[0-9]+\.example\.com Target Group として
cn=webservers,cn=hostgroups,dc=example,dc=com正規表現設定属性の詳細は、Auto Membership 正規表現エントリー を参照してください。
-
Regex Name として
- をクリックして、正規表現の入力設定を保存します。
- オプション: 他の正規表現エントリーを追加します。
をクリックして、正規表現エントリーを含めた Auto Membership プラグインの設定を保存します。
設定を保存すると、Directory Server は
cn=Auto Membership Plugin,cn=plugins,cn=configの下に定義エントリーとその子の正規表現エントリーを作成します。ホストエントリーがfqdn=^www\.web[0-9]+\.example\.comフィルターに一致する場合、別のcn=webservers,cn=hostgroups,dc=example,dc=comに送られます。Web サーバーエントリーがfqdn=^web13\.example\.comフィルターに一致する場合、そのエントリーはデフォルトのcn=servers,cn=hostgroups,ou=groups,dc=example,dc=comグループと、objectclass=ipHostフィルターに一致するその他のホストエントリーに送信されます。
1.6.4. Auto Membership プラグインのルールの例 リンクのコピーリンクがクリップボードにコピーされました!
ほとんどの場合、Auto Membership ルールはユーザーとマシンに適用されます。ディレクトリーに設定できる Auto Membership ルールの最も一般的な例について説明します。
- IP アドレスに基づく異なるホストグループ
- 従業員の ID に基づく異なるユーザーグループ
- Windows ユーザーグループ
IP アドレス別のホストグループ
次のプラグイン設定の例では、ホストを 3 つのグループに分割します。
- Web サーバー
- メールサーバー
- その他のサーバー
まず、Auto Membership ルールのスコープとターゲットを定義する Auto Membership 定義エントリーを作成します。Directory Server は、スコープを使用してすべてのホストエントリーを検索します。
次に、Auto Membership 定義エントリーの子となる正規表現エントリーを作成します。
プラグインは子の正規表現エントリーをイテレートし、ホストエントリーが包含正規表現と一致する場合は、Directory Server がこの正規表現エントリーで定義されたホストグループにエントリーを追加します。ホストエントリーがどのグループとも一致しない場合、Directory Server はそれを親定義エントリーの autoMemberDefaultGroup に設定されているデフォルトグループに追加します。
従業員の ID に基づく異なるユーザーグループ
Auto Membership プラグインはカスタム属性で動作します。たとえば、人事アプリケーションでは、カスタム employeeType 属性の従業員タイプに基づいてユーザーを作成し、それを参照することができます。
この目的のために、2 つの正規表現フィルターを使用してフルタイム従業員と臨時従業員を分類する automembership ルールを作成します。ただし、次の例では、真の正規表現ではなく明示的な値を使用しています。その他の属性については、従業員 ID 番号の範囲に基づくフィルター設定などの正規表現を使用します。
Windows ユーザーグループ
デフォルトでは、Directory Server は posixAccount 属性を持つ新しいユーザーを作成します。ただし、ユーザーアカウントが Windows ドメインから Directory Server に同期されると、Windows ユーザーアカウントには代わりに ntUser 属性が含まれます。
Windows ユーザーのみを対象とする automembership ルールを作成できます。
1.6.5. 修正タスクを実行して Auto Membership プラグインのルールを再適用する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ユーザーエントリーを編集してユーザーを別のグループに移動する場合でも、Directory Server は Auto Membership プラグインを呼び出して操作を追加および変更します。ただし、cn=<definition_entry_name>,cn=Auto Membership Plugin,cn=plugins,cn=config 設定エントリーで autoMemberProcessModifyOps を off に設定してこのような動作をオフにした場合は、ディレクトリーに新しいエントリーを追加した後、または既存のエントリーを変更した後に、メンバーシップを手動で更新する必要があります。そのためには、修正タスクを実行します。
前提条件
- root 権限がある。
- Auto Membership プラグインを有効にした。
-
autoMemberProcessModifyOpsプラグイン属性がoffに設定されている。
手順
修正タスクエントリーを作成します。
dsconf <instance_name> plugin automember fixup "dc=example,dc=com" -f "objectclass=inetorgperson" -s sub --timeout 5
# dsconf <instance_name> plugin automember fixup "dc=example,dc=com" -f "objectclass=inetorgperson" -s sub --timeout 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドは、
dc=example,dc=comの下の people エントリーの修正タスクを5秒のタイムアウトで開始します。その他のオプションの詳細については、
dsconf <instance_name> plugin automember fixup -hコマンドを実行してください。
検証
すべての Auto Membership 修正タスクのリストを表示します。
dsconf <instance_name> plugin automember fixup-status
# dsconf <instance_name> plugin automember fixup-statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.6. Auto Membership 定義をテストして、グループが適切に割り当てられているか確認する方法 リンクのコピーリンクがクリップボードにコピーされました!
Auto Member プラグインの各インスタンスは、定義エントリーと正規表現エントリーなどのように、関連性はあるがそれぞれ別のエントリーのセットです。Directory Server がユーザーグループをどの程度正確にマッピングするかを判断することは難しい場合があります。異なるユーザーのサブセットを対象とする複数のルールを設定すると、これはさらに困難になります。
2 つのドライランタスクを実行して、さまざまな Auto Membership プラグイン定義が設計どおりにグループを適切に割り当てているか確認できます。
-
既存エントリーを使用する
cn=automember export updatesタスク -
新規ユーザーでインポート LDIF ファイルを使用する
cn=automember map updatesタスク
1.6.6.1. 既存エントリーで Auto Membership 定義をテストする リンクのコピーリンクがクリップボードにコピーされました!
Auto Membership 定義エントリーを設定した後、Directory Server がユーザーを適切にグループに割り当てるかを確認するには、既存エントリーに対して cn=automember export updates タスクを実行します。そうすることで、既存ユーザーに対して設定されたルールをテストし、実際のデプロイメントがどのように実行されるかを確認できます。
前提条件
- root 権限がある。
- Auto Membership プラグインを有効にした。
手順
cn=automember export updatesタスクのインスタンスを作成します。ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -xCopy to Clipboard Copied! Toggle word wrap Toggle overflow 検索するベース DN、検索フィルター、検索範囲、提案されたエントリーの更新を記録するエクスポート LDIF ファイルなどのタスクパラメーターを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Directory Server は、
dc=example,dc=comサブツリーの下にあるすべてのユーザーエントリー (uid=*) に対して Auto Membership プラグイン設定を実行し、その結果を/tmp/automember-updates.ldifファイルに書き込みます。
1.6.6.2. インポート LDIF を使用した Auto Membership 定義のテスト リンクのコピーリンクがクリップボードにコピーされました!
Auto Membership 定義エントリーを設定した後、Directory Server がユーザーをグループに適切に割り当てるか確認するには、LDIF ファイルからの新規エントリーまたはテストエントリーに対して cn=automember map updates タスクを実行します。そうすることで、新しいルールを実際の新規または既存のユーザーエントリーに適用する前にテストできます。
前提条件
- root 権限がある。
- Auto Membership プラグインを有効にした。
手順
cn=automember map updatesタスクのインスタンスを作成します。ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
# ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -xCopy to Clipboard Copied! Toggle word wrap Toggle overflow 検索するベース DN、検索フィルター、検索範囲、提案されたエントリーの更新を記録するエクスポート LDIF ファイルなどのタスクパラメーターを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Directory Server は
/tmp/entries.ldifファイルのユーザーエントリーに対して Auto Membership プラグイン設定を実行し、その結果を/tmp/automember-updates.ldifファイルに書き込みます。
1.6.7. Auto Membership プラグインタスクのキャンセル リンクのコピーリンクがクリップボードにコピーされました!
Directory Server の設定が複雑な場合 (大規模なグループ、複雑なルール、他のプラグインとの対話など)、Auto Membership プラグインタスクが原因でサーバーの CPU 使用率が高くなる可能性があります。パフォーマンスの問題を防ぐために、Auto Membership プラグインタスクをキャンセルできます。
前提条件
- root 権限がある。
- Auto Membership プラグインを有効にした。
手順
Auto Membership プラグインタスクをキャンセルするには、以下を入力します。
dsconf <instance_name> plugin automember abort-fixup
# dsconf <instance_name> plugin automember abort-fixupCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
キャンセルされたタスクを含む、すべての Auto Membership 修正タスクのリストを表示するには、以下を入力します。
dsconf <instance_name> plugin automember fixup-status
# dsconf <instance_name> plugin automember fixup-statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第2章 Directory Server でのロールの使用 リンクのコピーリンクがクリップボードにコピーされました!
ロールを使用して Directory Server エントリーをグループ化できます。ロールは、静的グループと動的グループの両方として動作します。ロールはグループよりも柔軟に実装できるため、簡単に使用できます。たとえば、アプリケーションはグループを選択し、複数のグループのメンバーリストを参照するのではなく、エントリー自体をクエリーしてエントリーが属するロールのリストを取得できます。
コマンドライン または Web コンソール を使用してロールを管理できます。
2.1. Directory Server のロール リンクのコピーリンクがクリップボードにコピーされました!
ロールは、ハイブリッドグループと同様に、静的グループと動的グループの両方として動作します。
- グループを使用すると、Directory Server はエントリーをグループエントリーにメンバーとして追加します。
- ロールを使用すると、Directory Server はロール属性をエントリーに追加し、この属性を使用してロールエントリー内のメンバーを自動的に識別します。
ロールメンバーは、ロールを持つエントリーです。ロールのメンバーは、ロールタイプに応じて明示的にまたは動的に指定できます。Directory Server は、以下のタイプのロールをサポートします。
管理ロール
管理ロールにはメンバーの明示的なリストがあります。管理ロールを使用すると、静的グループで実行するのと同じタスクを実行できます。
フィルター設定ロール
動的グループによるフィルタリングと同様に、フィルター設定ロールを使用してロールメンバーをフィルタリングできます。Directory Server は、エントリーがロールで定義された特定の属性を持っているかどうかに応じて、フィルター設定ロールにエントリーを割り当てます。
ネストされたロール
ネストされたロールは、管理ロールとフィルター設定ロールを含むことができます。
ロールを作成するときは、ユーザーがロールに対して自分自身を追加または削除できるかどうかを決定します。詳細は、「Directory Server でのロールのセキュアな使用」 を参照してください。
サーバーがクライアントアプリケーションに対して機能するため、Directory Server ではロールの評価がグループを評価するよりもリソース集約されます。ロールを使用すると、クライアントアプリケーションは nsRole 属性を検索してロールのメンバーシップを確認することができます。nsRole 属性は、エントリーがどのロールに属しているかを識別する計算属性です。Directory Server は nsRole 属性を保存しません。クライアントアプリケーションの観点からは、メンバーシップを確認する方法は統一されており、サーバー側で実行されます。
ロールの使用に関する考慮事項は、ディレクトリーサービスの計画と設計 ドキュメントの「グループとロールのいずれを使用するかの決定」を参照してください。
2.2. Directory Server でのロールのセキュアな使用 リンクのコピーリンクがクリップボードにコピーされました!
新しいロールを作成するときは、ユーザーがロールに対して自身を簡単に追加または削除できるかどうかを考慮してください。たとえば、Mountain Biking グループロールのユーザーが、自身を簡単に同ロールに追加または削除できるようにすることは可能です。ただし、Marketing ロールが割り当てられているユーザーに、同ロールへの自身の追加または削除を許可することはできません。
潜在的なセキュリティーリスクの 1 つは、ロールを非アクティブ化してユーザーアカウントを非アクティブ化することです。非アクティブなロールには、接尾辞に特別なアクセス制御手順 (ACI) が定義されます。管理者によって、ユーザーがロールに自身を自由に追加および削除することが許可されている場合、これらのユーザーは非アクティブなロールから自身を削除して、アカウントのロックを解除できます。
たとえば、管理ロールがユーザーに割り当てられるとします。Directory Server がアカウントの非アクティブ化を使用してこの管理ロールをロックすると、Directory Server はそのユーザーの nsAccountLock 属性を true として計算するため、ユーザーはサーバーにバインドできなくなります。ただし、ユーザーがすでに Directory Server にバインドされており、管理ロールによってロックされている場合、制限的な ACI が指定されていなければ、ユーザーはエントリーから nsRoleDN 属性を削除して自身のロックを解除できます。
ユーザーが nsRoleDN 属性を削除できないようにするには、ロールのタイプに応じて次の ACI を使用します。
管理ロール。管理ロールのメンバーであるエントリーの場合は、次の ACI を使用します。
aci: (targetattr="nsRoleDN") (targattrfilters= add=nsRoleDN:(!(nsRoleDN=cn=AdministratorRole,dc=example,dc=com)), del=nsRoleDN:(!(nsRoleDN=cn=nsManagedDisabledRole,dc=example,dc=com))) (version3.0;acl "allow mod of nsRoleDN by self but not to critical values"; allow(write) userdn=ldap:///self;)
aci: (targetattr="nsRoleDN") (targattrfilters= add=nsRoleDN:(!(nsRoleDN=cn=AdministratorRole,dc=example,dc=com)), del=nsRoleDN:(!(nsRoleDN=cn=nsManagedDisabledRole,dc=example,dc=com))) (version3.0;acl "allow mod of nsRoleDN by self but not to critical values"; allow(write) userdn=ldap:///self;)Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
フィルター設定ロール。フィルターの一部である属性 (
nsRoleFilter) を保護します。フィルター設定ロールが使用する属性の追加、削除、または変更をユーザーに許可しないでください。Directory Server がフィルター属性の値を計算する場合は、このフィルター属性値を変更できるすべての属性を保護する必要があります。 - ネストされたロール。ネストされたロールは、フィルター設定ロールと管理ロールを含むことができます。したがって、ネストされたロールに含まれるロールの属性ごとに、ACI での変更操作を制限する必要があります。
2.3. コマンドラインを使用した Directory Server でのロールの管理 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して、ロールを表示、作成、および削除できます。
2.3.1. Directory Server での管理ロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
管理ロールは、明示的に列挙されたメンバーのリストを持つロールです。ldapmodify ユーティリティーを使用して、管理ロールを作成できます。次の例では、マーケティングチームの管理ロールを作成します。
前提条件
-
ou=people,dc=example,dc=com親エントリーが Directory Server に存在する。 -
cn=Bob Jones,ou=people,dc=example,dc=comユーザーエントリーが Directory Server に存在する。
手順
-aオプションを指定したldapmodifyコマンドを使用して、cn=Marketing管理ロールエントリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理ロールエントリーには、次のオブジェクトクラスが含まれている必要があります。
-
LDAPsubentry -
nsRoleDefinition -
nsSimpleRoleDefinition -
nsManagedRoleDefinition
-
このユーザーエントリーに
nsRoleDN属性を追加して、cn=Marketing,ou=people,dc=example,dc=com管理ロールをcn=Bob Jones,ou=people,dc=example,dc=comユーザーエントリーに割り当てます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: インデックスのない検索を避けるために、
userRootデータベースのnsRoleDN属性の 等価 インデックスを設定します。dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr nsroleDN --reindex userRoot
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr nsroleDN --reindex userRootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
現在
cn=Marketing,ou=people,dc=example,dc=com管理ロールに属しているユーザーエントリーをリスト表示します。ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=Marketing,ou=people,dc=example,dc=com)" dn dn: cn=Bob Jones,ou=people,dc=example,dc=com dn: cn=Tom Devis,ou=people,dc=example,dc=com
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=Marketing,ou=people,dc=example,dc=com)" dn dn: cn=Bob Jones,ou=people,dc=example,dc=com dn: cn=Tom Devis,ou=people,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.2. Directory Server でのフィルター設定ロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は、エントリーにロールで定義された特定の属性がある場合、フィルター設定ロールにエントリーを割り当てます。ロール定義では、nsRoleFilter LDAP フィルターを指定します。フィルターに一致するエントリーは、ロールのメンバーです。
ldapmodify ユーティリティーを使用して、フィルター設定ロールを作成できます。次の例では、営業部門のマネージャー用のフィルター設定ロールを作成します。
前提条件
-
ou=people,dc=example,dc=com親エントリーが Directory Server に存在する。
手順
-aオプションを指定したldapmodifyコマンドを使用して、cn=SalesManagerFilterのフィルター設定ロールエントリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cn=SalesManagerFilterのフィルター設定ロールエントリーには、ロール用のo=sales managerフィルターがあります。sales managersの値を持つo属性を有するすべてのユーザーエントリーは、フィルター設定ロールのメンバーです。フィルター設定ロールのメンバーになったユーザーエントリーの例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow フィルター設定ロールエントリーには、次のオブジェクトクラスが必要です。
-
LDAPsubentry -
nsRoleDefinition -
nsComplexRoleDefinition -
nsFilteredRoleDefinition
-
オプション: インデックスのない検索を避けるために、
nsRoleFilterロールフィルターで使用する属性の 等価 インデックスを設定します。この例では、ロールはo=sales managerをフィルターとして使用します。したがって、o属性にインデックスを付けて、検索パフォーマンスを向上します。dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr o --reindex userRoot
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend index add --index-type eq --attr o --reindex userRootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
現在
cn=SalesManagerFilter,ou=people,dc=example,dc=comフィルター設定ロールに属しているユーザーエントリーをリスト表示します。ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=SalesManagerFilter,ou=people,dc=example,dc=com)" dn dn: cn=Jess Mor,ou=people,dc=example,dc=com dn: cn=Pat Smith,ou=people,dc=example,dc=com
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=SalesManagerFilter,ou=people,dc=example,dc=com)" dn dn: cn=Jess Mor,ou=people,dc=example,dc=com dn: cn=Pat Smith,ou=people,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.3. Directory Server でのネストされたロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
ネストされたロールは、管理ロールとフィルター設定ロールを含むことができます。ネストされたロールエントリーには、ネストするロールを識別するための nsRoleDN 属性が必要です。
ldapmodify ユーティリティーを使用して、ネストされたロールを作成できます。次の例では、Directory Server での管理ロールの作成 と Directory Server でのフィルター設定ロールの作成 で作成した管理ロールとフィルター設定ロールを含むネストされたロールを作成します。
前提条件
-
ou=people,dc=example,dc=com親エントリーが Directory Server に存在する。
手順
-aオプションを指定したldapmodifyコマンドを使用して、cn=SalesManagerFilterフィルター設定ロールとcn=Marketing管理ロールを含むcn=MarketingSalesのネストされたロールエントリーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、ロールに
description属性を含めることができます。ネストされたロールエントリーには、次のオブジェクトクラスが必要です。
-
LDAPsubentry -
nsRoleDefinition -
nsComplexRoleDefinition -
nsNestedRoleDefinition
-
検証
cn=MarketingSalesのネストされたロールに現在属しているユーザーエントリーをリスト表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.4. エントリーのロールの表示 リンクのコピーリンクがクリップボードにコピーされました!
エントリーのロールを表示するには、nsRole 仮想属性を明示的に指定して ldapsearch コマンドを使用します。
前提条件
- ロールエントリーが存在する。
-
uid=user_nameユーザーエントリーにロールを割り当てている。
手順
指定した
nsRole仮想属性を持つuid=user_nameエントリーを検索します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
uid=user_nameユーザーがメンバーとなっているすべてのロールを取得します。
2.3.5. Directory Server でのロールの削除 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server のロールを削除するには、ldapmodify コマンドを使用します。
以下に、cn=Marketing 管理ロールを Directory Server から削除する例を示します。
手順
cn=Marketing管理ロールエントリーを削除するには、次のように入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ロールを削除すると、Directory Server はロールエントリーのみを削除し、各ロールメンバーの
nsRoleDN属性は削除しません。各ロールメンバーのnsRoleDN属性を削除するには、参照整合性プラグインを有効にし、nsRoleDN属性を管理するようにこのプラグインを設定します。参照整合性プラグインの詳細は、参照整合性を使用したエントリー間の関係の維持 を参照してください。
2.4. Web コンソールを使用した Directory Server のロールの管理 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの LDAP browser を使用して、ロールを表示、作成、削除できます。
2.4.1. LDAP ブラウザーでのロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールで LDAP Browser ウィザードを使用して、Red Hat Directory Server エントリーのロールを作成できます。
前提条件
- Web コンソールへのアクセス。
- 親エントリーが Directory Server に存在する。
手順
-
Web コンソールにログインし、
Red Hat Directory Serverをクリックします。 -
Web コンソールが
Red Hat Directory Serverインターフェイスをロードしたら、LDAP Browserを開きます。 -
LDAP エントリーを選択し、
Optionsメニューを開きます。 -
ドロップダウンメニューから
Newを選択し、Create a new roleをクリックします。 - ウィザードの手順に従い、各手順を完了したら ボタンをクリックします。
-
ロールを作成するには、
Create Roleの手順でロールの設定を確認し、 ボタンをクリックします。 ボタンをクリックしてロールの設定を変更するか、 ボタンをクリックしてロールの作成をキャンセルできます。 - ウィザードウィンドウを閉じるには、 ボタンをクリックします。
検証
- LDAP エントリーを展開し、新しいロールがエントリーパラメーターに表示されることを確認します。
2.4.2. LDAP ブラウザーでのロールの削除 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールで LDAP Browser を使用して、Red Hat Directory Server エントリーからロールを削除できます。
前提条件
- Web コンソールへのアクセス。
- 親エントリーが Directory Server に存在する。
手順
-
Web コンソールにログインし、
Red Hat Directory Serverをクリックします。 -
Web コンソールが
Red Hat Directory Serverインターフェイスをロードしたら、LDAP browserをクリックします。 - LDAP エントリーを展開し、削除するロールを選択します。
-
Optionsメニューを開き、Deleteを選択します。 -
削除するロールに関するデータを確認し、
Deletionの手順に到達するまで ボタンをクリックします。 -
スイッチを
Yes, I’m sureの位置に切り替え、 ボタンをクリックします。 - ウィザードウィンドウを閉じるには、 ボタンをクリックします。
検証
- LDAP エントリーを展開し、ロールがエントリーのパラメーターに含まれていないことを確認します。
2.4.3. LDAP ブラウザーでのロールの変更 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールで LDAP Browser を使用して、Red Hat Directory Server エントリーのロールパラメーターを変更できます。
前提条件
- Web コンソールへのアクセス。
- 親エントリーが Red Hat Directory Server に存在する。
手順
-
Web コンソールにログインし、
Red Hat Directory Serverをクリックします。 -
Web コンソールが
Red Hat Directory Serverインターフェイスをロードしたら、LDAP browserをクリックします。 - LDAP エントリーを展開し、変更するロールを選択します。
-
Optionsメニューをクリックし、Editを選択してロールのパラメーターを変更するか、Renameを選択してロールの名前を変更します。 -
ウィザードウィンドウで必要なパラメーターを変更し、
LDIF Statementsの手順が表示されるまで各手順を完了して をクリックします。 - 更新されたパラメーターを確認し、 または をクリックします。
- ウィザードウィンドウを閉じるには、 ボタンをクリックします。
検証
- LDAP エントリーを展開し、更新されたパラメーターがロールにリストされていることを確認します。
第3章 Directory Manager のパスワードの変更 リンクのコピーリンクがクリップボードにコピーされました!
Directory Manager は特権データベース管理者であり、Linux オペレーティングシステムの root ユーザーに相当します。Directory Manager のエントリーと、対応するパスワードは、インスタンスのインストール時に設定されます。管理者は、Directory Manager のパスワードを変更して別のパスワードを使用できます。
3.1. コマンドラインを使用した Directory Manager のパスワードの変更 リンクのコピーリンクがクリップボードにコピーされました!
ディレクトリーマネージャーの新しいパスワードは、dsconf コマンドラインユーティリティーを使用するか、nsslapd-rootpw パラメーターを手動で指定することで設定できます。
必ず暗号化された接続を使用してパスワードを設定してください。暗号化されていない接続を使用すると、パスワードがネットワークに公開される可能性があります。サーバーが暗号化された接続に対応していない場合は、Web コンソールを使用して Directory Manager のパスワードを更新してください。
手順
次のいずれかのオプションを使用して、Directory Manager のパスワードを設定します。
パスワードを自動的に暗号化するには:
dsconf -D "cn=Directory Manager" ldaps://server.example.com config replace nsslapd-rootpw=password
# dsconf -D "cn=Directory Manager" ldaps://server.example.com config replace nsslapd-rootpw=passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow Directory Server は、
nsslapd-rootpwパラメーターで設定したプレーンテキスト値を自動的に暗号化します。警告パスワードに中括弧
{}を使用しないでください。Directory Server は、パスワードを{password-storage-scheme}hashed_password形式で保存します。サーバーは、中括弧内の文字をパスワードストレージスキームとして解釈します。文字列が無効なストレージスキームである場合、またはパスワードが正しくハッシュ化されない場合、Directory Manager はサーバーに接続できません。パスワードを手動で暗号化するには:
新しいパスワードハッシュを生成します。以下に例を示します。
pwdhash -D /etc/dirsrv/slapd-instance_name password {PBKDF2_SHA256}AAAgAMwPYIhEkQozTagoX6RGG5E7d6/6oOJ8TVty...# pwdhash -D /etc/dirsrv/slapd-instance_name password {PBKDF2_SHA256}AAAgAMwPYIhEkQozTagoX6RGG5E7d6/6oOJ8TVty...Copy to Clipboard Copied! Toggle word wrap Toggle overflow パスワードは、Directory Server インスタンス設定の
nsslapd-rootpwstoragescheme属性で設定されたパスワードストレージスキームを使用して暗号化されます。STARTTLS 接続を使用して、
nsslapd-rootpw属性を、前のステップで表示された値に設定します。dsconf -D "cn=Directory Manager" ldaps://server.example.com config replace nsslapd-rootpw="{PBKDF2_SHA256}AAAgAMwPYIhEkQozTagoX6RGG5E7d6/6oOJ8TVty..."# dsconf -D "cn=Directory Manager" ldaps://server.example.com config replace nsslapd-rootpw="{PBKDF2_SHA256}AAAgAMwPYIhEkQozTagoX6RGG5E7d6/6oOJ8TVty..."Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. Web コンソールを使用した Directory Manager のパスワードの変更 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して、Directory Manager の新しいパスワードを設定できます。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
- → → メニューを開きます。
-
Directory Manager PasswordフィールドおよびConfirm Passwordフィールドに新規パスワードを入力します。 - オプション: 別のパスワードストレージスキームを設定します。
- をクリックします。
第4章 Directory Manager のパスワードのリセット リンクのコピーリンクがクリップボードにコピーされました!
Directory Manager は特権データベース管理者であり、Linux オペレーティングシステムの root ユーザーに相当します。Directory Manager のパスワードは、インスタンスのインストール時に設定されます。パスワードを紛失した場合は、パスワードをリセットして、ディレクトリーへの特権アクセスを取り戻すことができます。
4.1. コマンドラインを使用した Directory Manager のパスワードのリセット リンクのコピーリンクがクリップボードにコピーされました!
Directory Server インスタンスへの root アクセス権がある場合は、Directory Manager のパスワードをリセットできます。
手順
新しいパスワードハッシュを生成します。以下に例を示します。
pwdhash -D /etc/dirsrv/slapd-instance_name new_password {PBKDF2_SHA256}AAAgABU0bKhyjY53NcxY33ueoPjOUWtl4iyYN5uW...# pwdhash -D /etc/dirsrv/slapd-instance_name new_password {PBKDF2_SHA256}AAAgABU0bKhyjY53NcxY33ueoPjOUWtl4iyYN5uW...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Directory Server インスタンス設定へのパスを指定したため、
pwdhashジェネレーターは自動的にnsslapd-rootpwstoragescheme属性で設定されたパスワードストレージスキームを使用して、新しいパスワードを暗号化します。Directory Server インスタンスを停止します。
dsctl instance_name stop
# dsctl instance_name stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/dirsrv/slapd-instance_name/dse.ldifファイルを編集し、nsslapd-rootpw属性を、最初のステップで表示された値に設定します。nsslapd-rootpw: {PBKDF2_SHA256}AAAgABU0bKhyjY53NcxY33ueoPjOUWtl4iyYN5uW...nsslapd-rootpw: {PBKDF2_SHA256}AAAgABU0bKhyjY53NcxY33ueoPjOUWtl4iyYN5uW...Copy to Clipboard Copied! Toggle word wrap Toggle overflow Directory Server インスタンスを開始します。
dsctl instance_name start
# dsctl instance_name startCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 パスワードポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
パスワードポリシーは、一定レベルのセキュリティーを適用することで、パスワードの使用に関連するリスクを最小限に抑えます。たとえば、パスワードポリシーを定義すると、次のことを実現できます。
- スケジュールに基づくパスワードの変更をユーザーに要求する。
- 複雑なパスワードの指定をユーザーに要求する。
- 特定の複雑な要件を満たすパスワード構文の使用を必須にする。
5.1. パスワードポリシーの仕組み リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は、逆ピラミッド型のきめ細かいパスワードポリシーをサポートしており、一般的なポリシーから個別的なポリシーまで対応しています。グローバルパスワードポリシーよりも、サブツリーレベルのパスワードポリシーが優先され、サブツリーレベルのパスワードポリシーよりもユーザーレベルのパスワードポリシーが優先されます。
以下を定義できます。
- ディレクトリー全体に適用されるグローバルパスワードポリシー
ローカルパスワードポリシー
- 特定のサブツリーに適用されるサブツリーレベルのポリシー
- 特定のユーザーに適用されるユーザーレベルのポリシー
パスワードポリシーは付加的ではありません。1 つのエントリーに適用されるパスワードポリシーは 1 つだけです。たとえば、グローバルまたはサブツリーレベルのパスワードポリシーで特定の属性を設定しても、ユーザーレベルのパスワードポリシーでその属性を設定しなかった場合、その属性はユーザーに適用されません。この場合、ユーザーがログインを試みると、ユーザーレベルのポリシーのみがアクティブになります。
パスワード管理者アカウントまたは Directory Manager (ルート DN) を使用してパスワードを設定すると、パスワードポリシーがバイパスされます。これらのアカウントは、通常のユーザーパスワードの管理には使用しないでください。これらは、事前にハッシュされたパスワードの追加や、リセット後に一時パスワードを設定するために現在のパスワード制約を意図的に上書きするなど、パスワードポリシーをバイパスする必要があるパスワード管理タスクを実行する場合にのみ使用してください。
ユーザーアカウントに適用される完全なパスワードポリシーは、次の要素で構成されます。
- パスワードポリシーチェックのタイプまたはレベル。この情報は、サーバーがグローバルパスワードポリシーとローカルパスワードポリシーのどちらをチェックして実行する必要があるかを示します。
- パスワードの追加および変更の情報。パスワード情報には、パスワードの構文およびパスワード履歴の詳細が含まれます。
- バインド情報。バインド情報には、許可される猶予ログインの回数、パスワードエージング属性、およびバインド失敗の追跡が含まれます。
パスワードポリシーを確立したら、アカウントロックアウトポリシーを設定することで、ユーザーのパスワードを潜在的な脅威から保護できます。アカウントロックアウトは、ユーザーのパスワードを繰り返し推測してディレクトリーに侵入しようとする攻撃から保護します。
5.2. コマンドラインを使用したグローバルパスワードポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、グローバルパスワードポリシー設定は無効になっています。dsconf コマンドラインユーティリティーを使用して、グローバルパスワードポリシーを設定できます。
手順
現在の設定を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パスワードポリシー設定を調整します。使用可能な設定の完全なリストを表示するには、次のように入力します。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --help
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、パスワード構文の確認を有効にしてパスワードの最小の長さを
12文字に設定するには、次のコマンドを実行します。dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdchecksyntax on --pwdmintokenlen 12
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdchecksyntax on --pwdmintokenlen 12Copy to Clipboard Copied! Toggle word wrap Toggle overflow パスワードポリシーのアカウントロックアウト機能を有効にします。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlockout on
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlockout onCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. Web コンソールを使用したグローバルパスワードポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、グローバルパスワードポリシー設定は無効になっています。Web コンソールを使用して、グローバルパスワードポリシーを設定できます。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
- → → メニューを開きます。
グローバルパスワードポリシーを設定します。次のカテゴリーのパラメーターを設定できます。
- 一般的な設定 (パスワードストレージスキームなど)
- パスワードの有効期限設定 (パスワードが失効するまでの期間など)
- アカウントのロックアウト設定 (何回ログインに失敗したらアカウントをロックするかなど)
パスワード構文の設定 (パスワードの最小長など)
ツールヒントとパラメーターの
cn=configエントリーで対応する属性名を表示するには、設定の上にマウスのカーソルを合わせます。
- をクリックします。
5.4. ローカルパスワードポリシーエントリー リンクのコピーリンクがクリップボードにコピーされました!
dsconf localpwp addsubtree または dsconf localpwp adduser コマンドを使用すると、Directory Server がローカルパスワードポリシー属性を格納するためのエントリーを自動的に作成します。
サブツリーの場合、次のエントリーが追加されます。
| エントリー名 | 説明 | 内容 |
|---|---|---|
|
| サブツリーレベルのコンテナーエントリー | サブツリーとそのすべての子のさまざまなパスワードポリシー関連のエントリー |
|
| 実際のパスワードポリシー仕様エントリー | サブツリーに固有のすべてのパスワードポリシー属性 |
|
| CoS テンプレートエントリー |
|
|
| サブツリーレベルの CoS 定義エントリー | CoS 定義エントリー |
例5.1 サブツリー ou=people,dc=example,dc=com の nsPwPolicyContainer エントリー
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectClass: top
objectClass: nsContainer
cn: nsPwPolicyContainer
例5.2 サブツリー ou=people,dc=example,dc=com の nsPwPolicyEntry エントリー
例5.3 サブツリー ou=people,dc=example,dc=com の nsPwTemplateEntry エントリー
例5.4 サブツリー ou=people,dc=example,dc=com の CoS 仕様エントリー
ユーザーの場合、次のエントリーが追加されます。
| エントリー名 | 説明 | 内容 |
|---|---|---|
|
| 親レベルのコンテナーエントリー | ユーザーとそのすべての子のさまざまなパスワードポリシー関連のエントリー |
|
| 実際のパスワードポリシー仕様エントリー | ユーザーに固有のすべてのパスワードポリシー属性 |
例5.5 ユーザーの nsPwPolicyContainer エントリー uid=user_name,ou=people,dc=example,dc=com
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com objectClass: top objectClass: nsContainer cn: nsPwPolicyContainer
dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectClass: top
objectClass: nsContainer
cn: nsPwPolicyContainer
例5.6 ユーザーの nsPwPolicyEntry エントリー uid=user_name,ou=people,dc=example,dc=com
5.5. コマンドラインを使用したローカルパスワードポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して、特定のユーザーまたはサブツリーのローカルパスワードポリシーを設定します。ディレクトリー全体の設定を定義するグローバルポリシーとは異なり、ローカルパスワードポリシーはパスワードの構文、有効期間、複雑さに関するカスタムルールを定義します。
前提条件
- ポリシーを作成する対象のユーザーまたはサブツリーエントリーがディレクトリーにすでに存在している。
手順
サブツリーまたはユーザーエントリーにローカルパスワードポリシーがすでに存在しているかどうかを確認します。以下に例を示します。
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp get "ou=People,dc=example,dc=com" Enter password for cn=Directory Manager on ldap://server.example.com: Error: No password policy was found for this entry
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp get "ou=People,dc=example,dc=com" Enter password for cn=Directory Manager on ldap://server.example.com: Error: No password policy was found for this entryCopy to Clipboard Copied! Toggle word wrap Toggle overflow ローカルポリシーが存在しない場合は、これを作成します。
subtree パスワードポリシーを作成するには、以下を実行します。
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp addsubtree "ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp addsubtree "ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow user パスワードポリシーを作成するには、以下を実行します。
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp adduser "uid=user_name,ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp adduser "uid=user_name,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ローカルポリシー属性を設定します。使用可能な設定の完全なリストを表示するには、次のように入力します。
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --help
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、パスワードの有効期限を有効にし、パスワードの最大有効期間を 14 日 (
1209600秒) に設定するには、以下を実行します。subtree パスワードポリシー:
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire on --pwdmaxage 1209600 "ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire on --pwdmaxage 1209600 "ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow user パスワードポリシー:
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire on --pwdmaxage 1209600 "uid=user_name,ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire on --pwdmaxage 1209600 "uid=user_name,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6. Web コンソールを使用してローカルパスワードポリシーを設定する リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して、特定のユーザーまたはサブツリーのローカルパスワードポリシーを設定します。ディレクトリー全体の設定を定義するグローバルポリシーとは異なり、ローカルパスワードポリシーはパスワードの構文、有効期間、複雑さに関するカスタムルールを定義します。Web コンソールを使用してローカルポリシーを設定します。
前提条件
- root 権限がある。
- Web コンソールにログインしている。詳細は、Web コンソールを使用した Directory Server へのログイン を参照してください。
手順
- インスタンスを選択します。
- Database メニューを開きます。
- 左側のリストから、Password Policies 設定の下にある Local Policies を選択します。
- Local Password Policies 設定ページで、Create A Policy タブを選択します。
- Password Policy Type フィールドで、Subtree Policy または User Policy を選択します。
- Target DN フィールドで、ポリシーを適用するエントリーの識別名 (DN) を設定します。
ローカルポリシー属性を設定します。たとえば、パスワードの有効期限を有効にするには、パスワードの最大有効期間を 14 日間 (1209600 秒) に設定し、パスワードの最小長を 10 文字に設定します。
-
Show Expiration Settings を展開して Enforce Password Expiration をオンにし、Password Expiration Time を
1209600に設定します。 -
Show Syntax Settings を展開して Enable Password Syntax Checking をオンにし、Minimum Length を
10に設定します。
-
Show Expiration Settings を展開して Enforce Password Expiration をオンにし、Password Expiration Time を
- Create New Policy をクリックします。
検証
- 新しく作成されたポリシーは、Local Password Policies ページのリストに表示されます。
5.7. コマンドラインを使用したローカルパスワードポリシーの無効化 リンクのコピーリンクがクリップボードにコピーされました!
新しいローカルポリシーを作成すると、cn=config エントリーの nsslapd-pwpolicy-local パラメーターが自動的に on に設定されます。ローカルパスワードポリシーを有効にしない場合は、コマンドラインを使用して手動で無効にすることができます。
手順
すべてのローカルポリシーを無効にするか、特定のローカルポリシーを削除します。
すべてのローカルパスワードポリシーを無効にするには:
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlocal off
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlocal offCopy to Clipboard Copied! Toggle word wrap Toggle overflow 単一の既存の サブツリー パスワードポリシーを削除するには:
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp remove "ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp remove "ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 単一の既存の ユーザー パスワードポリシーを削除するには:
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp remove "uid=user_name,ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp remove "uid=user_name,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8. Web コンソールを使用してローカルパスワードポリシーを無効にする リンクのコピーリンクがクリップボードにコピーされました!
新しいローカルポリシーを作成すると、Directory Server は自動的にローカルパスワードポリシーを許可します。Web コンソールを使用して、すべてまたは特定のローカルパスワードポリシーを無効にできます。
前提条件
- root 権限がある。
- Web コンソールにログインしている。詳細は、Web コンソールを使用した Directory Server へのログイン を参照してください。
手順
- インスタンスを選択します。
- Database メニューを開きます。
すべてのローカルポリシーを無効にするか、特定のローカルポリシーを削除します。
すべてのローカルパスワードポリシーを無効にするには:
- Password Policies の下の Global Policy 設定を選択し、Allow Local Password Policies のチェックを外します。
ボタンをクリックして設定を適用します。
これにより、Directory Server は
cn=configエントリーのnsslapd-pwpolicy-localパラメーターをoffに設定します。
- 特定のローカルポリシーを削除するには、Password Policies の下の Local Policies 設定を選択し、オプションメニュー (⋮) を使用してローカルポリシーを削除します。
5.9. パスワード変更時間の追跡 リンクのコピーリンクがクリップボードにコピーされました!
パスワード変更操作はエントリーに対する一般的な変更操作であり、Directory Server は更新時間を lastModified 操作属性に記録します。ただし、Active Directory の同期でより簡単にパスワードを更新したり、他の LDAP クライアントに接続したりできるように、パスワードの最終変更時間を別途記録することができます。
グローバルまたはローカルパスワードポリシー内で passwordTrackUpdateTime パラメーターを設定して、ユーザーエントリーの pwdUpdateTime 操作属性に最後のパスワード変更の時刻を記録します。
前提条件
-
root権限がある。
手順
passwordTrackUpdateTimeパラメーターをonに設定します。グローバルポリシーの場合は、次を実行します。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdtrack on
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdtrack onCopy to Clipboard Copied! Toggle word wrap Toggle overflow サブツリーまたはユーザーレベルのポリシーの場合は、次を実行します。
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set "ou=people,dc=example,dc=com" --pwdtrack on
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set "ou=people,dc=example,dc=com" --pwdtrack onCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ポリシーの現在の設定を表示します。
グローバルポリシーの場合は、次を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サブツリーまたはユーザーレベルのポリシーの場合は、次を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第6章 一時パスワードルールの設定 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server のパスワードポリシーは、ユーザーアカウントの一時パスワードの設定をサポートしています。ユーザーに一時パスワードを割り当てると、Directory Server は、ユーザーがパスワードを変更するまで、パスワード変更以外の操作を拒否します。
一時パスワードの機能は次のとおりです。
-
cn=Directory Managerアカウントのみが一時パスワードを割り当てることができます。 - Directory Server は、攻撃者によるパスワードの調査を防ぐために、認証の試行を一定の回数だけ許可します。
- Directory Server は、設定直後に一時パスワードを使用できないように、指定された遅延時間後に認証の試行を許可します。
- Directory Server は、ユーザーが一時パスワードを使用またはリセットしなかった場合に一時パスワードが期限切れになるように、指定された期間のみ認証の試行を許可します。
- 認証が成功した場合、Directory Server は他の操作を実行する前に、ユーザーによるパスワードのリセットを要求します。
デフォルトでは、一時パスワードルールは無効になります。一時パスワードルールは、グローバルまたはローカルパスワードポリシーで設定できます。
6.1. グローバルパスワードポリシーでの一時的なパスワードルールの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server インスタンス全体に対して一時パスワード機能を有効にするには、次の手順を実行します。
- 管理者がパスワードをリセットした場合にユーザーによるパスワードの変更を必須にします。
- グローバルパスワードポリシーで一時パスワード機能を設定します。
管理者がユーザーの userPassword 属性を更新し、passwordMustChange 属性を on に設定すると、Directory Server は一時パスワードルールを適用します。
手順
管理者によるパスワードリセット後のユーザーによるパスワード変更を必須に設定します。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdmustchange on
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdmustchange onCopy to Clipboard Copied! Toggle word wrap Toggle overflow グローバルパスワードポリシーで一時パスワードルールを設定します。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、以下が適用されます。
-
--pwptprmaxuseオプションで、ユーザーが一時パスワードを使用できる最大試行回数を5に設定しています。 -
--pwptprdelayexpireatオプションで、一時パスワードの有効期限が切れるまでの時間を3600秒 (1 時間) に設定しています。 -
--pwptprdelayvalidfromオプションで、管理者がユーザーのパスワードをリセットしてから60秒後に、--pwptprdelayexpireatで設定した時間が開始するように設定しています。
-
検証
一時パスワードルールを保存する属性を表示します。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy get | grep -i TPR passwordTPRMaxUse: 5 passwordTPRDelayExpireAt: 3600 passwordTPRDelayValidFrom: 60
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy get | grep -i TPR passwordTPRMaxUse: 5 passwordTPRDelayExpireAt: 3600 passwordTPRDelayValidFrom: 60Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2. ローカルパスワードポリシーでの一時的なパスワードルールの有効化 リンクのコピーリンクがクリップボードにコピーされました!
特定のユーザーまたはサブツリーの一時パスワード機能を有効にするには、管理者によるパスワードリセット時のユーザーによるパスワード変更を必須にして、ローカルパスワードポリシーで機能を設定します。
管理者がユーザーの userPassword 属性を更新し、passwordMustChange 属性を on に設定すると、Directory Server が次の条件に該当するユーザーに一時パスワードルールを適用します。
- ローカルパスワードポリシーが有効になっている
- ローカルパスワードポリシーが有効になっているサブツリーに保存されている
手順
管理者によるパスワードリセット後のユーザーによるパスワード変更を必須に設定します。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdmustchange on
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdmustchange onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一時パスワードルール設定を設定します。
既存のサブツリーの場合:
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp addsubtree --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60 ou=People,dc=example,dc=com
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp addsubtree --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60 ou=People,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のユーザーの場合:
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp adduser --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60 uid=example,ou=People,dc=example,dc=com
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp adduser --pwptprmaxuse 5 --pwptprdelayexpireat 3600 --pwptprdelayvalidfrom 60 uid=example,ou=People,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
この例では、以下のようになります。
-
--pwptprmaxuseオプションで、ユーザーが一時パスワードを使用できる最大試行回数を5に設定しています。 -
--pwptprdelayexpireatオプションで、一時パスワードの有効期限が切れるまでの時間を3600秒 (1 時間) に設定しています。 -
--pwptprdelayvalidfromオプションで、管理者がユーザーのパスワードをリセットしてから60秒後に、--pwptprdelayexpireatで設定した時間が開始するように設定しています。
検証
識別名 (DN) のローカルパスワードポリシーを表示します。
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp get <DN> | grep -i TPR passwordTPRMaxUse: 5 passwordTPRDelayExpireAt: 3600 passwordTPRDelayValidFrom: 60
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp get <DN> | grep -i TPR passwordTPRMaxUse: 5 passwordTPRDelayExpireAt: 3600 passwordTPRDelayValidFrom: 60Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 パスワード管理者権限の割り当て リンクのコピーリンクがクリップボードにコピーされました!
Directory Manager は、パスワード管理者 ロールをユーザーまたはグループに割り当てることができます。パスワード管理者は適切なパーミッションを持つアクセス制御命令 (ACI) を必要とするため、単一の ACI セットですべてのパスワード管理者を管理できるようにグループを設定することを推奨します。
パスワード管理者ロールを使用すると、次のシナリオで役立ちます。
- 次回のログイン時にパスワードの変更をユーザーに強制する属性を設定する
- ユーザーのパスワードを、パスワードポリシーで定義されている別のストレージスキームに変更する
パスワード管理者は、すべてのユーザーパスワード操作を実行できます。パスワード管理者アカウントまたは Directory Manager (root DN) を使用してパスワードを設定すると、パスワードポリシーは回避され、検証されません。これらのアカウントは、通常のユーザーパスワードの管理には使用しないでください。Red Hat は、userPassword 属性のみを更新する権限を持つデータベース内の既存のロールで通常のパスワード更新を実行することを推奨します。
新しい passwordAdminSkipInfoUpdate: on/off 設定を cn=config エントリーに追加すると、パスワード管理者が実行するパスワード更新をきめ細かく制御できます。この設定を有効にすると、パスワードの更新では、passwordHistory、passwordExpirationTime、passwordRetryCount、pwdReset、および passwordExpWarned などの特定の属性は更新されません。
7.1. グローバルポリシーでのパスワード管理者権限の割り当て リンクのコピーリンクがクリップボードにコピーされました!
グローバルポリシーでは、パスワード管理者ロールをユーザーまたはユーザーグループに割り当てることができます。Red Hat では、単一のアクセス制御命令 (ACI) セットですべてのパスワード管理者を管理できるようにグループを設定することを推奨します。
前提条件
-
パスワード管理者ロールを割り当てるすべてのユーザーを含む、
password_adminsという名前のグループを作成した。
手順
パスワード管理者ロールの権限を定義する ACI を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パスワード管理者ロールをグループに割り当てます。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdadmin "cn=password_admins,ou=groups,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdadmin "cn=password_admins,ou=groups,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2. ローカルポリシーでのパスワード管理者権限の割り当て リンクのコピーリンクがクリップボードにコピーされました!
ローカルポリシーでは、パスワード管理者ロールをユーザーまたはユーザーグループに割り当てることができます。Red Hat では、単一のアクセス制御命令 (ACI) セットですべてのパスワード管理者を管理できるようにグループを設定することを推奨します。
前提条件
-
パスワード管理者ロールを割り当てるすべてのユーザーを含む、
password_adminsという名前のグループを作成した。
手順
パスワード管理者ロールの権限を定義する ACI を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パスワード管理者ロールをグループに割り当てます。
dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set ou=people,dc=example,dc=com --pwdadmin "cn=password_admins,ou=groups,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set ou=people,dc=example,dc=com --pwdadmin "cn=password_admins,ou=groups,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第8章 匿名バインドの無効化 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーが認証情報を指定せずに Directory Server への接続を試みた場合、この操作は anonymous bind (匿名バインド) と呼ばれます。匿名バインドは、ユーザーに最初の認証を要求しないため、ディレクトリー内の電話番号の検索など、検索と読み取り操作が簡素化されます。ただし、アカウントのないユーザーがデータにアクセスできるため、匿名バインドはセキュリティーリスクとなる可能性もあります。
デフォルトでは、匿名バインドは Directory Server で検索および読み取り操作に対して有効になります。これにより、ユーザーエントリーだけでなく、ルート Directory Server エントリー (DSE) などの設定エントリーへの不正アクセスが可能になります。
8.1. コマンドラインでの匿名バインドの無効化 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーを強化するには、匿名バインドを無効にします。
手順
nsslapd-allow-anonymous-access設定パラメーターをoffに設定します。dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-allow-anonymous-access=off
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-allow-anonymous-access=offCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ユーザーアカウントを指定せずに検索を実行します。
ldapsearch -H ldap://server.example.com -b "dc=example,dc=com" -x ldap_bind: Inappropriate authentication (48) additional info: Anonymous access is not allowed
# ldapsearch -H ldap://server.example.com -b "dc=example,dc=com" -x ldap_bind: Inappropriate authentication (48) additional info: Anonymous access is not allowedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2. Web コンソールでの匿名バインドの無効化 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーを強化するには、匿名バインドを無効にします。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
- → → に移動します。
-
Allow Anonymous Accessパラメーターをoffに設定します。 - をクリックします。
検証
ユーザーアカウントを指定せずに検索を実行します。
ldapsearch -H ldap://server.example.com -b "dc=example,dc=com" -x ldap_bind: Inappropriate authentication (48) additional info: Anonymous access is not allowed# ldapsearch -H ldap://server.example.com -b "dc=example,dc=com" -x ldap_bind: Inappropriate authentication (48) additional info: Anonymous access is not allowedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第9章 ユーザーとロールの手動による非アクティブ化 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーとロールの手動による非アクティブ化
Directory Server では、単一のユーザーアカウントまたは一連のアカウントを一時的に非アクティブ化できます。アカウントが非アクティブになると、ユーザーがディレクトリーにバインドできなくなります。認証操作は失敗します。
9.1. コマンドラインを使用したユーザーとロールの非アクティブ化とアクティブ化 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインまたは操作属性を使用して、ユーザーとロールを手動で非アクティブ化できます。
ロールは、静的グループと動的グループの両方として動作します。グループを使用すると、エントリーはメンバーとしてグループエントリーに追加されます。ロールを使用すると、role 属性がエントリーに追加され、その属性はロールエントリー内のメンバーを自動的に識別するために使用されます。
ユーザーとロールは、同じ手順で非アクティブ化します。ただし、ロールを非アクティブにした場合、ロールエントリー自体ではなくロールのメンバーが非アクティブになります。
ユーザーとロールを非アクティブ化するには、コマンドラインで次のコマンドを実行します。
ユーザーアカウントを非アクティブ化する場合:
dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account lock "uid=user_name,ou=People,dc=example,dc=com"
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account lock "uid=user_name,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールを非アクティブ化する場合:
dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" role lock "cn=Marketing,ou=People,dc=example,dc=com"
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" role lock "cn=Marketing,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ユーザーとロールをアクティブ化するには、コマンドラインで次のコマンドを実行します。
ユーザーアカウントをアクティブ化する場合:
dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account unlock "uid=user_name,ou=People,dc=example,dc=com"
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account unlock "uid=user_name,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールをアクティブ化する場合:
dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" role unlock "cn=Marketing,ou=People,dc=example,dc=com"
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" role unlock "cn=Marketing,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
必要に応じて、コマンドを使用する代わりに、操作属性 nsAccountLock をエントリーに追加できます。エントリーに値が true の nsAccountLock 属性が含まれている場合、サーバーはバインドを拒否します。
9.2. アカウントまたはロールのステータスを表示するためのコマンド リンクのコピーリンクがクリップボードにコピーされました!
Directory Server のアカウントまたはロールのステータスは、対応するコマンドをコマンドラインで使用すると表示できます。
ステータスを表示するためのコマンド
アカウントのステータスを表示します。
dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account entry-status "uid=user_name,ou=People,dc=example,dc=com" Entry DN: uid=user_name,ou=People,dc=example,dc=com Entry Creation Date: 20210813085535Z (2021-08-13 08:55:35) Entry Modification Date: 20210813085535Z (2021-08-13 08:55:35) Entry State: activated
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account entry-status "uid=user_name,ou=People,dc=example,dc=com" Entry DN: uid=user_name,ou=People,dc=example,dc=com Entry Creation Date: 20210813085535Z (2021-08-13 08:55:35) Entry Modification Date: 20210813085535Z (2021-08-13 08:55:35) Entry State: activatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
-Vオプションは追加の詳細を表示します。例9.1 アクティブなアカウントの詳細な出力
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例9.2 非アクティブなアカウントの詳細な出力
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールのステータスを表示します。
dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" role entry-status "cn=Marketing,ou=People,dc=example,dc=com" Entry DN: cn=Marketing,ou=people,dc=example,dc=com Entry State: activated
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" role entry-status "cn=Marketing,ou=People,dc=example,dc=com" Entry DN: cn=Marketing,ou=people,dc=example,dc=com Entry State: activatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow サブツリーのステータスを表示します。
dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account subtree-status "ou=People,dc=example,dc=com" -f "(uid=*)" -V -o "2021-08-25T14:30:30"
# dsidm -D "cn=Directory Manager" ldap://server.example.com -b "dc=example,dc=com" account subtree-status "ou=People,dc=example,dc=com" -f "(uid=*)" -V -o "2021-08-25T14:30:30"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のオプションを使用して、サブツリーでの検索結果をフィルタリングできます。
-
検索フィルターを設定する
-fオプション -
検索範囲を設定する
-sオプション -
非アクティブなアカウントのみを返す
-iオプション -
指定された日付
YYYY-MM-DDTHH:MM:SSより前に非アクティブになるアカウントのみを返す-oオプション
-
検索フィルターを設定する
第10章 レプリケーション環境内のすべてのサーバー間でアカウントロックアウト属性を同期する リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は、アカウントのロックアウト属性をローカルで保存します。複数のサーバーがある環境では、攻撃者がアカウントのロックアウト数に達するまで 1 台のサーバーへのログインを試み、その後さらに他のサーバーにログインを試みることを防ぐために、この属性のレプリケーションを設定してください。
10.1. レプリケーション環境で Directory Server がパスワードおよびアカウントのロックアウトポリシーを処理する方法 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は、パスワードおよびアカウントのロックアウトポリシーを次のように適用します。
- パスワードポリシーは、データプロバイダーに適用されます。
- アカウントロックアウトポリシーは、レプリケーショントポロジー内のすべてのサーバーに適用されます。
Directory Server は次パスワードポリシー属性をレプリケートします。
-
passwordMinAge -
passwordMaxAge -
passwordExp -
passwordWarning
ただし、デフォルトでは、Directory Server は以下に示す一般的なアカウントロックアウト属性をレプリケートしません。
-
passwordRetryCount -
retryCountResetTime -
accountUnlockTime
攻撃者がアカウントのロックアウト数に達するまで 1 台のサーバーへのログインを試み、その後さらに他のサーバーにログインを試みることを防ぐには、これらのアカウントロックアウト属性をレプリケートします。
10.2. アカウントロックアウト属性をレプリケートするための Directory Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
passwordRetryCount、retryCountResetTime、または accountUnlockTime 属性を更新するアカウントロックアウトポリシーまたはパスワードポリシーを使用する場合は、これらの属性の値がすべてのサーバーで同じになるように Directory Server を設定してこれらの属性をレプリケートします。
この手順は、レプリケーショントポロジー内のすべてのサプライヤーで実行してください。
前提条件
- 前述の属性を 1 つ以上更新するアカウントロックアウトポリシーまたはパスワードポリシーを設定している。
- Directory Server をレプリケーション環境で使用している。
手順
パスワードポリシー属性のレプリケーションを有効にします。
dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdisglobal="on"
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdisglobal="on"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一部レプリケーションを使用する場合は、レプリケーションから除外される属性のリストを表示します。
dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt get --suffix "dc=example,dc=com" example-agreement | grep "nsDS5ReplicatedAttributeList"
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt get --suffix "dc=example,dc=com" example-agreement | grep "nsDS5ReplicatedAttributeList"Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルト設定を使用すると、出力は表示されず、Directory Server はアカウントロックアウト属性をレプリケートします。ただし、次の例のように、除外される属性のリストが返された場合は、属性リストを確認してください。
nsDS5ReplicatedAttributeList: (objectclass=*) $ EXCLUDE accountUnlockTime passwordRetryCount retryCountResetTime example1 example2
nsDS5ReplicatedAttributeList: (objectclass=*) $ EXCLUDE accountUnlockTime passwordRetryCount retryCountResetTime example1 example2Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
accountUnlockTime、passwordRetryCount、およびretryCountResetTimeロックアウトポリシー属性が、その他の 2 つの属性とともにレプリケーションから除外されます。直前のコマンドの出力にアカウントロックアウト属性が表示された場合は、ロックアウトポリシー属性以外の属性のみを含めるように一部レプリケーション設定を更新します。
dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt set --suffix "dc=example,dc=com" --frac-list "example1 example2" example-agreement
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-agmt set --suffix "dc=example,dc=com" --frac-list "example1 example2" example-agreementCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
無効なパスワードを使用して、ユーザーとして検索の実行を試みます。
ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w "invalid-password" -b "dc=example,dc=com" -x ldap_bind: Invalid credentials (49)
# ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w "invalid-password" -b "dc=example,dc=com" -x ldap_bind: Invalid credentials (49)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーの
passwordRetryCount属性を表示します。ldapsearch -H ldap://server.example.com -D "cn=Directory Manager" -W -b "uid=example,ou=People,dc=example,dc=com" -x passwordRetryCount ... dn: uid=example,ou=People,dc=example,dc=com passwordRetryCount: 1
# ldapsearch -H ldap://server.example.com -D "cn=Directory Manager" -W -b "uid=example,ou=People,dc=example,dc=com" -x passwordRetryCount ... dn: uid=example,ou=People,dc=example,dc=com passwordRetryCount: 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
レプリケーショントポロジー内の別のサーバーで直前のコマンドを実行します。
passwordRetryCount属性の値が同じである場合、Directory Server は属性をレプリケートします。
第11章 参照整合性を使用したエントリー間の関係の維持 リンクのコピーリンクがクリップボードにコピーされました!
Referential Integrity は、Directory Server が関連するエントリー間の関係を維持するためのデータベースメカニズムです。この機能を使用すると、ディレクトリー内の 1 つのエントリーへの更新を、更新されたエントリーを参照する他のエントリーに正しく反映できます。
たとえば、ディレクトリーからユーザーを削除し、Referential Integrity プラグインが有効になっている場合、サーバーは、そのユーザーがメンバーとなっているグループからもそのユーザーを削除します。プラグインが有効になっていない場合、ユーザーは管理者が手動で削除するまでグループのメンバーのままになります。
Referential Integrity は、ユーザーおよびグループの管理に Directory Server を利用する他の製品と Directory Server を統合する場合に重要な機能です。
11.1. Referential Integrity プラグインの仕組み リンクのコピーリンクがクリップボードにコピーされました!
Referential Integrity プラグインを有効にすると、デフォルトでは、操作直後に member、uniqueMember、owner、および seeAlso 属性の整合性更新が実行されます。
たとえば、管理者がディレクトリー内のグループまたはユーザーを削除、更新、名前変更、または移動した場合、Directory Server はその操作を Referential Integrity のログファイルに記録します。Directory Server はこのログファイルから識別名 (DN) を使用し、プラグインの設定で指定された属性に一致するエントリーを検索し、一致するエントリーを更新します。たとえば、cn=demo,dc=example,dc=com エントリーを削除すると、プラグインは cn=demo,dc=example,dc=com に設定された member 属性でエントリーを検索し、これらの member 属性を削除します。その後、プラグインは uniqueMember、owner、および seeAlso 属性に対して同じことを実行します。
デフォルトでは、Directory Server は元の操作と同じトランザクションで検索および更新を行います。検索および更新操作には時間がかかる場合があるため、これらの操作は、元の操作の完了後に遅延させることができます。dsconf plugin referential-integrity set コマンドの --update-lay オプションを使用すると、元の操作を整合性の更新から分離できます。
変更および削除操作のパフォーマンスの低下を回避するには、Referential Integrity プラグインの設定で指定した属性をインデックス化します。
11.2. レプリケーションでの Referential Integrity の使用に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
Referential Integrity プラグインがレプリケーション環境で持つ制限について説明します。
- 専用のコンシューマーサーバー(読み取り専用レプリカのみを含むサーバー)で Referential Integrity プラグインを有効にしないでください。サプライヤーサーバーは、プラグインがコンシューマーサーバーに加える変更を送信します。そのため、コンシューマーおよびハブサーバーで Referential Integrity プラグインを実行する必要はありません。
- 読み取り/書き込みレプリカと読み取り専用レプリカの組み合わせが含まれるサーバーで、Referential Integrity プラグインを有効にしないでください。
- 読み取り/書き込みレプリカのみを含むサプライヤーサーバーで Referential Integrity プラグインを有効にします。
プラグインがレプリケートされた更新を無視するため、マルチ サプライヤーレプリケーショントポロジーの各 サプライヤーサーバーの Referential Integrity プラグインを有効にします。プラグイン設定は、すべてのサプライヤーサーバーで同じである必要があります。
注記Active Directory サーバーなど、Referential Integrity プラグインを有効にできないサプライヤーがある場合は、
nsslapd-pluginAllowReplUpdates属性を使用して、別のサプライヤーの Referential Integrity プラグインがレプリケートされた更新を処理できるようにすることができます。ただし、レプリケーショントポロジー内の 1 つのサプライヤー でのみnsslapd-pluginAllowReplUpdatesが有効になっていることを確認してください。
11.3. コマンドラインを使用した Referential Integrity プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して Referential Integrity プラグインを設定できます。
この手順は、レプリケーショントポロジー内のすべてのサプライヤーで実行してください。
手順
Referential Integrity プラグインを有効にします。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity enable
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインがユーザーエントリーの削除または名前変更操作を検索するサブツリーを設定します。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --entry-scope "ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --entry-scope "ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: エントリースコープでサブツリーを除外します。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --exclude-entry-scope "ou=Special Users,ou=People,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --exclude-entry-scope "ou=Special Users,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
ou=Special Users,ou=People,dc=example,dc=comサブツリーで実行される削除または名前変更操作を無視するようにプラグインを設定します。プラグインがグループエントリーを更新するサブツリーを設定します。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --container-scope "ou=Groups,dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --container-scope "ou=Groups,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、プラグインは
member、uniqueMember、owner、およびseeAlso属性の整合性更新を実行します。他の属性を指定するには、次のように入力します。dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --membership-attr attribute_1 attribute_2
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --membership-attr attribute_1 attribute_2Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、プラグインの設定内の属性のリストをオーバーライドすることに注意してください。属性を追加する場合は、現在の属性リストと追加の属性リストを
--membership-attrオプションに渡します。オプション: デフォルトでは、Directory Server は参照整合性チェックを即座に実行します。遅延を設定する場合は、次のように入力します。
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --update-delay=5
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin referential-integrity set --update-delay=5Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、参照整合性チェックを
5秒遅延させます。複数のサプライヤーで Referential Integrity を有効にした場合、遅延を設定するとレプリケーションループやディレクトリーの不整合が発生する可能性があることに注意してください。このような問題を回避するには、トポロジー内の 1 つのサプライヤーでのみプラグインを有効にします。インスタンスを再起動します。
dsctl instance_name restart
# dsctl instance_name restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Referential Integrity プラグインの設定を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow グループの
member属性を表示して、グループのメンバーをリストします。ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=Groups,dc=example,dc=com" member ... member: uid=demoUser,ou=People,dc=example,dc=com
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=Groups,dc=example,dc=com" member ... member: uid=demoUser,ou=People,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow uid=demoUser,ou=People,dc=example,dc=comユーザーを削除します。dsidm -D "cn=Directory manager" ldap://server.example.com -b "dc=example,dc=com" user delete "uid=demoUser,ou=People,dc=example,dc=com"
# dsidm -D "cn=Directory manager" ldap://server.example.com -b "dc=example,dc=com" user delete "uid=demoUser,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow グループのメンバーを再度表示します。
ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=People,dc=example,dc=com" member
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=People,dc=example,dc=com" memberCopy to Clipboard Copied! Toggle word wrap Toggle overflow uid=demoUser,ou=People,dc=example,dc=comがグループのメンバーとしてリストされなければ、Referential Integrity プラグインは機能しています。
11.4. Web コンソールを使用した Referential Integrity プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server Web コンソールを使用して Referential Integrity プラグインを設定できます。
この手順は、レプリケーショントポロジー内のすべてのサプライヤーで実行してください。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
- → に移動します。
- プラグインを有効にします。
- → をクリックします。
- → を再度移動します。
-
デフォルトでは、プラグインは
member、uniqueMember、owner、およびseeAlso属性の整合性更新を実行します。他の属性を指定するには、Membership Attributeフィールドのリストを更新します。 -
Entry Scopeフィールドを、プラグインがユーザーエントリーの削除または名前変更の操作を検索するサブツリーの DN に設定します。 -
オプション: エントリースコープの下にあるサブツリーを除外するには、
Exclude Entry Scopeフィールドにサブツリーの DN を入力します。 -
Container Scopeフィールドを、プラグインがグループエントリーを更新するサブツリーの DN に設定します。 -
オプション: Referential Integrity のログファイルへのパスを更新します。Directory Server はこのファイルを使用してディレクトリー内の変更を追跡します。
dirsrvユーザーには、この場所への書き込み権限が必要であることに注意してください。 オプション: デフォルトでは、Directory Server は参照整合性チェックを即座に実行します。遅延を設定する場合は、
Update Delayフィールドで設定します。複数のサプライヤーで Referential Integrity を有効にした場合、遅延を設定するとレプリケーションループやディレクトリーの不整合が発生する可能性があることに注意してください。このような問題を回避するには、トポロジー内の 1 つのサプライヤーでのみプラグインを有効にします。
- をクリックします。
検証
グループの
member属性を表示して、グループのメンバーをリストします。ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=Groups,dc=example,dc=com" member ... member: uid=demoUser,ou=People,dc=example,dc=com
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=Groups,dc=example,dc=com" member ... member: uid=demoUser,ou=People,dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow uid=demoUser,ou=People,dc=example,dc=comユーザーを削除します。dsidm -D "cn=Directory manager" ldap://server.example.com -b "dc=example,dc=com" user delete "uid=demoUser,ou=People,dc=example,dc=com"
# dsidm -D "cn=Directory manager" ldap://server.example.com -b "dc=example,dc=com" user delete "uid=demoUser,ou=People,dc=example,dc=com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow グループのメンバーを再度表示します。
ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=People,dc=example,dc=com" member
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -b "cn=demoGroup,ou=People,dc=example,dc=com" memberCopy to Clipboard Copied! Toggle word wrap Toggle overflow uid=demoUser,ou=People,dc=example,dc=comがグループのメンバーとしてリストされなければ、Referential Integrity プラグインは機能しています。