6.9.7. LDAP での承認とグループローディング
memberOf 属性を介して所属するグループをマッピングでき、グループエンティティーは uniqueMember 属性を介して所属するユーザーをマッピングできます。または、両方のマッピングは LDAP サーバーで維持できます。
force 属性が "false" に設定されている場合の承認クエリー時に再利用されます。force が true の場合、承認中に検索が再度実行されます(グループのロード中)。これは通常、異なるサーバーが認証および承認を実行すると実行されます。
force 属性です。これは、デフォルト値の false に設定されていても必要になります。
username-to-dn
username-to-dn 要素は、ユーザー名を LDAP ディレクトリー内のエントリーの識別名にマップする方法を指定します。この要素は、どちら も true の場合にのみ必要です。
- 認証および承認の手順は、異なる LDAP サーバーに対して行われます。
- グループ検索が識別名を使用する。
- 1:1 username-to-dn
リモートユーザーが入力するユーザー名がユーザーの識別名であることを指定します。
<username-to-dn force="false"> <username-is-dn /> </username-to-dn>
<username-to-dn force="false"> <username-is-dn /> </username-to-dn>Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより 1:1 マッピングが定義され、追加設定はありません。
- username-filter
次のオプションは、認証手順の上記で説明した簡単なオプションと非常に似ています。指定された属性で、指定のユーザー名に対して一致するものが検索されます。
<username-to-dn force="true"> <username-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" attribute="sn" user-dn-attribute="dn" /> </username-to-dn><username-to-dn force="true"> <username-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" attribute="sn" user-dn-attribute="dn" /> </username-to-dn>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定可能な属性は次のとおりです。
-
base-dn: 検索を開始するコンテキストの識別名。 -
recursive: 検索がコンテキストのサブコンテキストを拡張するかどうか。デフォルトはfalseです。 -
attribute: 入力したユーザー名と照合するユーザーエントリーの属性。デフォルトはuidです。 -
user-dn-attribute: ユーザーの識別名を取得するために読み込む属性です。デフォルトは5です。
-
- advanced-filter
詳細フィルターを指定するオプションです。認証セクションでは、カスタムフィルターを使用してユーザーの識別名を見つけられます。
<username-to-dn force="true"> <advanced-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" filter="sAMAccountName={0}" user-dn-attribute="dn" /> </username-to-dn><username-to-dn force="true"> <advanced-filter base-dn="dc=people,dc=harold,dc=example,dc=com" recursive="false" filter="sAMAccountName={0}" user-dn-attribute="dn" /> </username-to-dn>Copy to Clipboard Copied! Toggle word wrap Toggle overflow username-filter の例と同じ属性は、意味とデフォルト値も同じです。新たな属性があります。
-
filter: ユーザーのエントリーの検索に使用するカスタムフィルター。ユーザー名は{0} の場所に置き換えられます。
重要フィルターの定義後も XML が有効である必要があるため、
&などの特殊文字を使用する場合には、適切な形式が使用されるようにします。たとえば、&文字の&です。-
グループ検索
グループメンバーシップ情報の検索時に使用できるスタイルは 2 つあります。最初のスタイルは、ユーザーのエントリーに、ユーザーがメンバーであるグループを参照する属性が含まれる場所です。2 つ目のスタイルは、グループにユーザーエントリーを参照する属性が含まれる場所です。
使用するスタイルを選択する場合、Red Hat では、グループを参照するユーザーエントリーの設定を使用することを推奨します。これは、検索を実行せずに既知の識別名の属性を読み取ることで、グループ情報をロードできるからです。他のアプローチでは、ユーザーを参照するグループを特定するための大規模な検索が必要です。
設定を記述する前に、LDIF の例を見てみましょう。
例6.1 LDIF の例: プリンシパルからグループ
この例では、GroupOne に所属するユーザー TestUserOne があり、 は GroupOne GroupFive のメンバーになります。グループメンバーシップは、ユーザー(またはグループ)がメンバーであるグループの識別名に設定された memberOf 属性を使用すると表示されます。
ここには示されていませんが、ユーザーが直接メンバーであるグループごとに 1 つずつ、複数の memberOf 属性を設定することは可能です。
例6.2 LDIF の例: グループからプリンシパル
この例では、GroupOne のメンバーである同じユーザー TestUserOne を示しています。これは GroupFive のメンバーですが、この例ではグループから相互参照に使用されるユーザーに uniqueMember 属性になります。
ここでも、グループメンバーシップの相互参照に使用される属性は繰り返すことができます。GroupFive を確認すると、ここに表示されない別のユーザー TestUserFive への参照もあります。
一般的なグループ検索
前述の 2 つの方法の例を確認する前に、両方の方法に共通する属性を定義する必要があります。
<group-search group-name="..." iterative="..." group-dn-attribute="..." group-name-attribute="..." >
...
</group-search>
<group-search group-name="..." iterative="..." group-dn-attribute="..." group-name-attribute="..." >
...
</group-search>
-
group-name: この属性は、ユーザーがメンバーであるグループの一覧として返されるグループ名に使用するフォームを指定するために使用されます。これは、グループ名の単純な形式か、グループの識別名のいずれかになります。識別名が必要な場合は、この属性をDISTINGUISHED_NAMEに設定できます。デフォルトはSIMPLEです。 -
iterative: この属性は、ユーザーが所属するグループを特定した後に、グループをもとに繰り返し検索を行い、グループに所属するグループを特定します。反復検索が有効な場合は、他のグループやサイクルが検出されると、メンバーではないグループに到達するまで継続されます。デフォルトはfalseです。
同時グループメンバーシップは問題ではありません。各検索の記録は、すでに検索されているグループが再度検索されないように保持されます。
繰り返し検索を行うには、グループエントリーがユーザーエントリーと同じものを見える必要があります。ユーザーがメンバーとなっているグループを識別するのに使用するのと同じアプローチを使用して、グループがメンバーとなっているグループを特定します。これは、グループのグループメンバーシップが相互参照に使用される属性の名前が変更されたり、参照の方向が変更された場合に実行できません。
-
group-dn-attribute: 属性が識別名であるグループのエントリー。デフォルトは5です。 -
group-name-attribute: 属性が簡単な名前であるグループのエントリー。デフォルトはuidです。
例6.3 プリンシパルからグループへの設定例
上からの LDIF の例を基に、ユーザーのグループを繰り返しロードする設定の例は次のとおりです。相互参照に使用される属性はユーザーの memberOf 属性です。
この設定で最も重要なことは、principal-to-group 要素が単一の属性で追加されていることです。
-
group-attribute: ユーザーがメンバーであるグループの識別名と一致するユーザーエントリーの属性名。デフォルトはmemberOfです。
例6.4 グループからプリンシパルへの設定例
この例は、前述のグループからプリンシパルへの LDIF の例に対する繰り返し検索を示しています。
ここでは、要素 group-to-principal が追加されます。この要素は、ユーザーエントリーを参照するグループの検索方法を定義するために使用されます。以下の属性が設定されます。
-
base-dn: 検索を開始するために使用するコンテキストの識別名。 -
recursive: サブコンテキストも検索されるかどうか。デフォルトはfalseです。 -
search-by: 検索で使用するロール名の形式。有効な値はSIMPLEおよびDISTINGUISHED_NAMEです。デフォルトはDISTINGUISHED_NAMEです。
group-to-principal 要素には、相互参照を定義する membership-filter 要素があります。
-
principal-attribute: ユーザーエントリーを参照するグループエントリーの属性の名前。デフォルトはmemberです。