4.4. LdapExtended Login Module


短名称 :LdapExtended

全名 : org.jboss.security.auth.spi.LdapExtLoginModule

父名称???:UsernamePassword Login Module

LdapExtended 登录 模块将搜索要绑定的用户以及相关的角色以进行身份验证。角色以递归方式查询 DN,以浏览分层角色结构。登录模块选项包括所选 LDAP JNDI 提供商支持的任何选项。

身份验证以两个步骤进行:

  1. 使用 bindDN 和 bindCredential 选项实现到 LDAP 服务器的初始绑定。bindDN 是一个 LDAP 用户,能够同时搜索 baseCtxDNrolesCtxDN 树以用户和角色搜索。要使用 baseFilter 属性指定的过滤器查询要对其进行身份验证的用户 DN。
  2. 生成的用户 DN 通过将用户 DN 作为主体名称绑定至 LDAP 服务器来验证,回调处理程序获得的密码是主体的凭据。
Expand
表 4.3. LdapExtended Login 模块选项
选项类型默认值描述

baseCtxDN

完全限定 DN

none

顶级上下文的固定 DN,用于开始用户搜索。

bindCredential

字符串,可选加密

none

用于存储 DN 的凭据。

bindDN

完全限定 DN

none

用于绑定用户和角色查询的 LDAP 服务器的 DN。此 DN 需要 baseCtxDN 和 rolesCtxDN 值的读取和搜索权限。

baseFilter

LDAP 过滤器字符串

none

用于查找要进行身份验证的用户上下文的搜索过滤器。从登录模块回调获取的输入 用户名userDN 替换到使用 {0} 表达式的任何位置的过滤器中。搜索过滤器的一个常见示例是 (uid={0})。

jaasSecurityDomain

字符串

none

JaasSecurityDomain 的 JMX ObjectName 用于解密密码。

rolesCtxDN

完全限定 DN

none

用于搜索用户角色的上下文的固定 DN。这不是实际角色所在的 DN,而是包含用户角色的对象的 DN。例如,在 Microsoft Active Directory 服务器中,这是用户帐户所在的 DN。

roleFilter

LDAP 过滤器字符串

none

个搜索过滤器,用于查找与经过身份验证的用户关联的角色。从登录模块回调获取的输入 用户名userDN 替换到使用 {0} 表达式的任何位置的过滤器中。经过身份验证的 userDN 被替换成任何使用 {1} 的过滤器。与输入用户名匹配的搜索过滤器示例为 (member={0})。与经过身份验证的 userDN 匹配的另一种方法是 (member={1})。

roleAttributeID

attribute

role

包含用户角色的属性名称。

roleAttributeIsDN

true or false

false

roleAttributeID 是否包含角色对象的完全限定 DN。如果为 false,则从上下文名称的 roleNameAttributeId 属性的值获取角色名称。某些目录架构(如 Microsoft Active Directory)要求将此属性设置为 true

defaultRole

角色名称

none

为所有经过身份验证的用户包含角色

parseRoleNameFromDN

true or false

false

指示查询返回的 DN 是否包含 roleNameAttributeID 的标志。如果设为 true,则为 roleNameAttributeID 检查 DN。如果设置为 false,则不检查 roleNameAttributeID 的 DN。此标志可以提高 LDAP 查询的性能。

parseUsername

true or false

false

指示是否为 用户名 解析 DN 的标志。如果设为 true,则会为用户名解析 DN。如果设置为 false,则不会为用户名解析 DN。这个选项与 usernameBeginString 和 usernameEndString 一起使用。

usernameBeginString

字符串

none

定义要从 DN 开头删除的字符串,以显示用户名。这个选项与 usernameEndString 一起使用,只有在 parseUsername 设为 true 时才会考虑。

usernameEndString

字符串

none

定义要从 DN 末尾移除的字符串以显示 用户名。这个选项与 usernameBeginString 一起使用,只有在 parseUsername 设为 true 时才会考虑。

roleNameAttributeID

attribute

name

roleCtxDN 上下文中的属性名称,该上下文中包含角色名称。如果 roleAttributeIsDN 属性设为 true,则此属性用于查找角色对象的 name 属性。

distinguishedNameAttribute

attribute

distinguishedName

包含用户的 DN 的用户条目中的属性名称。如果用户本身的 DN 包含特殊字符(例如,反斜杠),这可能会有必要,从而妨碍正确的用户映射。如果 属性不存在,则使用条目的 DN。

roleRecursion

整数

0

角色搜索的递归级别数将低于匹配的上下文。通过将此设置为 0 来禁用递归。

searchTimeLimit

整数

10000 或 10 秒

用户或角色搜索的超时时间(毫秒)。

searchScope

其中之一: OBJECT_SCOPEONELEVEL_SCOPESUBTREE_SCOPE

SUBTREE_SCOPE

要使用的搜索范围。

allowEmptyPasswords

true or false

false

是否允许空密码。大多数 LDAP 服务器将空密码视为匿名登录尝试。要拒绝空密码,请将其设置为 false

referralUserAttributeIDToCheck

attribute

none

如果不使用引用,可以忽略这个选项。使用引用时,如果角色对象在引用内,此选项表示包含为特定角色定义的用户的属性名称,如 成员。对照此属性名称的内容检查用户。如果未设置此选项,则检查将始终失败,因此角色对象无法存储在引用树中。

注意

有关连接到 LDAP 服务器和创建初始上下文相关的其他 LDAP 上下文属性的详情,请参考 LDAP 连接选项

注意

虽然此登录模块确实从其父进程 UsernamePassword Login Module 继承 ignorePasswordCase 选项,但它不会由这一特定登录模块使用。

注意

当您使用带有 跨Ref 对象的 Microsoft Active Directory 创建引用时,您应该考虑 LDAP 登录模块仅为 baseCtxDN 使用一个值,并且只有一个值用于 rolesCtxDN。因此,初始用户和角色应存储在一个 Microsoft Active Directory 域中,以适应使用 LDAP 引用的可能性。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat