附录 A. 参考
A.1. 包括的验证模块 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
JBoss EAP 6 包含了下面的验证模块。其中一些模块处理授权以及验证。它们通常含有
Code
名称里的 Role
。
当你配置这些模块时,请使用
Code
值或完整名称(软件包限定)来引用模块。
验证模块
代码 | 分类 | 描述 |
---|---|---|
客户端 | 分类 | 这个登录模块的目的是当 JBoss EAP 6 充当客户时建立调用者标识符和凭证。它不应该作为用于实际的服务器验证的安全域的一部分。 |
Remoting | N/A | Remoting 登录模块用于检查当前验证的的请求是否是从远程连接接收的,如果是则使用在验证过程中创建的标识符并和当前请求相关联。如果这个请求不是通过远程连接到达的,这个模块将不会做任何事情,并允许基于 JAAS 的登录继续,进入下一个模块。 |
RealmDirect | N/A | 如果当前的请求没有发生在 Remoting 登录模块里,RealmDirect 登录模块将使用安全区来进行验证,然后使用这个区来加载用户的角色。在默认情况下,这个等录模块假定要使用的区名为 ApplicationRealm,但也可以用其他名称覆盖。这个方法的好处是所有的存储配置都可以在区里完成,只需把安全域委托给安全区就可以了。 |
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
multi-threaded | true 或 false
| false
|
如果每个线程都有自己的 principal 和凭证存储,请将其设置为 true。false 则指定虚拟机里的所有线程都共享系统的标识符和凭证。
|
password-stacking
| useFirstPass 或 false
| false
|
设置为 useFirstPass 表示这个登录模块应该寻找存储在 LoginContext 里的信息以用作标识符。当堆积这个登录模块和其他模块时可以使用这个选项。
|
restore-login-identity
| true 或 false
| false
|
如果在 login() 方法的开始遇到的标识符和凭证在 logout() 被调用后要重新存储,请将其设置为 true。
|
代码 | Certificate
|
分类 | org.jboss.security.auth.spi.BaseCertLoginModule
|
描述 |
这个登录模块的目的是基于
X509 Certificates 验证用户。其中一个用例是 web 应用程序的 CLIENT-CERT 验证。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
securityDomain
| 串 |
无
|
具有持有信任证书的信任库的 JSSE 配置的安全域的名称。
|
verifier
| 分类 |
无
|
用户登录证书检验的
org.jboss.security.auth.certs.X509CertificateVerifier 的类名。
|
代码 | CertificateUsers
|
分类 | org.jboss.security.auth.spi.UsersRolesLoginModule
|
描述 |
使用属性资源。第一个映射用户名和密码,第二个映射用户名和角色。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
unauthenticatedIdentity
| 字符串 |
无
|
定义应该分配给不包含验证信息的请求的 principal 名称。这允许不受保护的 servlet 调用不要求专有角色的 EJB 上的方法。这样的 principal 没有关联的角色且只访问未设置安全性的 EJB 或者和
unchecked permission 约束关联的 EJB。
|
password-stacking
| useFirstPass 或 false
| false
|
设置为
useFirstPass 表示这个登录模块应该寻找存储在 LoginContext 里的信息以用作标识符。当堆积这个登录模块和其他模块时可以使用这个选项。
|
hashAlgorithm | 字符串 |
无
|
用于 hash 密码的
java.security.MessageDigest 算法的名称。这个选项没有默认值,你必须显性地设置它来启用哈希算法。当指定了哈希算法时,CallbackHandler 里包含的明文密码将在作为 inputPassword 参数传递给 UsernamePasswordLoginModule.validatePassword 前进行 hash。保存在 users.properties 文件里的密码必须进行同等的 hash。关于 java.security.MessageDigest 和这个类支持的算法的更多信息,请参考 http://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html。
|
hashEncoding
| base64 或 hex
| base64
|
如果设置了
hashAlgorithm ,哈希密码的字符串格式。
|
hashCharset
| 字符串 |
容器的环境里的默认编码集。
|
将明文密码转换为字节队列的编码。
|
usersProperties
|
属性文件或资源的全限定文件路径
| users.properties
|
包含用户和密码间映射的文件。这个文件里的每个属性的格式都是
username=password 。
|
rolesProperties
| 属性文件或资源的全限定文件路径 | roles.properties
|
包含用户和密码间角色的文件。这个文件里的每个属性的格式都是
username=role1,role2,...,roleN 。
|
ignorePasswordCase
| true 或 false
| false
|
密码的比较是否应该忽略大小写。当哈希密码不明显时这对于编码是很重要的。
|
principalClass
| 全限定类名。 |
无
|
包含一个将 String 参数用作 principal 名称的构造器的
Principal 实现类。
|
roleGroupSeparator
|
单个字符
| . (单一句号)
|
用来将用户名从
rolesGroup 文件里的角色组名里分离的字符。
|
defaultUsersProperties
| 串 | defaultUsers.properties
|
如果未找到 usersProperties 文件所使用的资源或文件的名称。
|
defaultRolesProperties
| 串 | defaultRoles.properties
|
如果未找到
rolesProperties 文件所使用的资源或文件的名称。
|
hashUserPassword
| true 或 false
| true
|
当指定了
hashAlgorithm 时是否 hash 用户输入的密码。默认为 true 。
|
hashStorePassword
| true 或 false
| true
|
当指定了
hashAlgorithm 时是否 hash 从 getUsersPassword() 返回的存储密码。
|
digestCallback
| 全限定类名。 |
无
|
包含 pre 或 post 摘要内容(如 salt 值)的
org.jboss.crypto.digest.DigestCallback 实现的类名。它只有在指定了 hashAlgorithm 时才被使用。
|
storeDigestCallback
| 全限定类名。 |
无
|
包含 pre 或 post 摘要内容(如哈希存储密码的 salt 值)的
org.jboss.crypto.digest.DigestCallback 实现的类名。它只有在 hashStorePassword 为 true 且指定了 hashAlgorithm 时才被使用。
|
callback.option.STRING
| 不同的 | 无 |
所有以
callback.option. 为前缀的选项都会传递给 DigestCallback.init(Map) 方法。收入用户名总是通过 javax.security.auth.login.name 选项传递的,而输入/存储密码是通过 digestCallback 或 storeDigestCallback 的 javax.security.auth.login.password 选项来传递的。
|
代码 | CertificateRoles
|
分类 | org.jboss.security.auth.spi.CertRolesLoginModule
|
描述 |
这个登录模块扩展了 Certificate 登录模块以从属性文件添加角色映射能力。它使用和 Certificate 登录模块相同的所有选项,并添加了如下选项。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
rolesProperties
| 字符串 | roles.properties
|
包含分配给每个用户的资源或文件的名称。角色属性文件里的格式必须是 username=role1,role2,其中 username 是证书的 DN,不包括任何
= (等号)和空格字符。下面的例子是正确的格式:
CN\=unit-tests-client,\ OU\=Red\ Hat\ Inc.,\ O\=Red\ Hat\ Inc.,\ ST\=North\ Carolina,\ C\=US=JBossAdmin
|
defaultRolesProperties
| 字符串 | defaultRoles.properties
|
如果未找到
rolesProperties 文件所使用的资源或文件的名称。
|
roleGroupSeparator
| 单个字符 | . (单一句号)
|
作为
roleProperties 文件里的角色组分隔符的字符。
|
代码 | Database |
分类 | org.jboss.security.auth.spi.DatabaseServerLoginModule
|
描述 |
支持验证和角色映射的基于 JDBC 的登录模块。这基于具有下列定义的两个逻辑表。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
dsJndiName
| JNDI 资源 |
无
|
保存验证信息的 JNDI 资源的名称。这个选项是必需的。
|
principalsQuery
| prepared SQL 语句 | select Password from Principals where PrincipalID=?
|
获取 principal 的信息的 prepared SQL 查询。
|
rolesQuery
| prepared SQL 语句 | select Role, RoleGroup from Roles where PrincipalID=?
|
获取角色信息的 prepared SQL 查询。它应该和
select Role, RoleGroup from Roles where PrincipalID=? 相等,这里的 Role 是角色名称而 RoleGroup 的值总是带有大写 R 的 Roles 或 CallerPrincipal 。
|
代码 | DatabaseCertificate
|
分类 | org.jboss.security.auth.spi.DatabaseCertLoginModule
|
描述 |
这个登录模块扩展了 Certificate 登录模块以从数据库表添加角色映射能力。它使用和 Certificate 登录模块相同的所有选项,并添加了如下选项。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
dsJndiName
| JNDI 资源 |
|
保存验证信息的 JNDI 资源的名称。这个选项是必需的。
|
rolesQuery
| prepared SQL 语句 | select Role,RoleGroup from Roles where PrincipalID=?
|
为了映射角色的 prepared SQL 语句。它应该和
select Role, RoleGroup from Roles where PrincipalID=? 相等,这里的 Role 是角色名称而 RoleGroup 的值总是带有大写 R 的 Roles 或 CallerPrincipal 。
|
suspendResume
| true 或 false
| true
|
在数据库操作期间现有的 JTA 事务是否应该被暂停。
|
代码 | Identity
|
分类 | org.jboss.security.auth.spi.IdentityLoginModule
|
描述 |
关联这个模块选项里指定的 principal 和任何针对这个模块验证的主题。所使用的 Principal 类的类型是
org.jboss.security.SimplePrincipal 。如果没有指定 principal 选项,那使用的名称是 guest 。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
principal
| 字符串 | guest
|
用于 principal 的名称。
|
roles
| 用逗号隔开的字符串的列表 |
无
|
将分配给主题的用逗号隔开的角色列表。
|
代码 | Ldap
|
分类 | org.jboss.security.auth.spi.LdapLoginModule
|
描述 |
当用户名和密码存储在可通过 JNDI LDAP 供应商访问的 LDAP 服务器上时进行的验证。许多选项不是必需的,因为它们可由 LDAP 供应商或系统环境来决定。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
java.naming.factory.initial
| 类名 | com.sun.jndi.ldap.LdapCtxFactory
| InitialContextFactory 实现的类名。
|
java.naming.provider.url
| ldap:// URL
|
无
|
LDAP 服务器的 URL。
|
java.naming.security.authentication
| none 、simple 或 SASL 机制的名称。
| simple
|
用于绑定 LDAP 服务器的安全级别。
|
java.naming.security.protocol
| 传输协议 |
如果未指定,则由供应商决定。
|
用于安全访问的传输协议,如 SSL。
|
java.naming.security.principal
| 字符串 |
无
|
用于验证调用者的 principal 的名称。它是根据下面描述的属性构建的。
|
java.naming.security.credentials
| 凭证类型 |
无
|
验证模式使用的凭证类型。其中一些例子包括哈希密码、明文密码、密钥或证书。如果没有指定这个属性,其行为将由服务供应商决定。
|
principalDNPrefix
| 字符串 |
无
|
添加到用户名以组成用户 DN 的前缀。你可以提示用户输入用户名并使用
principalDNPrefix 和 principalDNSuffix 构建全限定 DN。
|
principalDNSuffix
| 串 |
|
添加到用户名以组成用户 DN 的后缀。你可以提示用户输入用户名并使用
principalDNPrefix 和 principalDNSuffix 构建全限定 DN。
|
useObjectCredential
| true 或 false
|
false
|
凭证是否应该用
org.jboss.security.auth.callback.ObjectCallback 类型的回调方法作为不透明的对象、还是用 JAAS PasswordCallback 作为字符数组密码获得。这允许传递非字符数组的凭证信息到 LDAP 服务器。
|
rolesCtxDN
| 全限定的 DN |
无
|
用于搜索用户角色的上下文的全限定 DN。
|
userRolesCtxDNAttributeName
|
属性
|
无
|
包含搜索用户角色的上下文 DN 的用户对象里的属性。它和
rolesCtxDN 的区别是搜索用户角色的上下文可能对于每个用户都是唯一的。
|
roleAttributeID
| 属性 | roles
|
包含用户角色的属性的名称。
|
roleAttributeIsDN
| true 或 false
| false
| roleAttributeID 是否包含角色对象的全限定 DN。如果为 false,角色名将从上下文名称的 roleNameAttributeId 属性值里获取。某些目录模式,如 Microsoft Active Directory,要求这个属性的值为 true 。
|
roleNameAttributeID
| 属性 | group
|
包含角色名称的
roleCtxDN 上下文里的属性的名称。如果 roleAttributeIsDN 属性为 true ,这个属性将被用来查找角色对象的 name 属性。
|
uidAttributeID
| 属性 | uid
| UserRolesAttributeDN 里对应用户 ID 的属性的名称。它被用来定位用户角色。
|
matchOnUserDN
| true 或 false
| false
|
对用户角色搜索是否应该匹配用户的全限定 DN 或只是用户名而已。如果为
true ,完整的用户 DN 将作为匹配值。如果为 false ,则只使用用户名来匹配 uidAttributeName 属性。
|
allowEmptyPasswords
| true 或 false
| true
|
是否允许空的密码。多数 LDAP 服务器将空密码视同匿名登录尝试。要拒绝空密码,请将它设置为 false。
|
代码 | LdapExtended
|
分类 | org.jboss.security.auth.spi.LdapExtLoginModule
|
描述 |
另外的一个使用搜索来定位绑定用户和关联角色的 LDAP 登录模块实现。角色队列递归地解析 DN 来导航分层的角色结构。它使用和 LDAP 模块相同的
java.naming 选项以及下列 LDAP 模块没有的选项。
这个验证以两步进行:
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
baseCtxDN
| 全限定的 DN |
无
|
开始用户搜索的顶层上下文的固定 DN。
|
bindDN
| 全限定的 DN |
无
|
用户和角色查询里用来绑定 LDAP 服务器的 DN。这个 DN 需要读取和搜索
baseCtxDN 和 rolesCtxDN 值上的权限。
|
bindCredential
| 字符串,可以进行加密。 |
无
| bindDN 的密码以明文存储,或者用 EXT 命令从外部夹在。这个密码可以用 Vault 机制进行加密。你可以使用下列格式:
参考下面的主题里关于加密敏感字符串的内容: 第 10.11.2 节 “创建一个 Java 密钥库来存储敏感信息”
|
baseFilter
| LDAP 过滤器字符串 |
无
|
用来定位要验证的用户的上下文的搜索过滤器。从登录模块回调方法里获得的输入用户名或用户 DN 将替换至过滤器里的
{0} 表达式。搜索过滤器的一个常见例子是 (uid={0}) 。
|
rolesCtxDN
| 全限定的 DN |
无
|
用于搜索用户角色的上下文的固定 DN。这不是实际角色的 DN,它是包含用户角色的对象所在的 DN。例如,在 Microsoft Active Directory 服务器里,它是用户帐号所在的 DN。
|
roleFilter
| LDAP 过滤器字符串 |
|
用来定位和验证用户相关联的角色的搜索过滤器。从登录模块回调方法里获得的输入用户名和用户 DN 将被替换过滤器里的
{0} 表达式。已验证的用户 DN 将替换过滤器里的 {1} 表达式。匹配输入用户名的搜索过滤器示例是 (member={0}) 。对应已验证的用户 DN 的例子是 (member={1}) 。
|
roleAttributeIsDN | true 或 false
| false
| roleAttributeID 是否包含角色对象的全限定 DN。如果为 false,角色名将从上下文名称的 roleNameAttributeId 属性值里获取。某些目录模式,如 Microsoft Active Directory,要求这个属性的值为 true 。
|
defaultRole
|
角色名称
|
无
|
用于所有已验证用户的角色
|
parseRoleNameFromDN
| true 或 false
| false
|
指定查询返回的 DN 是否包含 roleNameAttributeID。如果设置为
true ,将检查 DN 里是否有 roleNameATtributeID,如果为 false ,将不会检查。这个标记可以提高 LDAP 查询的性能。
|
parseUsername
| true 或 false
| false
|
指定 DN 是否对用户名进行解析的标记。如果为
true ,DN 将对用户名进行解析。如果为 false ,DN 将不对用户名进行解析。这个选项是和 usernameBeginString 及 usernameEndString 一起使用的。
|
usernameBeginString
|
字符串
|
无
|
定义将从 DN 的开头删除以显示用户名的字符串。这个选项是和
usernameEndString 一起使用的。
|
usernameEndString
|
字符串
|
无
|
定义将从 DN 的结尾删除以显示用户名的字符串。这个选项是和
usernameBeginString 一起使用的。
|
roleNameAttributeID
| 属性 | group
|
包含角色名称的
roleCtxDN 上下文里的属性的名称。如果 roleAttributeIsDN 属性为 true ,这个属性将被用来查找角色对象的 name 属性。
|
distinguishedNameAttribute
| 属性 | distinguishedName
|
包含用户 DN 的用户条目里的属性的名称。如果用户自身的 DN 包含特殊字符(如反斜杠)而阻止了正确的用户映射,这就是有必要的。如果这个属性不存在,条目的 DN 将会被使用。
|
roleRecursion
| 整数 | 0
|
角色搜索的递归级别数。禁用递归可将其设置为
0 。
|
searchTimeLimit
| 整数 | 10000 (10 秒)
|
用户或角色搜索的超时时间(毫秒)。
|
searchScope
| OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE 中的一个
| SUBTREE_SCOPE
|
使用的搜索作用域
|
allowEmptyPasswords
| true 或 false
| true
|
是否允许空的密码。多数 LDAP 服务器将空密码视同匿名登录尝试。要拒绝空密码,请将它设置为 false。
|
代码 | RoleMapping
|
分类 | org.jboss.security.auth.spi.RoleMappingLoginModule
|
描述 |
映射作为验证过程的最终结果的角色到声明式角色。当你添加这个模块到安全域里时,它必须标记为
optional 。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
rolesProperties
| 属性文件或资源的全限定文件路径 | roles.properties
|
映射角色到替代角色的属性文件或资源的全限定文件路径。其格式是
original_role=role1,role2,role3 。
|
replaceRole
| true 或 false
| false
|
是否添加当前的角色,或者用映射的角色替换当前的角色。设为
true 则进行替换。
|
代码 | RunAs
|
分类 | Class: org.jboss.security.auth.spi.RunAsLoginModule
|
描述 |
这是一个 Helper 模块,它在验证的登录阶段将
run as 角色推入栈,并在提交或中止阶段从栈里弹出 run as 角色。这个登录模块为其他必须访问安全资源以执行验证的登录模块(如访问安全 EJB 的登录模块)提供了一个角色。在要求 run as 角色的登录模块建立之前,你必须先配置好 RunAsLoginModule 。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
roleName
| 角色名称 | nobody
|
在登录阶段用作
run as 角色的角色的名称。
|
代码 | Simple
|
分类 | org.jboss.security.auth.spi.SimpleServerLoginModule
|
描述 |
用于测试目的的快速设置安全性的模块。它实现了下列简单的算法:
|
Simple
模块选项
Simple
模块没有选项。
代码 | ConfiguredIdentity
|
分类 | org.picketbox.datasource.security.ConfiguredIdentityLoginModule
|
描述 |
关联这个模块选项里指定的 principal 和任何针对这个模块验证的主题。所使用的 Principal 类的类型是
org.jboss.security.SimplePrincipal 。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
principal
| principal 的名称。 | none
|
将和针对这个模块验证的任何主题关联的 principal。
|
代码 | SecureIdentity
|
分类 | org.picketbox.datasource.security.SecureIdentityLoginModule
|
描述 |
提供这个模块只是为了和之前的系统兼容。它允许你加密密码并和静态 principal 一起使用这个密码。如果你的应用程序使用了
SecureIdentity ,请考虑使用密码库机制。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
username
| 串 | 无 | 用于验证的用户名。 |
password
| 加密的字符串 | 无 |
用于验证的密码。要加密这个密码,请在命令行直接使用这个模块。
java org.picketbox.datasource.security.SecureIdentityLoginModule password_to_encrypt
将这个命令的运行结果粘贴到模块选项的 value 字段。
|
managedConnectionFactoryName
| JCA 资源 | 无 |
数据源的 JCA 连接工厂的名称。
|
代码 | PropertiesUsers
|
分类 | org.jboss.security.auth.spi.PropertiesUsersLoginModule
|
描述 |
使用一个属性文件来存储用户名和密码。它没有提供授权(角色映射)。这个模块只适合于测试用途。
|
代码 | SimpleUsers
|
分类 | org.jboss.security.auth.spi.SimpleUsersLoginModule
|
描述 |
这个登录模块在一个 Java 属性文件里保存了用户名和明文密码。这只是用于测试目的,不适合用于产品环境里。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
username
| 串 | 无 | 用于验证的用户名。 |
password
| 串 | 无 | 用于验证的明文密码。 |
代码 | LdapUsers
|
分类 | org.jboss.security.auth.spi.LdapUsersLoginModule
|
描述 | LdapUsers 模块被 ExtendedLDAP 和 AdvancedLdap 模块取代。
|
代码 | Kerberos
|
分类 | com.sun.security.auth.module.Krb5LoginModule
|
描述 |
用 GSSAPI 执行Kerberos 登录验证。这个模块不是 Sun Microsystems 提供的 API 里的安全框架的一部分。细节可以在 http://docs.oracle.com/javase/1.4.2/docs/guide/security/jaas/spec/com/sun/security/auth/module/Krb5LoginModule.html 里找到。这个模块需要和另外一个处理验证和角色映射的模块配对。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
storekey
| true 或 false
| false |
是否添加
KerberosKey 到主题的私有凭证。
|
doNotPrompt
| true 或 false
| false |
如果设置为
true ,用户将不会被提示输入密码。
|
useTicketCache
|
布尔值,
. true 或 false 。
| false |
如果为
true ,GTG 将从票据缓存里获取。如果为 false ,将不会使用票据缓存。
|
ticketcache
| 代表 Kerberos 票据缓存的文件或资源。 |
默认值取决于你所使用的操作系统。
| 票据缓存的位置。 |
useKeyTab
| true 或 false
| false | 是否从密钥表文件里获取 principal 的密钥。 |
keytab
| 代表 Kerberos keytab 的文件或资源。 |
操作系统的 Kerberos 配置文件的位置,或者
/home/user/krb5.keytab 。
| 密钥表文件的位置。 |
principal
| 字符串 | 无 |
Principal 的名称。这可以是简单的用户名或服务名,如
host/testserver.acme.com 。或者当密钥表包含多个 principal 时,使用它而不是从密钥表里获取 principal。
|
useFirstPass
| true 或 false
| false |
是否以从
javax.security.auth.login.name 和 javax.security.auth.login.password 为关键字从模块的共享状态获取用户名和密码。如果验证失败,不会进行重试。
|
tryFirstPass
| true 或 false
| false |
和
useFirstPass 相同,但如果验证失败,模块将使用 CallbackHandler 来获取新的用户名和密码。如果第二次验证失败,将报告给调用的应用程序。
|
storePass
| true 或 false
| false |
是否在模块的共享状态里保存用户名和密码。如果关键字已存在于共享内存里,或者验证失败的话,这都不会发生。
|
clearPass
| true 或 false
| false |
设置它为
true 在两个验证阶段都完成后从共享内存里清除用户名和密码。
|
代码 | SPNEGOUsers
|
分类 | org.jboss.security.negotiation.spnego.SPNEGOLoginModule
|
描述 |
允许在 Microsoft Active Directory 服务器或其他支持 SPNEGO 的环境里进行 SPNEGO 验证。SPNEGO 也可以包含 Kerberos 凭证。这个模块需要和另外一个处理验证和角色映射的模块配对。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
storeKey
| true 或 false
| false
|
是否保存密钥。
|
useKeyTab
| true 或 false
| false
|
是否使用密钥表。
|
principal
|
代表 Kerberos 验证的 principal 的字符串。
|
无
|
用于验证的 principal 的名称。
|
keyTab
|
代表 keytab 的文件或资源。
| none
|
密钥表的位置。
|
doNotPrompt
| true 或 false
| false
|
是否提示输入密码。
|
debug
| true 或 false
| false
|
是否记录更冗余的信息以用于调试。
|
代码 | AdvancedLdap |
分类 | org.jboss.security.negotiation.AdvancedLdapLoginModule
|
描述 |
提供额外功能的模块,如 SASL 和对 JAAS 安全域的使用。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
bindAuthentication
|
串
|
无
|
用于绑定到目录服务器的 SASL 验证的类型。
|
java.naming.provider.url
| string
|
无
|
目录服务器的 URI.
|
baseCtxDN
|
全限定标识名(DN)。
|
无
|
要用作搜索基础的标识名。
|
baseFilter
|
代表 LDAP 搜索过滤器的字符串。
|
无
|
用于缩减搜索结果的过滤器。
|
roleAttributeID
|
代表 LDAP 属性的字符串。
|
无
|
包含授权角色的名称的 LDAP 属性。
|
roleAttributeIsDN
| true 或 false
| false
|
这个角色属性是否是标识名(Distinguished Name,DN)。
|
roleNameAttributeID
|
代表 LDAP 属性的字符串。
|
无
|
包含实际角色属性的
RoleAttributeId 里所包含的属性。
|
recurseRoles
| true 或 false
| false
|
是否递归地搜索
RoleAttributeId 里的角色。
|
代码 | AdvancedADLdap |
分类 | org.jboss.security.negotiation.AdvancedADLoginModule
|
描述 |
这个模块扩展了
AdvancedLdap 登录模块,并添加额外的和 Microsoft Active Directory 相关的参数。
|
代码 | UsersRoles |
分类 | org.jboss.security.auth.spi.UsersRolesLoginModul
|
描述 |
支持存储在两个不同属性文件里的多个用户和角色的简单登录模块。
|
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
usersProperties
|
文件或资源的路径。
| users.properties
|
包含用户-密码映射的文件或资源。这个文件的格式是
user=hashed-password 。
|
rolesProperties
|
文件或资源的路径。
| roles.properties
|
包含用户-角色映射的文件或资源。这个文件的格式是
username=role1,role2,role3 。
|
password-stacking
| useFirstPass 或 false
| false
| useFirstPass 的值表示这个登录模块应该首先查看存储在 LoginContext 里关于这个标识符的信息。当堆积这个登录模块和其他模块时可以使用这个选项。
|
hashAlgorithm
|
代表密码的哈希算法的字符串。
| none
|
用于 hash 密码的
java.security.MessageDigest 算法的名称。这个选项没有默认值,你必须显性地设置它来启用哈希算法。当指定了 hashAlgorithm 时,CallbackHandler 里包含的明文密码将在作为 inputPassword 参数传递给 UsernamePasswordLoginModule.validatePassword 前进行 hash。保存在 users.properties 文件里的密码必须进行同等的 hash。
|
hashEncoding
| base64 或 hex
| base64
|
如果设置了 hashAlgorithm,哈希密码的字符串格式。
|
hashCharset
|
字符串
|
容器的运行时环境里的默认编码集。
|
将明文密码转换为字节队列的编码。
|
unauthenticatedIdentity
|
principal 名称
|
无
|
定义分配给不包含验证信息的请求的 principal 名称。这允许不受保护的 servlet 调用不要求专有角色的 EJB 上的方法。这样的 principal 没有关联的角色且只访问未设置安全性的 EJB 或者和
unchecked permission 约束关联的 EJB。
|
自定义验证模块
验证模块是 javax.security.auth.spi.LoginModule
的实现。关于创建自定义验证模块的更多信息,请参考相关的 API 文档。