LDAP 名前空間オプション
LDAP 実装は Spring LDAP を広範囲に使用するため、そのプロジェクトの API にある程度精通していると役立つ場合があります。
LDAP サーバーの定義
<ldap-server>
要素この要素は、他の LDAP Bean が使用する Spring LDAP ContextSource
をセットアップし、LDAP サーバーの場所と、接続するためのその他の情報(匿名アクセスを許可しない場合はユーザー名とパスワードなど)を定義します。また、テスト用の組み込みサーバーの作成にも使用できます。両方のオプションの構文の詳細は、LDAP の章で説明されています。実際の ContextSource
実装は、Spring LDAP の LdapContextSource
クラスを継承する DefaultSpringSecurityContextSource
です。manager-dn
および manager-password
属性は、後者の userDn
および password
プロパティにそれぞれマッピングされます。
アプリケーションコンテキストで 1 つのサーバーのみが定義されている場合、他の LDAP 名前空間で定義された Bean はそれを自動的に使用します。それ以外の場合は、要素に "id" 属性を与え、server-ref
属性を使用して他のネームスペース Bean からそれを参照できます。他の従来の Spring Bean で使用する場合、これは実際には ContextSource
インスタンスの Bean id
です。
<ldap-server> の属性
mode 使用する組み込み LDAP サーバーを明示的に指定します。値は
apacheds
およびunboundid
です。デフォルトでは、ライブラリがクラスパスで利用可能かどうかに依存します。
id Bean 識別子。コンテキストの他の場所で Bean を参照するために使用されます。
ldif 組み込み LDAP サーバーにロードする ldif ファイルリソースを明示的に指定します。ldif は Spring リソースパターン(つまり、classpath:init.ldif)でなければなりません。デフォルトは classpath *:*.ldif です
manager-dn (埋め込みでない)LDAP サーバーへの認証に使用される「マネージャー」ユーザー ID のユーザー名(DN)。省略すると、匿名アクセスが使用されます。
manager-password マネージャー DN のパスワード。manager-dn が指定されている場合、これは必須です。
port IP ポート番号を指定します。たとえば、組み込み LDAP サーバーの構成に使用されます。デフォルト値は 33389 です。
root 組み込み LDAP サーバーのオプションのルートサフィックス。デフォルトは "dc=springframework,dc=org" です
url 組み込み LDAP サーバーを使用しない場合、LDAP サーバーの URL を指定します。
<ldap-authentication-provider>
この要素は、LdapAuthenticationProvider
インスタンスの作成の略記です。デフォルトでは、これは BindAuthenticator
インスタンスと DefaultAuthoritiesPopulator
で構成されます。すべての名前空間認証プロバイダーと同様に、authentication-provider
要素の子として含める必要があります。
<ldap-authentication-provider> の属性
group-role-attribute Spring Security 内で使用されるロール名を含む LDAP 属性名。
DefaultLdapAuthoritiesPopulator
のgroupRoleAttribute
プロパティにマップします。デフォルトは "cn" です。
group-search-base グループメンバーシップ検索の検索ベース。
DefaultLdapAuthoritiesPopulator
のgroupSearchBase
コンストラクター引数にマップします。デフォルトは ""(ルートから検索)です。
group-search-filter グループ検索フィルター。
DefaultLdapAuthoritiesPopulator
のgroupSearchFilter
プロパティにマップします。デフォルトは(uniqueMember={0})
です。置換パラメーターは、ユーザーの DN です。
role-prefix 永続からロードされたロール文字列に追加される空でない文字列プレフィックス。
DefaultLdapAuthoritiesPopulator
のrolePrefix
プロパティにマップします。デフォルトは "ROLE_" です。デフォルトが空でない場合は、プレフィックスなしの値 "none" を使用します。
server-ref 使用するオプションのサーバー。省略すると、デフォルトの LDAP サーバーが登録され(ID なしで <ldap-server> を使用)、そのサーバーが使用されます。
user-context-mapper-ref ユーザーのディレクトリエントリからのコンテキスト情報で呼び出される UserDetailsContextMapper Bean を指定することにより、ロードされたユーザーオブジェクトの明示的なカスタマイズを許可
user-details-class ユーザーエントリの objectClass を指定できます。設定されている場合、フレームワークは、返された UserDetails オブジェクトに定義されたクラスの標準属性をロードしようとします。
user-dn-pattern ユーザーがディレクトリ内の固定された場所にいる場合(つまり、ディレクトリ検索を行わずにユーザー名から DN を直接計算できる場合)、この属性を使用して DN に直接マッピングできます。
AbstractLdapAuthenticator
のuserDnPatterns
プロパティに直接マップします。値は、uid={0},ou=people
など、ユーザーの DN を構築するために使用される特定のパターンです。キー{0}
が存在する必要があり、ユーザー名に置き換えられます。
user-search-base ユーザー検索の検索ベース。デフォルトは "" です。"user-search-filter" でのみ使用されます。
ディレクトリ内でユーザーを見つけるために検索を実行する必要がある場合は、これらの属性を設定して検索を制御できます。
BindAuthenticator
はFilterBasedLdapUserSearch
で構成され、属性値はその Bean のコンストラクターの最初の 2 つの引数に直接マップされます。これらの属性が設定されておらず、代替としてuser-dn-pattern
が提供されていない場合、user-search-filter="(uid={0})"
およびuser-search-base=""
のデフォルトの検索値が使用されます。
user-search-filter ユーザーの検索に使用される LDAP フィルター(オプション)。たとえば、
(uid={0})
。置換パラメーターはユーザーのログイン名です。ディレクトリ内でユーザーを見つけるために検索を実行する必要がある場合は、これらの属性を設定して検索を制御できます。
BindAuthenticator
はFilterBasedLdapUserSearch
で構成され、属性値はその Bean のコンストラクターの最初の 2 つの引数に直接マップされます。これらの属性が設定されておらず、代替としてuser-dn-pattern
が提供されていない場合、user-search-filter="(uid={0})"
およびuser-search-base=""
のデフォルトの検索値が使用されます。
<password-compare>
これは、<ldap-provider>
の子要素として使用され、認証戦略を BindAuthenticator
から PasswordComparisonAuthenticator
に切り替えます。
<password-compare> の属性
hash ユーザーパスワードで使用されるハッシュアルゴリズムを定義します。MD4 は非常に弱いハッシュアルゴリズムであるため、MD4 の使用は強くお勧めします。
password-attribute ユーザーパスワードを格納するディレクトリ内の属性。デフォルトは "userPassword" です。
<ldap-user-service>
この要素は、LDAP UserDetailsService
を構成します。使用されるクラスは、FilterBasedLdapUserSearch
と DefaultLdapAuthoritiesPopulator
の組み合わせである LdapUserDetailsService
です。サポートする属性には、<ldap-provider>
と同じ使用箇所があります。
<ldap-user-service> の属性
cache-ref UserDetailsService で使用するキャッシュへの参照を定義します。
group-role-attribute Spring Security 内で使用されるロール名を含む LDAP 属性名。デフォルトは "cn" です。
group-search-base グループメンバーシップ検索の検索ベース。デフォルトは ""(ルートから検索)です。
group-search-filter グループ検索フィルター。デフォルトは
(uniqueMember={0})
です。置換パラメーターは、ユーザーの DN です。
id Bean 識別子。コンテキストの他の場所で Bean を参照するために使用されます。
role-prefix 永続ストレージからロードされたロール文字列に追加される空でない文字列プレフィックス( "ROLE_" など)。デフォルトが空でない場合は、プレフィックスなしの値 "none" を使用します。
server-ref 使用するオプションのサーバー。省略すると、デフォルトの LDAP サーバーが登録され(ID なしで <ldap-server> を使用)、そのサーバーが使用されます。
user-context-mapper-ref ユーザーのディレクトリエントリからのコンテキスト情報で呼び出される UserDetailsContextMapper Bean を指定することにより、ロードされたユーザーオブジェクトの明示的なカスタマイズを許可
user-details-class ユーザーエントリの objectClass を指定できます。設定されている場合、フレームワークは、返された UserDetails オブジェクトに定義されたクラスの標準属性をロードしようとします。
user-search-base ユーザー検索の検索ベース。デフォルトは "" です。"user-search-filter" でのみ使用されます。
user-search-filter ユーザーの検索に使用される LDAP フィルター(オプション)。たとえば、
(uid={0})
。置換パラメーターはユーザーのログイン名です。