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> の親要素

<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="" のデフォルトの検索値が使用されます。

<ldap-authentication-provider> の子要素

<password-compare>

これは、<ldap-provider> の子要素として使用され、認証戦略を BindAuthenticator から PasswordComparisonAuthenticator に切り替えます。

<password-compare> の親要素

<password-compare> の属性

  • hash ユーザーパスワードで使用されるハッシュアルゴリズムを定義します。MD4 は非常に弱いハッシュアルゴリズムであるため、MD4 の使用は強くお勧めします。

  • password-attribute ユーザーパスワードを含むディレクトリ内の属性。デフォルトは "userPassword" です。

<password-compare> の子要素

<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})。置換パラメーターはユーザーのログイン名です。