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

LDAP 命名空间选项

LDAP 实现广泛使用 Spring LDAP,因此熟悉该项目的 API 可能会有所帮助。spring-doc.cadn.net.cn

使用

<ldap-server>元素 此元素设置 Spring LDAPContextSource供其他 LDAP bean 使用,定义 LDAP 服务器的位置和其他信息(例如用户名和密码,如果不允许匿名访问),以便连接到它。 它还可用于创建用于测试的嵌入式服务器。 LDAP 一章中介绍了这两个选项的语法的详细信息。 实际的ContextSourceimplementation 是DefaultSpringSecurityContextSource它扩展了 Spring LDAP 的LdapContextSource类。 这manager-dnmanager-passwordattributes 映射到后者的userDnpasswordproperties 分别。spring-doc.cadn.net.cn

如果在应用程序上下文中只定义了一个服务器,则其他 LDAP 名称空间定义的 bean 将自动使用它。 否则,你可以给元素一个 “id” 属性,并使用server-ref属性。 这实际上是 beanidContextSource例如,如果你想在其他传统的 Spring bean 中使用它。spring-doc.cadn.net.cn

<ldap-server> 属性

  • 模式显式指定应使用哪个嵌入式 ldap 服务器。值为apachedsunboundid.默认情况下,它将取决于库在 Classpath 中是否可用。spring-doc.cadn.net.cn

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

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

  • manager-password (管理员密码)管理器 DN 的密码。 如果指定了 manager-dn,则这是必需的。spring-doc.cadn.net.cn

  • 港口指定 IP 端口号。 例如,用于配置嵌入式 LDAP 服务器。 默认值为 33389。spring-doc.cadn.net.cn

  • 嵌入式 LDAP 服务器的可选 root 后缀。 默认值为“dc=springframework,dc=org”spring-doc.cadn.net.cn

<ldap-authentication-provider>

此元素是创建LdapAuthenticationProvider实例。 默认情况下,这将配置一个BindAuthenticatorinstance 和DefaultAuthoritiesPopulator. 与所有命名空间身份验证提供程序一样,它必须作为authentication-provider元素。spring-doc.cadn.net.cn

<ldap-authentication-provider 的父元素>

<ldap-authentication-provider> 属性

  • 组角色属性LDAP 属性名称,其中包含将在 Spring Security 中使用的角色名称。 映射到DefaultLdapAuthoritiesPopulatorgroupRoleAttribute财产。 默认为 “cn”。spring-doc.cadn.net.cn

  • 组搜索库搜索库 用于组成员资格搜索。 映射到DefaultLdapAuthoritiesPopulatorgroupSearchBaseconstructor 参数。 默认为 “” (从根开始搜索)。spring-doc.cadn.net.cn

  • 组搜索过滤器组搜索筛选器。 映射到DefaultLdapAuthoritiesPopulatorgroupSearchFilter财产。 默认为(uniqueMember={0}). 替换的参数是用户的 DN。spring-doc.cadn.net.cn

  • 角色前缀一个非空字符串前缀,将添加到从 persistent 加载的角色字符串中。 映射到DefaultLdapAuthoritiesPopulatorrolePrefix财产。 默认为 “ROLE_”。 在默认值为非空的情况下,使用值 “none” 表示无前缀。spring-doc.cadn.net.cn

  • 服务器引用要使用的可选服务器。 如果省略,并且注册了默认的 LDAP 服务器(使用 <ldap-server> 没有 Id),则将使用该服务器。spring-doc.cadn.net.cn

  • 用户上下文映射器引用允许通过指定UserDetailsContextMapper bean 来显式自定义加载的用户对象,该 bean 将使用用户目录条目中的上下文信息调用spring-doc.cadn.net.cn

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

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

  • 用户搜索库用户搜索的搜索库。 默认为 “”。 仅与 '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}). substituted 参数是用户的登录名。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>并将身份验证策略从BindAuthenticatorPasswordComparisonAuthenticator.spring-doc.cadn.net.cn

<password-compare> 的父元素

<password-compare> 属性

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

<password-compare> 的子元素

<ldap-user-service>

此元素配置 LDAPUserDetailsService. 使用的类是LdapUserDetailsService它是FilterBasedLdapUserSearch以及DefaultLdapAuthoritiesPopulator. 它支持的属性与<ldap-provider>.spring-doc.cadn.net.cn

<ldap-user-service> 属性

  • 组角色属性LDAP 属性名称,其中包含将在 Spring Security 中使用的角色名称。 默认为 “cn”。spring-doc.cadn.net.cn

  • 组搜索库搜索库 用于组成员资格搜索。 默认为 “” (从根开始搜索)。spring-doc.cadn.net.cn

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

  • 角色前缀一个非空字符串前缀,将添加到从持久化存储加载的角色字符串中(例如 “ROLE_”)。 在默认值为非空的情况下,使用值 “none” 表示无前缀。spring-doc.cadn.net.cn

  • 服务器引用要使用的可选服务器。 如果省略,并且注册了默认的 LDAP 服务器(使用 <ldap-server> 没有 Id),则将使用该服务器。spring-doc.cadn.net.cn

  • 用户上下文映射器引用允许通过指定UserDetailsContextMapper bean 来显式自定义加载的用户对象,该 bean 将使用用户目录条目中的上下文信息调用spring-doc.cadn.net.cn

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

  • 用户搜索库用户搜索的搜索库。 默认为 “”。 仅与 'user-search-filter' 一起使用。spring-doc.cadn.net.cn

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