认证方法概述

WebSphere® Application Server 的 Web Service 安全性实现支持下列认证方法:BasicAuth、轻量级第三方认证 (LTPA)、数字签名和身份断言。

要点: V5.x 与 V6 及更高版本的应用程序之间存在重要差别。这些信息仅支持与 WebSphere Application Server V6.0.x 和更高版本配合使用的 V5.x 应用程序。这些信息不适用于 V6 和更高版本应用程序。

当 WebSphere Application Server 配置为使用 BasicAuth 认证方法时,发送方会在 SOAP 消息头的绑定文件中附加轻量级第三方认证 (LTPA) 令牌作为当前安全上下文或基本认证数据配置中的 BinarySecurityToken。Web Service 安全性消息接收方通过对照配置的用户注册表验证用户名和密码,来认证发送方。使用 LTPA 方法时,发送方附加它先前在 SOAP 消息头中接收到的 LTPA BinarySecurityToken。接收方通过验证 LTPA 令牌和令牌截止时间来认证发送方。借助数字签名认证方法,发送方将 BinarySecurityTokenX509 证书附加到 Web Service 安全性消息头,同时还附加消息体、时间戳记、安全性令牌或这三者的任意组合的数字签名。接收方通过使用已验证过证书的公用密钥来验证 X.509 证书和数字签名的有效性,从而对发送方进行认证。

身份断言认证方法与另三种认证方法不同。此方法基于信任关系建立发送方的安全凭证。例如,当中间服务器必须代表客户机从下游服务器调用服务,但是又没有客户机认证信息时,您就可使用身份断言认证方法。中间服务器可以与下游服务器建立信任关系,然后对同一下游服务器声明客户机标识。

Web Service 安全性支持以下信任方式:
  • BasicAuth
  • 数字签名
  • 假设信任

当您使用 BasicAuth 和数字签名信任方式时,中间服务器会将它自己的认证信息传递到下游服务器以供认证。假设信任方式使用一些外部机制建立信任关系。例如,中间服务器可以通过与下游服务器的安全套接字层 (SSL) 连接和传输层客户机证书认证传递 SOAP 消息。

WebSphere Application Server 的 Web Service 安全性实现通过以下过程来验证信任关系:
  1. 下游服务器验证中间服务器的认证信息。
  2. 下游服务器验证是否授权已认证的中间服务器进行身份断言。例如,中间服务器必须在下游服务器的信任列表中。

客户机标识可能由名称字符串、专有名称 (DN) 或 X.509 证书表示。客户机标识附加在 Web Service 安全性消息中仅有一个用户名、DN 的 UsernameToken 中,或在证书的 BinarySecurityToken 中。下表概述每个认证方法所需的安全性令牌的类型。

表 1. 认证方法及其安全性令牌. 使用一些方法来认证消息的发送方。
认证方法 安全性令牌
BasicAuth BasicAuth 需要具有 <wsse:Username><wsse:Password><wsse:UsernameToken>
Signature 签名需要 <ds:Signature><wsse:BinarySecurityToken>
IDAssertion 根据 <idType>IDAssertion 需要具有<wsse:Username><wsse:UsernameToken> 或具有用于客户机标识的 X.509 证书的 <wsse:BinarySecurityToken>。根据 <trustMode>,此方法还需要其他安全性令牌:
  • If the <trustMode> is BasicAuth, IDAssertion requires <wsse:UsernameToken> with <wsse:Username> and <wsse:Password>.
  • 如果 <trustMode>Signature,那么 IDAssertion 需要 <wsse:BinarySecurityToken>
LTPA LTPA 需要 <wsse:BinarySecurityToken> 以及 LTPA 令牌。
一个 Web Service 可以同时支持多种认证方法。Web Service 部署描述符的接收方端可在 ibm-webservices-ext.xmi XML 文件中指定所有受支持的认证方法。如以下示例所示,Web Service 接收方端被配置为接受前面描述的所有已认证方法:
<loginConfig xmi:id="LoginConfig_1052760331326">
      <authMethods xmi:id="AuthMethod_1052760331326" text="BasicAuth"/>
      <authMethods xmi:id="AuthMethod_1052760331327" text="IDAssertion"/>
      <authMethods xmi:id="AuthMethod_1052760331336" text="Signature"/>
      <authMethods xmi:id="AuthMethod_1052760331337" text="LTPA"/>
</loginConfig>
<idAssertion xmi:id="IDAssertion_1052760331336" idType="Username" trustMode="Signature"/>
您可在发送方端 Web Service 部署描述符中仅定义一种认证方法。Web Service 客户机可使用特殊的 Web Service 应用程序支持的任何认证方法。以下示例描述了 Web Service 客户机的 ibm-webservicesclient-ext.xmi 部署描述符扩展中身份断言认证方法配置:
<loginConfig xmi:id="LoginConfig_1051555852697">
      <authMethods xmi:id="AuthMethod_1051555852698" text="IDAssertion"/>
</loginConfig>
<idAssertion xmi:id="IDAssertion_1051555852697" idType="Username" trustMode="Signature"/>
如前一个示例所示,客户机标识类型为 Username,而信任方式为数字签名。
图 1. 安全性令牌生成和验证安全性令牌生成和验证

发送方安全性处理程序调用 javax.security.auth.callback.CallbackHandler 接口的实现的 handle() 方法。javax.security.auth.callback.CallbackHandler 接口创建安全性令牌并将它传递回到发送方安全性处理程序。发送方安全性处理程序根据回调数组中的认证信息构造安全性令牌,并将安全性令牌插入 Web Service 安全性消息头中。

接收方安全性处理程序会将消息头中的令牌类型与部署描述符中配置的预期令牌类型进行比较。如果在 SOAP 消息的 Web Service 安全性头中没有找到预期的令牌类型,那么以SOAP 故障异常拒绝请求。否则,将使用令牌类型映射至 Java™ 认证和授权服务 (JAAS) 登录配置,以验证令牌。如果认证成功,那么创建 JAAS 主体集并与运行线程关联。否则以 SOAP 故障异常拒绝请求。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_authmeth
文件名:cwbs_authmeth.html