LDAP 命名空间选项

LDAP 实现广泛使用 Spring LDAP,因此熟悉该项目的 API 可能会有所帮助。

使用

<ldap-server> 元素定义 LDAP 服务器。此元素为其他 LDAP bean 设置 Spring LDAP ContextSource,定义 LDAP 服务器的位置和其他连接信息(例如用户名和密码,如果它不允许匿名访问)。它还可以用于创建嵌入式服务器进行测试。这两种选项的语法详细信息在 LDAP 章中介绍。实际的 ContextSource 实现是 DefaultSpringSecurityContextSource,它扩展了 Spring LDAP 的 LdapContextSource 类。manager-dnmanager-password 属性分别映射到后者的 userDnpassword 属性。

如果您的应用程序上下文中只定义了一个服务器,则其他由 LDAP 命名空间定义的 bean 将自动使用它。否则,您可以为该元素指定一个 "id" 属性,并使用 server-ref 属性从其他命名空间 bean 中引用它。这实际上是 ContextSource 实例的 bean id,如果您想在其他传统的 Spring bean 中使用它。

<ldap-server> 属性

  • mode 明确指定应使用哪个嵌入式 ldap 服务器。唯一支持的值是 unboundid。默认情况下,它将取决于库是否在类路径中可用。

  • id 一个 bean 标识符,用于在上下文中的其他地方引用该 bean。

  • ldif 明确指定要加载到嵌入式 LDAP 服务器的 ldif 文件资源。ldif 应该是一个 Spring 资源模式(即 classpath:init.ldif)。默认值是 classpath*:*.ldif

  • manager-dn 用于认证到(非嵌入式)LDAP 服务器的“管理器”用户身份的用户名 (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 属性名称。映射到 DefaultLdapAuthoritiesPopulatorgroupRoleAttribute 属性。默认为 "cn"。

  • group-search-base 组A成员搜索的搜索基。映射到 DefaultLdapAuthoritiesPopulatorgroupSearchBase 构造函数参数。默认为 ""(从根目录搜索)。

  • group-search-filter 组搜索过滤器。映射到 DefaultLdapAuthoritiesPopulatorgroupSearchFilter 属性。默认为 (uniqueMember={0})。替换参数是用户的 DN。

  • role-prefix 将添加到从持久化存储加载的角色字符串的非空字符串前缀。映射到 DefaultLdapAuthoritiesPopulatorrolePrefix 属性。默认为 "ROLE_"。在默认值非空的情况下,使用值 "none" 表示没有前缀。

  • server-ref 要使用的可选服务器。如果省略,并且已注册默认 LDAP 服务器(使用没有 Id 的 <ldap-server>),则将使用该服务器。

  • user-context-mapper-ref 允许通过指定一个 UserDetailsContextMapper bean 来显式自定义加载的用户对象,该 bean 将使用用户目录条目中的上下文信息进行调用。

  • user-details-class 允许指定用户条目的 objectClass。如果设置,框架将尝试将定义类的标准属性加载到返回的 UserDetails 对象中。

  • user-dn-pattern 如果您的用户在目录中的固定位置(即,您无需进行目录搜索即可直接从用户名中找出 DN),则可以使用此属性直接映射到 DN。它直接映射到 AbstractLdapAuthenticatoruserDnPatterns 属性。该值是用于构建用户 DN 的特定模式,例如 uid={0},ou=people。键 {0} 必须存在并将替换为用户名。

  • user-search-base 用户搜索的搜索基。默认为 ""。仅与 'user-search-filter' 一起使用。

    如果您需要执行搜索以在目录中定位用户,那么您可以设置这些属性来控制搜索。BindAuthenticator 将配置一个 FilterBasedLdapUserSearch,属性值直接映射到该 bean 构造函数的前两个参数。如果未设置这些属性并且未提供 user-dn-pattern 作为替代,则将使用默认搜索值 user-search-filter="(uid={0})"user-search-base=""

  • user-search-filter 用于搜索用户的 LDAP 过滤器(可选)。例如 (uid={0})。替换参数是用户的登录名。

    如果您需要执行搜索以在目录中定位用户,那么您可以设置这些属性来控制搜索。BindAuthenticator 将配置一个 FilterBasedLdapUserSearch,属性值直接映射到该 bean 构造函数的前两个参数。如果未设置这些属性并且未提供 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,因为它是一种非常弱的哈希算法。

  • password-attribute 目录中包含用户密码的属性。默认为 "userPassword"。

<password-compare> 的子元素

<ldap-user-service>

此元素配置一个 LDAP UserDetailsService。使用的类是 LdapUserDetailsService,它是 FilterBasedLdapUserSearchDefaultLdapAuthoritiesPopulator 的组合。它支持的属性与 <ldap-provider> 中的用法相同。

<ldap-user-service> 属性

  • cache-ref 定义对与 UserDetailsService 一起使用的缓存的引用。

  • group-role-attribute 包含将在 Spring Security 中使用的角色名称的 LDAP 属性名称。默认为 "cn"。

  • group-search-base 组A成员搜索的搜索基。默认为 ""(从根目录搜索)。

  • 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 来显式自定义加载的用户对象,该 bean 将使用用户目录条目中的上下文信息进行调用。

  • user-details-class 允许指定用户条目的 objectClass。如果设置,框架将尝试将定义类的标准属性加载到返回的 UserDetails 对象中。

  • user-search-base 用户搜索的搜索基。默认为 ""。仅与 'user-search-filter' 一起使用。

  • user-search-filter 用于搜索用户的 LDAP 过滤器(可选)。例如 (uid={0})。替换参数是用户的登录名。

© . This site is unofficial and not affiliated with VMware.