此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Security 7.0.4spring-doc.cadn.net.cn

LDAP 命名空间选项

Spring LDAP 的实现使用了大量 Spring LDAP 项目中的 API,因此对该项目的 API 稍有了解可能会有所帮助。spring-doc.cadn.net.cn

使用以下定义 LDAP 服务器

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

如果您的应用程序上下文中只定义了一个服务器,那么其他由LDAP命名空间定义的bean将自动使用它。 否则,您可以给元素添加一个"id"属性,并通过server-ref属性从其他命名空间bean中引用它。 如果您想在其他传统的Spring bean中使用它,则这是ContextSource实例的bean idspring-doc.cadn.net.cn

<ldap-server> 属性

  • 模式 Explicitly specifies which embedded ldap服务器应使用。唯一支持的值是unboundid。默认情况下,如果类路径中包含该库,则会使用它。spring-doc.cadn.net.cn

  • ldif
    明确指定要加载到嵌入式LDAP服务器的ldif文件资源。
    该ldif应为Spring资源模式(即classpath:init.ldif)。默认值为classpath*:*.ldif。spring-doc.cadn.net.cn

  • manager-dn
    用户名(DN)标识“manager”用户身份,将用于验证一个(非嵌入式)LDAP服务器。
    如果省略,则将使用匿名访问。spring-doc.cadn.net.cn

  • manager-password
    管理员DN的密码。 如果指定了管理员 DN,则必需提供此参数。spring-doc.cadn.net.cn

  • 端口 指定一个IP端口号。 用于配置嵌入式LDAP服务器等。 默认值是33389。spring-doc.cadn.net.cn

  • 根节点 可选的嵌入LDAP服务器根后缀。 默认值是 "dc=springframework,dc=org"spring-doc.cadn.net.cn

<ldap-authentication-provider>

此元素是创建一个LdapAuthenticationProvider实例的快捷方式。 默认情况下,它将配置为使用一个BindAuthenticator实例和一个DefaultAuthoritiesPopulator。 与其他命名空间认证提供者一样,它必须作为authentication-provider元素的子元素包括在内。spring-doc.cadn.net.cn

<ldap-authentication-provider>的父元素

<ldap-authentication-provider> 属性

  • 组角色属性 包含将在 Spring Security 中使用的角色名称的 LDAP 属性名称。 映射到 DefaultLdapAuthoritiesPopulatorgroupRoleAttribute 属性。 默认值为 \"cn\"。spring-doc.cadn.net.cn

  • group-search-base
    组成员资格搜索的基础DN。 映射到DefaultLdapAuthoritiesPopulatorgroupSearchBase构造参数。
    默认值为""(从根节点进行搜索)。spring-doc.cadn.net.cn

  • group-search-filter
    组搜索过滤器。
    映射到DefaultLdapAuthoritiesPopulatorgroupSearchFilter属性。
    默认值为(uniqueMember={0})。该替换参数是用户的DN(Distinguished Name)。spring-doc.cadn.net.cn

  • 角色前缀
    一个非空字符串前缀,将在从持久化加载的角色字符串前面添加。
    对应于 DefaultLdapAuthoritiesPopulator's rolePrefix 属性。
    默认值为spring-doc.cadn.net.cn

  • server-ref
    可选的服务器。如果未指定,并且已注册默认LDAP服务器(通过<ldap-server>标签没有ID),则将使用该服务器。spring-doc.cadn.net.cn

  • user-context-mapper-ref 允许通过指定一个UserDetailsContextMapper Bean来显式地自定义加载的用户对象,该Bean将被调用以处理用户的目录条目中的上下文信息spring-doc.cadn.net.cn

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

  • user-dn-pattern 如果您的用户在目录中有一个固定的位置(即,您可以直接从用户名推断出DN而无需进行目录搜索),可以使用此属性将用户名直接映射到DN。 它直接映射到userDnPatternsAbstractLdapAuthenticator属性。 值是一个特定模式用于构建用户的DN,例如uid={0},ou=people。 键{0}必须存在,并且将被用户名替换。spring-doc.cadn.net.cn

  • user-search-base
    用户搜索的基础DN。 默认为空字符串。 仅在使用'user-search-filter'时有效。spring-doc.cadn.net.cn

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

  • 用户搜索过滤器
    用于搜索用户的 LDAP 过滤器(可选)。例如 (uid={0})。替换参数是用户的登录名。spring-doc.cadn.net.cn

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

<ldap-authentication-provider> 的子元素

<password-compare>

这被用作<ldap-provider>的子元素,并将认证策略从BindAuthenticator切换到PasswordComparisonAuthenticatorspring-doc.cadn.net.cn

<password-compare> 属性

  • 哈希 定义用于用户密码的散列算法。我们强烈建议不要使用MD4,因为它是一个非常弱的散列算法。spring-doc.cadn.net.cn

<password-compare>的子元素

<ldap-user-service>

此元素配置一个LDAP UserDetailsService。 该类使用的是 LdapUserDetailsService,它是由 FilterBasedLdapUserSearchDefaultLdapAuthoritiesPopulator 组合而成的。 它支持的属性与在 <ldap-provider> 中相同。spring-doc.cadn.net.cn

<ldap-user-service> 属性

  • group-role-attribute LDAP属性名称,其中包含将在Spring Security中使用的角色名称。默认值为"cn"。spring-doc.cadn.net.cn

  • group-search-base
    组成员资格搜索的基础 DN。
    默认为空字符串(从根节点开始搜索)。spring-doc.cadn.net.cn

  • group-search-filter 组搜索过滤器。 默认值为 (uniqueMember={0})。 替换参数是用户的DN( distinguished name)。spring-doc.cadn.net.cn

  • role-prefix
    一个非空字符串前缀,将在从持久存储加载的角色字符串前面添加(例如,“ROLE_”)。 如果默认值是非空的且不需要前缀,则使用“none”。spring-doc.cadn.net.cn

  • server-ref
    可选的服务器。如果未指定,并且已注册默认LDAP服务器(通过<ldap-server>标签没有ID),则将使用该服务器。spring-doc.cadn.net.cn

  • user-context-mapper-ref 允许通过指定一个UserDetailsContextMapper Bean来显式地自定义加载的用户对象,该Bean将被调用以处理用户的目录条目中的上下文信息spring-doc.cadn.net.cn

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

  • user-search-base
    用户搜索的基础DN。 默认为空字符串。 仅在使用'user-search-filter'时有效。spring-doc.cadn.net.cn

  • 用户搜索过滤器
    用于搜索用户的 LDAP 过滤器(可选)。例如 (uid={0})。替换参数是用户的登录名。spring-doc.cadn.net.cn