4.4. LdapExtended Login Module
短名称 :LdapExtended
全名 : org.jboss.security.auth.spi.LdapExtLoginModule
父名称???:UsernamePassword Login Module
LdapExtended 登录
模块将搜索要绑定的用户以及相关的角色以进行身份验证。角色以递归方式查询 DN,以浏览分层角色结构。登录模块选项包括所选 LDAP JNDI 提供商支持的任何选项。
身份验证以两个步骤进行:
-
使用 bindDN 和 bindCredential 选项实现到 LDAP 服务器的初始绑定。
bindDN
是一个 LDAP 用户,能够同时搜索baseCtxDN
和rolesCtxDN
树以用户和角色搜索。要使用baseFilter
属性指定的过滤器查询要对其进行身份验证的用户 DN。 - 生成的用户 DN 通过将用户 DN 作为主体名称绑定至 LDAP 服务器来验证,回调处理程序获得的密码是主体的凭据。
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
baseCtxDN | 完全限定 DN | none | 顶级上下文的固定 DN,用于开始用户搜索。 |
bindCredential | 字符串,可选加密 | none | 用于存储 DN 的凭据。 |
bindDN | 完全限定 DN | none |
用于绑定用户和角色查询的 LDAP 服务器的 DN。此 DN 需要 |
baseFilter | LDAP 过滤器字符串 | none |
用于查找要进行身份验证的用户上下文的搜索过滤器。从登录模块回调获取的输入 |
jaasSecurityDomain | 字符串 | none |
|
rolesCtxDN | 完全限定 DN | none | 用于搜索用户角色的上下文的固定 DN。这不是实际角色所在的 DN,而是包含用户角色的对象的 DN。例如,在 Microsoft Active Directory 服务器中,这是用户帐户所在的 DN。 |
roleFilter | LDAP 过滤器字符串 | none |
个搜索过滤器,用于查找与经过身份验证的用户关联的角色。从登录模块回调获取的输入 |
roleAttributeID | attribute | role | 包含用户角色的属性名称。 |
roleAttributeIsDN | true or false | false |
|
defaultRole | 角色名称 | none | 为所有经过身份验证的用户包含角色 |
parseRoleNameFromDN | true or false | false |
指示查询返回的 DN 是否包含 |
parseUsername | true or false | false |
指示是否为 |
usernameBeginString | 字符串 | none |
定义要从 DN 开头删除的字符串,以显示用户名。这个选项与 |
usernameEndString | 字符串 | none |
定义要从 DN 末尾移除的字符串以显示 |
roleNameAttributeID | attribute | name |
|
distinguishedNameAttribute | attribute | distinguishedName | 包含用户的 DN 的用户条目中的属性名称。如果用户本身的 DN 包含特殊字符(例如,反斜杠),这可能会有必要,从而妨碍正确的用户映射。如果 属性不存在,则使用条目的 DN。 |
roleRecursion | 整数 | 0 | 角色搜索的递归级别数将低于匹配的上下文。通过将此设置为 0 来禁用递归。 |
searchTimeLimit | 整数 | 10000 或 10 秒 | 用户或角色搜索的超时时间(毫秒)。 |
searchScope |
其中之一: |
| 要使用的搜索范围。 |
allowEmptyPasswords | true or false | false |
是否允许空密码。大多数 LDAP 服务器将空密码视为匿名登录尝试。要拒绝空密码,请将其设置为 |
referralUserAttributeIDToCheck | attribute | none |
如果不使用引用,可以忽略这个选项。使用引用时,如果角色对象在引用内,此选项表示包含为特定角色定义的用户的属性名称,如 |
有关连接到 LDAP 服务器和创建初始上下文相关的其他 LDAP 上下文属性的详情,请参考 LDAP 连接选项。
虽然此登录模块确实从其父进程 UsernamePassword Login Module 继承 ignorePasswordCase 选项,但它不会由这一特定登录模块使用。
当您使用带有 跨Ref
对象的 Microsoft Active Directory 创建引用时,您应该考虑 LDAP 登录模块仅为 baseCtxDN
使用一个值,并且只有一个值用于 rolesCtxDN
。因此,初始用户和角色应存储在一个 Microsoft Active Directory 域中,以适应使用 LDAP 引用的可能性。