Java 认证和授权服务的系统登录配置条目设置使用此页面指定 Java 认证和授权服务(JAAS)系统登录配置的列表。
要查看此管理控制台页面,单击安全性 > JAAS 配置 > 系统登录。
在您开始为向 WebSphere Application Server 安全性运行时认证定义其它的登录模块之前,请阅读 Java 认证和授权服务。不要除去下列系统登录模块:
这三个登录配置可以传入下列回调信息,它是由这些配置中的登录模块处理的。这些回调不是同时传入的。然而,这些回调的组合确定 WebSphere Application Server 如何认证用户。
| 回调 | 职责 |
|---|---|
| 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 () 方法使用 Common Secure Interoperability version 2 (CSIv2) 授权令牌作为输入。 |
在系统登录配置中,WebSphere Application Server 根据回调收集的信息认证用户。然而,定制登录模块不需要对这些回调进行操作。以下列表说明这些回调的典型组合:
该回调在 CSIv2 身份声明、Web、CSIv2 X509 证书登录、老式的信任关联拦截器登录等情况下发生。在 CSIv2 X.509 证书登录中,WebSphere Application Server 将证书映射到用户名。在仅使用用户名建立信任的任何登录类型的情况下使用该回调。
该回调组合特定于基本认证登录。多数用户认证都是使用这两个回调进行的。
该回调通常由下游服务器使用,以验证轻量级第三方认证(LTPA)令牌。任何时候从 WebSphere Application Server(而不是从纯客户机)发出请求,LTPA 令牌通常都会流向目标服务器。对于单次注册(SSO),LTPA 令牌是在 cookie 中接收的,并且使用该令牌进行登录。如果定制登录模块需要 LTPA 令牌的用户名,则模块可以使用 com.ibm.wsspi.security.token.WSSecurityPropagationHelper.validateLTPAToken(byte[])方法从令牌获得 uniqueID。获得 uniqueID 后,使用 com.ibm.wsspi.security.token.WSSecurityPropagationHelper.getUserFromUniqueID(uniqueID)方法获取用户名。
该回调表明一些已传播的属性已到达了该服务器。已传播的属性仍需要下列一个认证方法:
如果从纯客户机将属性添加到主题,则 NameCallback 和 PasswordCallback 回调认证信息,并且,令牌保持器(holder)中已序列化的对象被添加到已认证的主题中。
如果同时启用了 CSIv2 身份声明和传播,则 WebSphere Application Server 使用 NameCallback 和令牌保持器(holder),该保持器包含所有已传播的属性,以反序列化大部分对象。 WebSphere Application Server 仅使用 NameCallback,这是因为信任是用您在 CSIv2 可信的服务器列表中表明的服务器建立的。要指定可信的服务器,单击安全性 > 认证协议 > CSIv2 入站认证。
定制序列化仅需要由定制登录模块处理。要获取更多的信息,请参阅“安全性属性传播”。
除了先前定义的回调之外,WEB_INBOUND 登录配置仅可以包含下列其它回调
| 回调 | 职责 |
|---|---|
| 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 添加到响应。 |
| callbacks[6] = new com.ibm.websphere.security.auth.callback.WSAppContextCallback("ApplicationContextCallback: "); | 收集在登录期间使用的 Web 应用程序上下文。该回调包括 HashMap,其包含应用程序名称和重定向 Web 地址(如果存在的话)。 |
下列登录模块是为 RMI_INBOUND、WEB_INBOUND 和 DEFAULT 系统登录配置预定义的。您可以在任何这些登录模块的前面、中间或后面添加定制登录模块,但您无法除去这些预定义的登录模块。
在启用或禁用属性传播时,该登录模块执行主登录。主登录使用常规认证信息,如用户标识和密码、LTPA 令牌或信任关联拦截器(TAI)和证书专有名称(DN)。如果下列任何一个方案是对的,则不使用该登录模块,而由 com.ibm.ws.security.server.lm.wsMapInboundLoginModule 执行主登录:
如果下列任何条件成立,则该登录模块使用常规认证信息执行主登录:
当 java.util.Hashtable 对象存在时,登录模块把对象属性映射到一个有效主题。当 WSTokenHolderCallback 存在时,登录模块反序列化字节令牌对象,并且重新生成序列化的主题内容。java.util.Hashtable 优先于所有其它的登录表单。因此请您小心,避免重复或覆盖 WebSphere Application Server 先前可能已传播的内容。
这些属性在 CSIv2 认证面板中设置。要访问该面板,单击安全性 > 认证协议 > CSIv2 出站认证。要设置 com.ibm.CSI.rmiOutboundLoginEnabled 属性,选择定制出站映射。要设置 com.ibm.CSIOutboundPropagationEnabled 属性,选择安全性属性传递。
该登录配置确定目标服务器的安全性能力和它的安全性域。例如,如果 WebSphere Application Server V5.1.1 与 V5.x 应用程序服务器进行通信,则 V5.1.1 应用程序服务器使用 LTPA 令牌把认证信息发送到 V5.x 应用程序服务器。然而,如果 WebSphere Application Server V5.1.1 与 V5.1.x 应用程序服务器进行通信,则认证和授权信息被发送到接收应用程序服务器(如果在发送和接收服务器上都启用了传播的话)。
RMI_OUTBOUND 登录配置中可以使用以下回调。您可以使用该回调返回的 com.ibm.wsspi.security.csiv2.CSIv2PerformPolicy 对象来查询此特定出站请求的安全策略。此查询可以帮助确定目标域是否与当前域不相同,以及 WebSphere Application Server 是否必须映射该域。 要获取更多的信息,请参阅“配置出站映射到不同的目标域”。
| 回调 | 职责 |
|---|---|
| callbacks[0] = new WSProtocolPolicyCallback("Protocol Policy Callback: "); |
为该出站调用上的登录模块提供特定于协议的策略信息。该信息用于确定安全性的级别,包括目标域、目标安全性需求以及合并的安全性需求。 以下方法从该特定的登录模块获取 CSIv2PerformPolicy: csiv2PerformPolicy = (CSIv2PerformPolicy) ((WSProtocolPolicyCallback)callbacks[0]).getProtocolPolicy(); 除 RMI 之外的不同协议可能有不同类型的策略对象。 |
RMI_OUTBOUND 登录配置中预定义了以下登录模块。您可以在任何这些登录模块的前面、中间或后面添加定制登录模块,但您无法除去这些预定义的登录模块。
您可以在该登录模块前使用定制登录模块来执行凭证映射。然而,建议登录模块更改在登录阶段中传入的主题的内容。如果您采纳了该建议,则在该登录模块后面处理的登录模块作用于新的主题内容。
简单 WebSphere 认证机制(SWAM)不支持可转发的凭证。当 SWAM 作为认证方法时,WebSphere Application Server 无法在服务器之间发送请求。在这种情况下,您必须使用 LTPA。
WebSphere Application Server V5.1 和更早的版本使用该登录配置。
LTPA 登录配置中预定义了 com.ibm.ws.security.web.AuthenLoginModule 登录模块。您可以在 LTPA_WEB 登录配置中,在该模块的前面或后面添加定制登录模块。
LTPA_WEB 登录配置可以处理使用回调处理程序传入的 HttpServletRequest 对象、HttpServletResponse 对象和 Web 应用程序名称。要获取更多信息,请参阅文档中的“定制服务器端 Java 认证和授权服务认证和登录配置”。
WebSphere Application Server V5.1 和更早的版本使用该登录配置。
LTPA 登录配置中预定义了 com.ibm.ws.security.server.lm.ltpaLoginModule 登录模块。您可以在 LTPA 登录配置中,在该模块的前面或后面添加定制登录模块。要获取更多信息,请参阅文档中的“定制服务器端 Java 认证和授权服务认证和登录配置”。