Java 认证和授权服务的系统登录配置条目设置

使用此页面来指定 Java™ 认证和授权服务 (JAAS) 系统登录配置的列表。

要查看此管理控制台页面,请完成下列步骤:
  1. 单击安全性 > 全局安全性
  2. 在“认证”下面,单击 Java 认证和授权服务 > 系统登录
在开始定义用于向应用程序服务器安全性运行时进行认证的其他登录模块前,请阅读 Java 认证和授权服务文档。不要除去以下系统登录模块:
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 生成的对象。
DEFAULT
此登录配置处理大多数其他协议和内部认证所进行的入站请求的登录。

这三个登录配置将传递以下回调信息,这些配置中的登录模块将处理此信息。这些回调并不同时传递。然而,这些回调的组合确定了应用程序服务器认证用户的方式。

回调

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 出站认证启用安全性属性传播选项:
  1. 单击安全性 > 全局安全性
  2. 在“认证”下,展开 RMI/IIOP 安全性,然后单击 CSIv2 出站认证
  3. 启用安全性属性传播选项。
可以通过完成以下步骤来对 CSIv2 入站认证启用安全性属性传播选项:
  1. 单击安全性 > 全局安全性
  2. 在“认证”下,展开 RMI/IIOP 安全性,然后单击 CSIv2 入站认证
  3. 启用安全性属性传播选项。

在系统登录配置中,应用程序服务器根据回调收集的信息来认证用户。然而,定制登录模块不需要根据任何这些回调操作。以下列表说明了这些回调的典型组合:

  • 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.
    validateLTPAToken(byte[])

    接收服务器的 LTPA 密钥必须与发送服务器相同,这样此验证才能成功。当存在 LTPA 令牌时,如果未验证此令牌,就会出现安全漏洞。
  • 任何先前提及的回调加上 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 回调。要指定可信的服务器,完成以下步骤:
    1. 单击安全性 > 全局安全性
    2. 在“认证”下面,单击 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 cookie 添加到响应。
回调

callbacks[6] = new com.ibm.websphere.security.auth.callback.
WSAppContextCallback("ApplicationContextCallback: ");

职责
收集登录期间使用的 Web 应用程序上下文。此回调由散列表组成,当存在该表时,它包含应用程序名和重定向的 Web 地址。
回调

callbacks[7] = new WSRealmNameCallbackImpl("Realm Name: ", <default_realm>);

职责
收集登录信息的域名。并不会始终提供域名信息,如果未提供该信息,应该假定它是当前域。
回调

callbacks[8] = new WSX509CertificateChainCallback("X509Certificate[]: ");

职责
如果登录源是来自 SSL 客户机认证的 X509Certificate,那么此回调包含 SSL 已验证的证书。ltpaLoginModule 调用的映射函数与先前发行版中调用的函数相同。在将其传递到登录中之后,它将提供定制登录模块,并且有机会以定制方式映射该证书。然后,它执行散列表登录(请参阅相关链接“入站映射的定制登录模块”,如散列表登录)。
如果要将安全性属性传播与 WEB_INBOUND 登录配置配合使用,那么可以在“单点登录”面板上启用 Web 入站安全性属性传播选项。
  1. 单击安全性 > 全局安全性
  2. 在“认证”下,展开“Web 安全性”,然后单击单点登录 (SSO)
  3. 选择 Web 入站安全性属性传播选项。
以下登录模块是为 RMI_INBOUND、WEB_INBOUND 和 DEFAULT 系统登录配置预定义的。可以将定制登录模块添加到下列任何登录模块的前面、后面或者它们之间,但是不能除去这些预定义的登录模块:
  • 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) 请求。

在 CSIv2 认证面板中设置这些属性。要访问此面板,请完成下列步骤:
  1. 单击安全性 > 全局安全性
  2. 在“认证”下,展开 RMI/IIOP 安全性,然后单击 CSIv2 出站认证
要设置 com.ibm.CSI.rmiOutboundLoginEnabled 属性,选择定制出站映射。要设置 com.ibm.CSIOutboundPropagationEnabled 属性,选择安全性属性传播选项。

此登录配置确定目标服务器的安全能力及其安全域。例如,如果 V5.1.1 或更高版本的应用程序服务器(或者 z/OS® 版 V5.1.0.2)与 V5.x 应用程序服务器通信,那么 V5.1.1 应用程序服务器将使用 LTPA 令牌来仅将认证信息发送到 V5.x 应用程序服务器。然而,如果 WebSphere® Application Server V5.1.1 或更高版本与 V5.1.x Application Server 通信,并且在发送和接收服务器上都启用了传播,那么将认证和授权信息发送到接收应用程序服务器。当应用程序服务器向下游既发送认证信息又发送授权信息时,该应用程序服务器就不必为了进行授权而再次访问用户 注册表和查找用户的安全属性。另外,在发送服务器上添加的任何定制对象都必须存在于下游服务器上的主体集中。

在 RMI_OUTBOUND 登录配置中可以使用以下回调。可以使用此回调返回的 com.ibm.wsspi.security.csiv2.CSIv2PerformPolicy 对象来查询此特定出站请求的安全策略。此查询可以帮助确定目标域是否与当前域不同,以及应用程序服务器是否必须映射该域。有关更多信息,请参阅信息中心中的“配置指向另一目标域的出站映射”。

回调
callbacks[0] = new WSProtocolPolicyCallback("Protocol Policy Callback: ");
职责

为此登录模块提供有关出站调用的特定于协议的策略信息。此信息用于确定安全性级别,包括目标域、目标安全需求和合并的安全需求。

以下方法获取此特定登录模块的 CSIv2PerformPolicy 策略:

csiv2PerformPolicy = (CSIv2PerformPolicy)
((WSProtocolPolicyCallback)callbacks[0]).getProtocolPolicy();

与 RMI 不同的协议可能有不同类型的策略对象。

以下登录模块在 RMI_OUTBOUND 登录配置中预定义。您可以将定制登录模块添加到任何这些登录模块的前、后或之间,但是您不能除去这些预定义的登录模块。
com.ibm.ws.security.lm.wsMapCSIv2OutboundLoginModule
在创建使用公共安全互操作性 V2(CSIv2)授权令牌层发送到另一服务器的非透明字节前,检索以下令牌和对象:
  • 主体集中的可向前的 com.ibm.wsspi.security.token.Token 实现
  • 主体集中的可序列化定制对象
  • 线程中的传播令牌

可以在此登录模块前使用定制登录模块以执行凭证映射。然而,建议此登录模块更改在登录阶段中传递的主体集内容。如果采纳此建议,那么在此登录模块对新的主体集内容执行操作后处理登录模块。

有关更多信息,请参阅信息中心中的“配置指向另一目标域的出站映射”。

SWAM [AIX Solaris HP-UX Linux Windows] [iSeries]

将简单 WebSphere 认证机制(SWAM)用作认证方法时,处理单台服务器环境中的登录请求。

SWAM 不支持可转发的凭证。当认证方法是 SWAM 时,应用程序服务器无法在服务器之间发送请求。在此情况中,必须使用 LTPA。
注: 建议不要使用 SWAM 登录配置,并且在将来的发行版中将除去此登录配置。
[z/OS] 注: 在应用程序服务器 V7.0 中,建议不要使用 SWAM,在将来的发行版中将除去 SWAM。
wssecurity.IDAssertion [仅限于 V5]

处理使用标识声明的 Web Service 安全性的登录配置请求。

此登录配置适用于 Web Services Security Draft 13 JAX-RPC(V5.x)应用程序。有关更多信息,请参阅信息中心中的“标识声明认证方法”。

wssecurity.IDAssertionUsernameToken [仅限于 V6]

处理使用标识声明的 Web Service 安全性的登录配置请求。

此登录配置适用于 Web Services Security 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 V5.1 和先前版本使用。

com.ibm.ws.security.server.lm.ltpaLoginModule 登录模块是在 LTPA 登录配置中预定义的。您可以在 LTPA 登录配置中此模块的前后添加定制登录模块。有关更多信息,请参阅信息中心中的“示例:定制服务器端 Java 认证和授权服务认证及登录配置”。




标有(在线)的链接要求访问因特网。

相关概念
相关任务
相关参考
Java 认证和授权服务的配置条目设置


文件名: usec_sysjaas.html