4.3. LDAP 登录模块
短名称 :Ldap
全名 : org.jboss.security.auth.spi.LdapLoginModule
父名称???:UsernamePassword Login Module
Ldap
登录模块是一种登录模块实施,可根据 LDAP 服务器进行身份验证。security
子系统使用连接信息(一个 java.naming.security.principal)
连接到 LDAP 服务器,它具有权限搜索 baseCtxDN
和 rolesCtxDN
树(通过 JNDI 初始上下文提供)。用户尝试验证时,Ldap
登录模块连接到 LDAP 服务器,并将用户的凭据传递给 LDAP 服务器。
这些凭据通过串联 main DNPrefix
、用户输入和 main DNSuffix
组成。例如,请考虑以下情景:
-
principalDNPrefix
设置为uid=
。 -
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
,填充有该用户的角色。
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
principalDNPrefix | 字符串 |
添加到用户名中的前缀以构成用户 DN。您可以使用 principal | |
principalDNSuffix | 字符串 |
添加至用户名的后缀,组成用户 DN。您可以使用 principal | |
rolesCtxDN | 完全限定 DN | none | 用于搜索用户角色的上下文的完全限定 DN。 |
userRolesCtxDNAttributeName | attribute | none |
user 对象中的 属性,其中包含用于搜索用户角色的上下文的 DN。这与 |
roleAttributeID | attribute | 角色 | 包含用户角色的属性名称。 |
roleAttributeIsDN | true or false | false |
|
roleNameAttributeID | attribute | name |
|
uidAttributeID | attribute | UID |
与用户 ID 对应的 |
matchOnUserDN | true or false | false |
搜索用户角色是否应与用户完全区分的 DN 或用户名匹配。如果为 true,则完整用户 DN 将用作匹配值。如果为 false,则只有用户名用作对 |
allowEmptyPasswords | true or false | false | 是否允许空密码。大多数 LDAP 服务器将空密码视为匿名登录尝试。要拒绝空密码,请将其设置为 false。 |
searchTimeLimit | 整数 | 10000 或 10 秒 | 用户或角色搜索的超时时间(毫秒)。 |
searchScope |
其中之一: |
| 要使用的搜索范围。 |
jaasSecurityDomain | 字符串 | none |
|
有关连接到 LDAP 服务器和创建初始上下文相关的其他 LDAP 上下文属性的详情,请参考 LDAP 连接选项。
虽然此登录模块确实从其父进程 UsernamePassword Login Module 继承 ignorePasswordCase 选项,但它不会由这一特定登录模块使用。