|
此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Security 7.0.4! |
LDAP 命名空间选项
Spring LDAP 的实现使用了大量 Spring LDAP 项目中的 API,因此对该项目的 API 稍有了解可能会有所帮助。
使用以下定义 LDAP 服务器
<ldap-server> 元素
此元素用于配置 Spring LDAP ContextSource,供其他 LDAP Bean 使用,定义 LDAP 服务器的位置以及其他连接信息(例如用户名和密码,如果服务器不允许匿名访问)。
它还可用于创建嵌入式服务器以进行测试。
两种选项的语法细节将在 LDAP 章节中介绍。
实际的 ContextSource 实现是 DefaultSpringSecurityContextSource,它扩展了 Spring LDAP 的 LdapContextSource 类。
manager-dn 和 manager-password 属性分别映射到后者的 userDn 和 password 属性。
如果您的应用程序上下文中只定义了一个服务器,那么其他由LDAP命名空间定义的bean将自动使用它。
否则,您可以给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
用户名(DN)标识“manager”用户身份,将用于验证一个(非嵌入式)LDAP服务器。
如果省略,则将使用匿名访问。
-
manager-password
管理员DN的密码。 如果指定了管理员 DN,则必需提供此参数。
-
端口 指定一个IP端口号。 用于配置嵌入式LDAP服务器等。 默认值是33389。
-
根节点 可选的嵌入LDAP服务器根后缀。 默认值是 "dc=springframework,dc=org"
-
url 指定不使用嵌入式 LDAP 服务器时的 LDAP 服务器 URL。
<ldap-authentication-provider>
此元素是创建一个LdapAuthenticationProvider实例的快捷方式。
默认情况下,它将配置为使用一个BindAuthenticator实例和一个DefaultAuthoritiesPopulator。
与其他命名空间认证提供者一样,它必须作为authentication-provider元素的子元素包括在内。
<ldap-authentication-provider> 属性
-
组角色属性 包含将在 Spring Security 中使用的角色名称的 LDAP 属性名称。 映射到
DefaultLdapAuthoritiesPopulator的groupRoleAttribute属性。 默认值为 \"cn\"。
-
group-search-base
组成员资格搜索的基础DN。 映射到DefaultLdapAuthoritiesPopulator的groupSearchBase构造参数。
默认值为""(从根节点进行搜索)。
-
group-search-filter
组搜索过滤器。
映射到DefaultLdapAuthoritiesPopulator的groupSearchFilter属性。
默认值为(uniqueMember={0})。该替换参数是用户的DN(Distinguished Name)。
-
角色前缀
一个非空字符串前缀,将在从持久化加载的角色字符串前面添加。
对应于DefaultLdapAuthoritiesPopulator'srolePrefix属性。
默认值为
-
server-ref
可选的服务器。如果未指定,并且已注册默认LDAP服务器(通过<ldap-server>标签没有ID),则将使用该服务器。
-
user-context-mapper-ref 允许通过指定一个UserDetailsContextMapper Bean来显式地自定义加载的用户对象,该Bean将被调用以处理用户的目录条目中的上下文信息
-
user-details-class
允许指定用户条目的对象类。如果设置,框架将尝试加载定义的类的标准属性到返回的UserDetails对象中。
-
user-dn-pattern 如果您的用户在目录中有一个固定的位置(即,您可以直接从用户名推断出DN而无需进行目录搜索),可以使用此属性将用户名直接映射到DN。 它直接映射到
userDnPatterns的AbstractLdapAuthenticator属性。 值是一个特定模式用于构建用户的DN,例如uid={0},ou=people。 键{0}必须存在,并且将被用户名替换。
-
user-search-base
用户搜索的基础DN。 默认为空字符串。 仅在使用'user-search-filter'时有效。如果需要执行搜索以在目录中定位用户,则可以设置这些属性来控制搜索。
BindAuthenticator将配置为FilterBasedLdapUserSearch,并且属性值将直接映射到该 bean 构造函数的第一个和第二个参数。 如果没有设置这些属性且未提供替代的user-dn-pattern,则将使用默认搜索值user-search-filter="(uid={0})"和user-search-base=""。
-
用户搜索过滤器
用于搜索用户的 LDAP 过滤器(可选)。例如(uid={0})。替换参数是用户的登录名。如果需要执行搜索以在目录中定位用户,则可以设置这些属性来控制搜索。
BindAuthenticator将配置为FilterBasedLdapUserSearch,并且属性值将直接映射到该 bean 构造函数的第一个和第二个参数。 如果没有设置这些属性且未提供替代的user-dn-pattern,则将使用默认搜索值user-search-filter="(uid={0})"和user-search-base=""。
<password-compare>
<ldap-user-service>
此元素配置一个LDAP UserDetailsService。
该类使用的是 LdapUserDetailsService,它是由 FilterBasedLdapUserSearch 和 DefaultLdapAuthoritiesPopulator 组合而成的。
它支持的属性与在 <ldap-provider> 中相同。
<ldap-user-service> 属性
-
cache-ref 定义一个用于UserDetailsService的缓存引用。
-
group-role-attribute LDAP属性名称,其中包含将在Spring Security中使用的角色名称。默认值为"cn"。
-
group-search-base
组成员资格搜索的基础 DN。
默认为空字符串(从根节点开始搜索)。
-
group-search-filter 组搜索过滤器。 默认值为
(uniqueMember={0})。 替换参数是用户的DN( distinguished name)。
-
id
一个bean标识符,用于在上下文中其他地方引用该bean。
-
role-prefix
一个非空字符串前缀,将在从持久存储加载的角色字符串前面添加(例如,“ROLE_”)。 如果默认值是非空的且不需要前缀,则使用“none”。
-
server-ref
可选的服务器。如果未指定,并且已注册默认LDAP服务器(通过<ldap-server>标签没有ID),则将使用该服务器。
-
user-context-mapper-ref 允许通过指定一个UserDetailsContextMapper Bean来显式地自定义加载的用户对象,该Bean将被调用以处理用户的目录条目中的上下文信息
-
user-details-class
允许指定用户条目的对象类。如果设置,框架将尝试加载定义的类的标准属性到返回的UserDetails对象中。
-
user-search-base
用户搜索的基础DN。 默认为空字符串。 仅在使用'user-search-filter'时有效。
-
用户搜索过滤器
用于搜索用户的 LDAP 过滤器(可选)。例如(uid={0})。替换参数是用户的登录名。