4.3. LDAP 登录模块


短名称 :Ldap

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

父名称???:UsernamePassword Login Module

Ldap 登录模块是一种登录模块实施,可根据 LDAP 服务器进行身份验证。security 子系统使用连接信息(一个 java.naming.security.principal) 连接到 LDAP 服务器,它具有权限搜索 baseCtxDNrolesCtxDN 树(通过 JNDI 初始上下文提供)。用户尝试验证时,Ldap 登录模块连接到 LDAP 服务器,并将用户的凭据传递给 LDAP 服务器。

这些凭据通过串联 main DNPrefix、用户输入和 main DNSuffix 组成。例如,请考虑以下情景:

  1. principalDNPrefix 设置为 uid=
  2. principalDNSuffix 设置为 ,ou=People,dc=jboss,dc=org

如果用户输入设置为 jduke,则搜索字符串为 uid=jduke,ou=People,dc=jboss,dc=org。如果用户输入为 jduke,ou=Employants, 则搜索字符串应为 uid=jduke,ou=Employude,ou=People,dc=jboss,dc=org

重要

任何用户输入都会在执行搜索前转换为字符串。因此,任何特殊字符(如逗号)都必须被转义,搜索才能成功运行。

身份验证成功后,会在 JBoss EAP 中为该用户创建 InitialLDAPContext,填充有该用户的角色。

Expand
表 4.2. LDAP 登录模块选项
选项类型默认值描述

principalDNPrefix

字符串

 

添加到用户名中的前缀以构成用户 DN。您可以使用 principal DNPrefixprincipalDNSuffix 提示用户输入用户名并构建完全限定的 DN。

principalDNSuffix

字符串

 

添加至用户名的后缀,组成用户 DN。您可以使用 principal DNPrefixprincipalDNSuffix 提示用户输入用户名并构建完全限定的 DN。

rolesCtxDN

完全限定 DN

none

用于搜索用户角色的上下文的完全限定 DN。

userRolesCtxDNAttributeName

attribute

none

user 对象中的 属性,其中包含用于搜索用户角色的上下文的 DN。这与 rolesCtxDN 不同,因为搜索用户角色的上下文可能为每个用户唯一。

roleAttributeID

attribute

角色

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

roleAttributeIsDN

true or false

false

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

roleNameAttributeID

attribute

name

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

uidAttributeID

attribute

UID

与用户 ID 对应的 UserRolesAttributeDN 中的属性名称。这用于查找用户角色。

matchOnUserDN

true or false

false

搜索用户角色是否应与用户完全区分的 DN 或用户名匹配。如果为 true,则完整用户 DN 将用作匹配值。如果为 false,则只有用户名用作对 uidAttributeName 属性的匹配值。

allowEmptyPasswords

true or false

false

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

searchTimeLimit

整数

10000 或 10 秒

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

searchScope

其中之一: OBJECT_SCOPEONELEVEL_SCOPESUBTREE_SCOPE

SUBTREE_SCOPE

要使用的搜索范围。

jaasSecurityDomain

字符串

none

JaasSecurityDomain 的 JMX ObjectName,用于解密 java.naming.security.credentials。加密形式的密码由 解码64(String) 方法返回,该方法在此选项中传递的对象上调用。

注意

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

注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat