Java 认证和授权服务的系统登录配置条目设置
使用此页面来指定 Java™ 认证和授权服务 (JAAS) 系统登录配置的列表。
- 单击 。
- 在 "认证" 下,单击 。
- RMI_INBOUND
- WEB_INBOUND
- 缺省值
- RMI_OUTBOUND
- SWAM
- wssecurity.IDAssertion
- wssecurity.signature
- wssecurity.PKCS7
- wssecurity.PkiPath
- wssecurity.UsernameToken
- wssecurity.X509BST
- LTPA
- LTPA_WEB注: LTPA_WEB 和 WEB_INBOUND 执行类似的功能。 建议您在使用 WEB_INBOUND 因为它是新的系统登录模块。
- DESERIALIZE_ASYNCH_CONTEXT
RMI_INBOUND、WEB_INBOUND、DEFAULT
处理远程方法调用 (RMI)、Web 应用程序和大多数其他登录协议的入站登录请求。
- RMI_INBOUND
- 此登录配置处理入站 RMI 请求的登录。 通常,这些登录是对 Enterprise JavaBeans (EJB) 文件进行认证访问的请求。 使用 RMI 连接器时,这些登录可能是针对 Java 管理扩展 (JMX) 的请求。
- WEB_INBOUND
- 此登录配置处理 Web 应用程序请求(这包括 Servlet 和 JavaServer Pages (JSP) 文件)的登录。 此登录配置可以与从信任关联拦截器 (TAI)(如果已配置)生成的输出交互作用。 传递给 WEB_INBOUND 登录配置的主体集可能包含 TAI 生成的对象。
- 缺省值
- 此登录配置处理大多数其他协议和内部认证所进行的入站请求的登录。
这三个登录配置将传递以下回调信息,这些配置中的登录模块将处理此信息。 这些回调并不同时传递。 但是,这些回调的组合确定了应用程序服务器认证用户的方式。
- 回调
- callbacks[0] = new javax.security.auth.callback.
NameCallback (Username:
); - 职责
- 收集登录期间提供的用户名。 此信息可以是以下登录类型的用户名:
- 用户名和密码登录,这称为基本认证。
- 仅使用用户名进行身份断言,不需要密码。
- 回调
- callbacks[1] = new javax.security.auth.callback.
PasswordCallback (Password:
, false); - 职责
- 收集登录期间提供的密码。 允许使用空密码,空密码用于支持身份断言。
- 回调
- callbacks[2] = new com.ibm.websphere.security.auth.callback.
WSCredTokenCallbackImpl (Credential Token:
); - 职责
- 在登录期间收集轻量级第三方认证 (LTPA) 令牌或其他令牌类型。 通常,不存在用户名和密码时出现此信息。
- 回调
- callbacks[3] = new com.ibm.wsspi.security.auth.callback.
WSTokenHolderCallback (Authz Token List:
); - 职责
- 收集从 WSOpaqueTokenHelper 调用返回的 TokenHolder 对象的 ArrayList 列表。 此回调使用
createTokenHolderListFromOpaqueToken 方法,并将公共安全互操作性 V2 (CSIv2) 授权令牌用作输入。限制: 仅当启用了 安全性属性传播 选项并且此登录是传播登录时,才会存在此回调。 在传播登录中,通过请求传播了足够的安全性属性,因而不必访问用户注册表来获取其他属性。 必须对出站认证和 入站认证都启用安全性属性传播。可以通过完成以下步骤来对 CSIv2 出站认证启用安全性属性传播选项:
- 单击 。
- 在 "认证" 下,展开 RMI/IIOP 安全性,然后单击 CSIv2 outbound authentication。
- 启用安全性属性传播选项。
可以通过完成以下步骤来对 CSIv2 入站认证启用安全性属性传播选项:- 单击 。
- 在 "认证" 下,展开 RMI/IIOP 安全性,然后单击 CSIv2 inbound authentication。
- 启用安全性属性传播选项。
在系统登录配置中,应用程序服务器根据回调收集的信息来认证用户。 但是,定制登录模块不需要根据任何这些回调操作。 以下列表说明了这些回调的典型组合:
- 仅 callbacks[0] = new javax.security.auth.callback.NameCallback(
Username:
); 回调以下登录时发生此回调:CSIv2 身份断言;Web 和 CSIv2 X509 证书登录;旧样式信任关联拦截器登录,等等。 在 Web 和 CSIv2 X509 证书登录中,应用程序服务器将证书映射到用户名。 此回调由任何仅使用用户名建立信任的登录类型使用。
- callbacks[0] = new javax.security.auth.callback.NameCallback(
Username:
); 回调和 callbacks[1] = new javax.security.auth.callback.PasswordCallback(Password:
, false); 回调。此回调组合通常用于基本认证登录。 大多数用户认证使用这两种回调进行。
- 仅 callbacks[2] = new com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl(
Credential Token:
);此回调用于验证轻量级第三方认证 (LTPA) 令牌。 此验证通常是在单点登录 (SSO) 或下游登录期间发生的。 每当请求来自应用程序服务器而不是纯客户机时,LTPA 令牌就会流向目标服务器。 对于单点登录 (SSO),在 Cookie 中接收 LTPA 令牌,并且使用该令牌来进行登录。 如果定制登录模块需要 LTPA 令牌中的用户名,那么它可以使用以下方法检索令牌中的唯一标识:
com.ibm.wsspi.security.token.WSSecurityPropagationHelper.检索唯一标识后,使用以下方法获取用户名:
validateLTPAToken(byte[])com.ibm.wsspi.security.token.WSSecurityPropagationHelper.
getUserFromUniqueID(uniqueID)重要信息: 只要在应用程序服务器登录模块之前插入定制登录模块,并使用凭证映射服务更改身份,此登录模块验证 LTPA 令牌 (如果存在) 就很重要。 调用以下方法足以验证 LTPA 令牌中的信任:com.ibm.wsspi.security.token.WSSecurityPropagationHelper.接收服务器的 LTPA 密钥必须与发送服务器相同,这样此验证才能成功。 当存在 LTPA 令牌时,如果未验证此令牌,就会出现安全隐患。
validateLTPAToken(byte[]) - 先前提到的任何回调与 callbacks[3] = new com.ibm.wsspi.security.auth.callback.WSTokenHolderCallback(
Authz Token List:
); 回调的组合。此回调表明某些传播属性达到了服务器。 传播的属性仍然需要以下某个认证方法:- callbacks[0] = new javax.security.auth.callback.
NameCallback (Username:
); - callbacks[1] = new javax.security.auth.callback.
PasswordCallback (Password:
, false); - callbacks[2] = new com.ibm.websphere.security.auth.callback.
WSCredTokenCallbackImpl (Credential Token:
);
如果已将属性从纯客户机添加至主体集,那么 NameCallback 和 PasswordCallback 回调将认证信息,然后令牌保持器中已序列化的对象会添加至已认证的此主体集。
如果同时启用 CSIv2 身份断言和传播,应用程序服务器就会使用 NameCallback 回调和令牌保持器(它包含传播的所有属性)以将大部分对象反序列化。 因为与 CSIv2 可信服务器列表中指示的服务器建立了信任关系,所以应用程序服务器使用 NameCallback 回调。 要指定可信的服务器,完成以下步骤:- 单击 。
- 在 "认证" 下,单击 CSIv2 inbound authentication。
定制登录模块需要处理定制序列化。 有关更多信息,请参阅文档中的
安全性属性传播
。
- 回调
- callbacks[4] = new com.ibm.websphere.security.auth.callback.
WSServletRequestCallback (HttpServletRequest:
); - 职责
- 收集 HTTP Servlet 请求对象(如果存在)。 此回调使登录模块可以从 HTTP 请求检索登录期间要使用的信息。
- 回调
- callbacks[5] = new com.ibm.websphere.security.auth.callback.
WSServletResponseCallback (HttpServletResponse:
); - 职责
- 收集 HTTP Servlet 响应对象(如果存在)。 此回调使登录模块可以将登录结果信息添加到 HTTP 响应。 例如,登录模块可以将 SingleSignonCookie Cookie 添加到响应。
- 回调
- callbacks[6] = new com.ibm.websphere.security.auth.callback.
WSAppContextCallback (ApplicationContextCallback:
); - 职责
- 收集登录期间使用的 Web 应用程序上下文。 此回调由散列表组成,当存在该表时,它包含应用程序名和重定向的 Web 地址。
- 回调
- callbacks[7] = new WSRealmNameCallbackImpl (
Realm Name:
, <default_realm>); - 职责
- 收集登录信息的域名。 并不会始终提供域名信息,如果未提供该信息,应该假定它是当前领域。
- 回调
- callback [8] = 新的 WSX509CertificateChainCallback (
X509Certificate []:
); - 职责
- 如果登录源是来自 SSL 客户机认证的 X509Certificate,那么此回调包含 SSL 已验证的证书。 ltpaLoginModule 调用的映射函数与先前发行版中调用的函数相同。 在将其传递到登录中之后,它将提供定制登录模块,并且有机会以定制方式映射该证书。 然后,它执行散列表登录(请参阅相关链接“入站映射的定制登录模块”,如散列表登录)。
- 单击 。
- 在 "认证" 下,展开 Web 安全性,然后单击 Single sign-on (SSO)。
- 选择 Web 入站安全性属性传播选项。
- com.ibm.ws.security.server.lm.ltpaLoginModule无论属性传播处于启用状态还是禁用状态,都执行基本登录。 基本登录使用常规认证信息(例如用户标识 和密码)、LTPA 令牌或者信任关联拦截器 (TAI) 和证书专有名称 (DN)。 如果以下任何情况为 true,那么不使用此登录模块,而由 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 模块执行基本登录:
- 主体集中包含具有必需用户属性的 java.util.Hashtable 对象。
- LoginContext 的 sharedState HashMap 中存在具有必需用户属性的 java.util.Hashtable 对象。
- 存在 WSTokenHolderCallback 回调,但不存在指定的密码。 如果指示所传播信息的 WSTokenHolderCallback 回调包含用户名和密码,那么该请求可能来自纯客户机,或者来自另一个域中已将现有标识映射到用户标识和密码的服务器。
- com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule如果以下任何条件为 ture,那么此登录模块使用常规认证信息执行基本登录:
- 主体集包含具有必需用户属性的 java.util.Hashtable 对象。
- LoginContext 上下文的 sharedState HashMap 包含具有必需用户属性的 java.util.Hashtable 对象。
- 存在 WSTokenHolderCallback 回调,但不存在 PasswordCallback 回调。
java.util.Hashtable 对象存在时,登录模块将此对象的属性映射到有效主体集中。 存在 WSTokenHolderCallback 回调时,登录模块将字节令牌对象反序列化并重新生成已序列化的主体集内容。 java.util.Hashtable 散列表优先于所有其他形式的登录。 请小心避免与应用程序服务器先前传播的属性重复或覆盖那些属性。
通过指定 java.util.Hashtable 散列表优先于其他认证信息,定制登录模块必须已验证 LTPA 令牌(如果有的话)以建立足够的信任。 定制登录模块可以使用 com.ibm.wsspi.security.token.WSSecurityPropagationHelper.validationLTPAToken(byte[]) 方法来验证 WSCredTokenCallback 回调中的 LTPA 令牌。 如果无法验证 LTPA 令牌,就会存在安全风险。
有关添加包含由应用程序服务器用作足够登录信息的熟知属性的散列表的更多信息,请参阅信息中心中的
配置入站身份映射
。
RMI_OUTBOUND
当 com.ibm.CSI.rmiOutboundLoginEnabled 或 com.ibm.CSIOutboundPropagationEnabled 属性为 true 时,处理发送出站到另一台服务器的远程方法调用(RMI)请求。
- 单击 。
- 在 "认证" 下,展开 RMI/IIOP 安全性,然后单击 CSIv2 outbound authentication。
此登录配置确定目标服务器的安全能力及其安全域。 当应用程序服务器向下游既发送认证信息又发送授权信息时,该应用程序服务器就不必为了进行授权而再次访问用户 注册表和查找用户的安全性属性。 另外,在发送服务器上添加的任何定制对象都必须存在于下游服务器上的主体集中。
在 RMI_OUTBOUND 登录配置中可以使用以下回调。 可以使用此回调返回的 com.ibm.wsspi.security.csiv2.CSIv2PerformPolicy 对象来查询此特定出站请求的安全策略。 此查询可以帮助确定目标域是否与当前域不同,以及应用程序服务器是否必须映射该域。 有关更多信息,请参阅文档中的 配置到其他目标域的出站身份映射 。
- 回调
- callbacks[0] = new WSProtocolPolicyCallback (
Protocol Policy Callback:
); - 职责
为此登录模块提供有关出站调用的特定于协议的策略信息。 此信息用于确定安全性级别,包括目标域、目标安全需求和合并的安全需求。
以下方法获取此特定登录模块的 CSIv2PerformPolicy 策略:
csiv2PerformPolicy = ( ) (( )callbacks[ ); CSIv2PerformPolicy
WSProtocolPolicyCallback0]).getProtocolPolicy(与 RMI 不同的协议可能有不同类型的策略对象。
- com.ibm.ws.security.lm.wsMapCSIv2OutboundLoginModule
- 在创建使用公共安全互操作性 V2 (CSIv2) 授权令牌层发送到另一服务器的非透明字节前,检索以下令牌和对象:
- 主体集中的可向前的 com.ibm.wsspi.security.token.Token 实现
- 主体集中的可序列化定制对象
- 线程中的传播令牌
可以在此登录模块前使用定制登录模块以执行凭证映射。 但是,建议此登录模块更改在登录阶段中传递的主体集内容。 如果采纳此建议,那么在此登录模块对新的主体集内容执行操作后处理登录模块。
有关更多信息,请参阅文档中的 配置到其他目标域的出站身份映射 。
wssecurity.IDAssertion
处理使用身份断言的 Web Service 安全性的登录配置请求。
此登录配置适用于
Web Service 安全性草稿 13 JAX-RPC (V5.x) 应用程序。 有关更多信息,请参阅文档中的 身份断言认证方法
。
wssecurity.IDAssertionUsernameToken
处理使用身份断言的 Web Service 安全性的登录配置请求。
此登录配置适用于 Web Service 安全性 V1.0 JAX-RPC 应用程序。
可以为 JAAS IDAssertionUsernameToken 登录模块配置定制属性 com.ibm.wsspi.wssecurity.auth.module.IDAssertionLoginModule.disableUserRegistryCheck。 此属性是 Web Service 安全性身份断言 JAAS 登录模块 wssecurity.IDAssertionUsernameToken 的选项。 此属性指示该登录模块在处理入站身份令牌时不应该执行用户注册表检查。
wssecurity.PKCS7
在公用密钥密码术标准 #7 (PKCS7) 对象中验证具有证书撤销列表的 X.509 证书。
此登录配置用于 V6.0.x 系统。
wssecurity.PkiPath
用公共密钥基础结构 (PKI) 路径验证 X.509 证书。
此登录配置用于 V6.0.x 系统。
wssecurity.signature
处理使用数字签名验证的 Web Service 安全性的登录配置请求。
此登录配置用于 V5.x 系统。
wssecurity.UsernameToken
验证基本认证(用户名和密码)。
如果使用 JAX-RPC 运行时,那么可以为 JAAS UsernameToken 登录模块配置下列定制属性:
可以为 JAAS UsernameToken 登录模块配置定制属性 com.ibm.wsspi.wssecurity.auth.module.UsernameLoginModule.disableUserRegistryCheck。 此属性是 Web Service 安全性的 UsernameToken JAAS 登录模块 com.ibm.wsspi.wssecurity.auth.module.UsernameLoginModule 的选项。 此属性指示该登录模块在处理入站用户名令牌时不应该执行用户注册表检查。
wssecurity.X509BST
通过检查证书和证书路径的有效性验证 X.509 二进制安全性令牌 (BST)。
此登录配置用于 V6.0.x 系统。
LTPA_WEB
处理对 Web 容器中的组件(例如 Servlet 和 JavaServer Pages (JSP) 文件)的登录请求。
com.ibm.ws.security.web.AuthenLoginModule 登录模块在 LTPA 登录配置中预定义。 您可以在 LTPA_WEB 登录配置中此模块的前后添加定制登录模块。
LTPA_WEB 登录配置可以处理使用回调处理程序传递的 HttpServletRequest 对象、HttpServletResponse 对象和 Web 应用程序名。 有关更多信息,请参阅文档中的 示例: 定制服务器端 Java 认证和授权服务认证和登录配置
。
LTPA
处理 LTPA_WEB 登录配置未处理的登录请求。
此登录配置由 WebSphere® Application Server V 6.1 和先前版本使用。
com.ibm.ws.security.server.lm.ltpaLoginModule 登录模块是在 LTPA 登录配置中预定义的。 您可以在 LTPA 登录配置中此模块的前后添加定制登录模块。 有关更多信息,请参阅文档中的 示例: 定制服务器端 Java 认证和授权服务认证和登录配置
。
DESERIALIZE_ASYNCH_CONTEXT
处理异步 Bean 的登录请求。