4.3. ディレクトリーエントリーのグループ化
ディレクトリー管理を簡素化するために、作成したエントリーをグループ化します。Directory Server は、エントリーをグループ化する次の方法をサポートしています。
- グループ
- ロール
4.3.1. Directory Server のグループについて リンクのコピーリンクがクリップボードにコピーされました!
グループはユーザーのコレクションです。Directory Server には、証明書グループ、URL グループ、一意のメンバーのみを持つ一意のグループなど、許可されるメンバーシップのタイプを反映するいくつかのグループタイプがあります。それぞれのグループタイプは、groupOfUniqueNames などのオブジェクトクラスと、uniqueMember などの対応するメンバー属性によって定義します。
グループのタイプは、メンバーのタイプを識別します。グループ設定は、Directory Server がグループにメンバーを追加する方法によって異なります。Directory Server には 2 つのグループタイプがあります。
- 静的グループ
- 静的グループには、有限かつ定義されたメンバーのリストがあります。グループエントリーにメンバーを手動で追加します。
- 動的グループ
- 動的グループでは、フィルターを使用してグループにメンバーを追加します。したがって、グループフィルターに一致するエントリーの数が変更されるため、メンバーの数は常に変更されます。
グループはエントリーに対して操作を実行しませんが、LDAP クライアントはグループを管理して操作を実行できます。
4.3.1.1. ユーザーエントリーにおけるグループメンバーシップのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
グループはユーザー DN のリストです。デフォルトでは、グループエントリーにのみメンバーシップ情報が含まれ、ユーザーエントリーにはこの情報は含まれません。
MemberOf プラグインは、グループメンバーエントリーを使用してユーザーエントリーを動的に更新し、ユーザーが属するグループを反映させます。プラグインは、指定されたメンバー属性を持つグループエントリーを自動的にスキャンし、すべてのユーザー DN をトレースバックして、グループの名前を持つユーザーエントリーに対応する memberOf 属性を作成します。
ユーザーが所属するすべてのグループの名前は memberOf 属性としてリストされ、memberOf 属性の値を管理できます。
デフォルトでは、MemberOf プラグインは、Directory Server がグループと同じデータベースに保存するユーザー内の潜在的なメンバーのみを検索します。Directory Server がユーザーとグループを異なるデータベースに保存する場合、MemberOf プラグインはユーザーとグループの関係を定義できないため、ユーザーエントリーを更新しません。
memberOfAllBackends 属性を有効にして、設定されたすべてのデータベースを検索するように MemberOf プラグインを設定します。
プラグインエントリーに複数値 memberofgroupattr を設定することにより、MemberOf プラグインの単一インスタンスを設定して複数のタイプのグループを管理できます。
4.3.1.2. グループに新しいエントリーを自動的に追加する リンクのコピーリンクがクリップボードにコピーされました!
グループメンバーシップに基づいて、パスワードポリシー、アクセス制御リスト、その他のルールを適用できます。グループを使用すると、ディレクトリー全体で一貫して確実にポリシーを適用できます。
新しいエントリーが作成されたときに新しいエントリーをグループに自動的に割り当てることで、管理者のアクションなしで、Directory Server が適切なポリシーと機能をそれらのエントリーに即座に適用できるようになります。
Automembership プラグインを使用すると、静的グループは動的グループのように動作できます。Automembership プラグインは、エントリー属性、ディレクトリーのロケーション、および正規表現に基づく一連のルールを使用して、ユーザーを指定されたグループに自動的に割り当てます。
他の属性の値によっては、LDAP 検索フィルターに一致するエントリーを異なるグループに追加する必要がある場合があります。たとえば、IP アドレスや物理的ロケーションに応じて、マシンを異なるグループに追加する必要があります。または、従業員 ID 番号に応じてユーザーを異なるグループに配置する必要があります。
自動メンバー定義は、自動メンバーシッププラグインコンテナー、自動メンバー定義、およびその定義の正規表現条件を含むネストされたエントリーのセットです。
Directory Server は、エントリーが Directory Server に新しく追加された場合にのみ、エントリーをグループに自動的に割り当てます。既存のエントリー、または自動メンバールールを満たすように変更したエントリーの場合は、修正タスクを実行して適切なグループメンバーシップを割り当てます。
4.3.2. Directory Server のロールについて リンクのコピーリンクがクリップボードにコピーされました!
ロールは、静的グループと動的グループの両方として動作します。グループを使用すると、Directory Server はグループエントリーにメンバーとしてエントリーを追加します。ロールを使用すると、Directory Server はエントリーにロール属性を追加し、その属性を使用してロールエントリー内のメンバーを自動的に識別します。
ロールを使用すると、次の方法でユーザーを整理できます。
- ロールメンバーを明示的にリストします。ロールを表示すると、このロールのメンバーの完全なリストが表示されます。ロールをクエリーしてメンバーシップを確認することができますが、これは動的グループでは不可能です。
-
エントリーがどのロールに属しているかを表示します。エントリーを表示すると、エントリーが属するロールを確認できます。これは、Directory Server がエントリー内の属性によってロールのメンバーシップを決定するためです。これはグループの
memberOf属性に似ていますが、唯一の違いは、この機能が動作するためにプラグインインスタンスを有効にしたり設定したりする必要がないことです。 - 適切なロールを割り当てます。Directory Server は、ロールではなくエントリーを通じてロールメンバーシップを割り当てます。したがって、エントリーを編集するだけで、ユーザーが属するロールを 1 つの手順で簡単に割り当てたり削除したりできます。
管理対象ロールでは、静的グループで実行できるすべての操作を実行できます。動的グループによるフィルタリングと同様に、フィルタリングされたロールを使用してロールメンバーをフィルタリングできます。ロールは実装の柔軟性が高く、クライアントの複雑さが軽減されるため、グループよりも使いやすくなっています。
ロールタイプを使用して、メンバーを明示的または動的に指定できます。Directory Server は、以下のタイプのロールをサポートします。
- 管理対象ロール
- 管理対象ロールにはメンバーの明示的なリストがあります。
- フィルター設定ロール
- エントリーにロールで定義された特定の属性がある場合、Directory Server はエントリーをフィルタリングされたロールに割り当てます。ロール定義は、ターゲット属性の LDAP フィルターを指定します。フィルターに一致するエントリーは、ロールを持ちます (ロールのメンバーです)。
- ネストされたロール
- ネストされたロールは、他のロールが含まれるロールです。
1 回の操作でエントリーのグループ全体をアクティブ化または非アクティブ化できます。ロールのメンバーが属するロールを非アクティブ化することで、そのメンバーを一時的に無効にすることができます。
ロールを非アクティブ化しても、ユーザーはロールエントリーを使用してサーバーにバインドできます。ただし、ユーザーはこのロールに属するエントリーのいずれかを使用してサーバーにバインドすることはできません。非アクティブ化されたロールに属するエントリーでは、nsAccountLock 属性が true に設定されています。
ネストされたロールを非アクティブ化すると、ネストされたロール内のいずれかのロールのメンバーであるユーザーは、サーバーにバインドできなくなります。ネストされたロールの直接または間接のメンバーであるロールに属するすべてのエントリーでは、nsAccountLock が true に設定されています。ネストされたロールをネスト内の任意の時点で非アクティブ化すると、その下のすべてのロールとユーザーが非アクティブ化されます。
4.3.3. ロールとグループの使い分け リンクのコピーリンクがクリップボードにコピーされました!
ロールとグループは同じ目標を達成することができます。管理対象ロールは、静的グループができることをすべて行うことができ、フィルタリングされたロールは、動的グループのようにメンバーをフィルタリングして識別することができます。ロールとグループの両方に、メリットとデメリットがあります。ロールを使用するか、グループを使用するか、あるいはその両方を使用するかは、要件とサーバーリソースのバランスによって決まります。
ロールによりクライアント側の複雑さが軽減されます。ロールを使用すると、クライアントアプリケーションはエントリー内の nsRole 操作属性を検索することでロールのメンバーシップを確認できます。この複数値属性は、エントリーが属するすべてのロールを識別します。クライアントアプリケーションの観点からは、メンバーシップを確認する方法は統一されており、サーバー側で実行されます。
ただし、ロールによってサーバーの複雑さが増します。サーバーがクライアントアプリケーションに対して機能するため、Directory Server ではロールの評価がグループを評価するよりもリソース集約されます。
グループを効果的に使用するには、よりスマートで複雑なクライアントが必要です。たとえば、ダイナミックグループは、アプリケーションの観点から見ると、グループメンバーのリストを提供するサーバーからのサポートを提供しません。代わりに、アプリケーションはグループ定義を取得してから、フィルターを実行します。適切なプラグインを設定する場合にのみ、ユーザーエントリーにグループメンバーシップ情報が含まれます。
MemberOf プラグインを使用して、グループメンバーシップをバランスよく管理できます。MemberOf プラグインは、ユーザーがグループに追加されるたびに、ユーザーエントリーに memberOf 属性を動的に作成します。クライアントは、グループエントリーを 1 回検索することで、そのグループのすべてのメンバーのリストを取得できます。ユーザーエントリーを 1 回検索することで、そのユーザーが属するすべてのグループの完全なリストを取得できます。
サーバーには、メンバーシップが変更されたときにのみメンテナンスのオーバーヘッドが発生します。Directory Server は指定された member (グループ) 属性と memberOf (ユーザー) 属性の両方をデータベースに保存するため、検索に追加の処理は必要なく、クライアントからの検索が非常に効率的になります。