登录映射

ibm-webservices-bnd.xmi 扩展标记语言 (XML) 文件中找到的登录映射包含映射配置。此映射配置定义 Web Service 安全性处理程序如何把从消息头抽出的安全性令牌中所包含的令牌 <ValueType> 元素,映射至相应的认证方法。令牌 <ValueType> 元素包含在从 SOAP 消息头中抽取的安全性令牌中。

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

发送方端 Web Service 安全性处理程序基于部署描述符中指定的 <AuthMethods> 元素生成和附加安全性令牌。例如,如果认证方法是BasicAuth,那么发送方端安全处理程序生成并附加UsernameToken(带有用户名和密码)到 SOAP 消息头。Web Service 安全性运行时将 Java™ 认证和授权服务 (JAAS) javax.security.auth.callback.CallbackHandler 接口作为安全提供程序使用,以在客户机端(或当 Web Service 充当客户机时)生成安全性令牌。

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

您用于生成所需安全性令牌的 CallbackHandler 接口实现在 ibm-webservicesclient-bnd.xmi Web Service 安全性绑定文件的 <loginBinding> 元素中定义。例如,
<loginBinding xmi:id="LoginBinding_1052760331526" authMethod="BasicAuth"
      callbackHandler="com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler"/>
<loginBinding> 元素将 com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler 接口与 BasicAuth 认证方法相关联。WebSphere Application Server 提供 CallbackHandler 接口实现的以下集合,您可使用他们创建各种安全性令牌类型:
com.ibm.wsspi.wssecurity.auth.callback.GUIPromptCallbackHandler
如果在登录绑定信息中没有定义基本认证数据(这与 HTTP 基本认证信息不同),那么前一个令牌类型就通过登录面板提示您输入用户名和密码。实现使用在登录绑定中定义的基本认证数据。将此 CallbackHandler 与 BasicAuth 认证方法一起使用。由于要提示您输入登录绑定信息,因此不要在服务器上使用此 CallbackHandler 实现。
com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler
如果在登录绑定中没有定义基本认证数据(这与 HTTP 基本认证信息不同),那么实现就使用(stdin)中的标准提示您输入用户名和密码。实现使用在登录绑定中定义的基本认证数据。将此 CallbackHandler 实现与 BasicAuth 认证方法一起使用。由于要提示您输入登录绑定信息,因此不要在服务器上使用此 CallbackHandler 实现。
限制: 如果您使用多线程客户机,并且有多个线程尝试同时读取标准输入,那么所有线程都将无法成功地获取用户名和密码信息。因此,您不能将 com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler 实现用于多线程客户机(因为多个线程可能同时尝试从标准输入获取数据)。
com.ibm.wsspi.wssecurity.auth.callback.NonPromptCallbackHandler
此 CallbackHandler 实现不会提示。它宁可使用在登录绑定中定义的基本认证数据(这与 HTTP 基本认证信息不同)。此 CallbackHandler 实现旨在与 BasicAuth 认证方法一起使用。您必须在登录绑定信息中为此 CallbackHandler 实现定义基本认证信息。 当 Web Service 作为客户机运行并需要向下游调用发送基本认证 (<wsse:UsernameToken>) 时,您可使用此实现。
com.ibm.wsspi.wssecurity.auth.callback.LTPATokenCallbackHandler
CallbackHandler 从当前 WebSphere Application Server 安全上下文的 run as JAAS 主体集(调用主体集)生成轻量级第三方认证 (LTPA) 令牌。但是,如果在登录绑定信息中定义了基本认证数据(不是 HTTP 基本认证信息),那么实现就使用此基本认证数据和生成的 LTPA 令牌。必须为此 CallbackHandler 实现在登录绑定信息中定义令牌类型 URI令牌类型局部名值。标记值类型用于对请求发送方验证标记和请求接收方绑定配置。Web Service 安全性运行时将 LTPA 令牌作为二进制安全性令牌 (<wsse:BinarySecurityToken>) 插入消息 SOAP 头中。值类型是必需的。(请参阅 LTPA 获取更多信息)。将此 CallbackHandler 实现与 LTPA 认证方法一起使用。
图.1 显示了请求发送方消息进程中的发送方安全处理程序。
图 1. 请求发送方 SOAP 消息进程请求发送方 SOAP 消息进程
您可将接收方端安全性服务器配置为支持多个认证方法和多种类型的安全性令牌。以下步骤描述了请求发送方 SOAP 消息进程:
  1. 在接收消息后,接收方 Web Service 安全性处理程序将(消息头中的)令牌类型与部署描述符中配置的预期令牌类型比较。
  2. Web Service 安全性处理程序从消息头抽出安全性令牌,并将令牌<ValueType>元素映射至相应的认证方法。映射配置在 ibm-webservices-bnd.xmi XML 文件的<loginMappings> 元素中定义。例如:
    <loginMappings xmi:id="LoginMapping_1051977980074" authMethod="LTPA"
          configName="WSLogin">
         <callbackHandlerFactory xmi:id="CallbackHandlerFactory_1051977980081"
         classname="com.ibm.wsspi.wssecurity.auth.callback.WSCallbackHandlerFactoryImpl"/>
          <tokenValueType xmi:id="TokenValueType_1051977980081"
          uri="http://www.ibm.com/websphere/appserver/tokentype/5.0.2" localName="LTPA"/>
    </loginMappings>

    com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory 接口是用于 javax.security.auth.callback.CallbackHandler 的工厂。

  3. Web Service 安全性运行时启动工厂实现类并通过设置方法将认证信息从 Web Service 安全性头传递到工厂类。
  4. Web Service 安全性运行时调用 newCallbackHandler() 方法获取 javax.security.auth.CallbackHandler 对象(它生成所需的安全性令牌)。
  5. 当安全处理程序接收到 LTPA BinarySecurityToken 时,它使用 WSLogin JAAS 登录配置和 newCallbackHandler() 方法验证安全性令牌。 如果在 SOAP 消息 Web Service 安全性头中没有找到预期的令牌类型,那么系统将因 SOAP 故障而拒绝请求。否则,使用令牌类型映射至 JAAS 登录配置,以验证标记。如果认证成功,那么创建 JAAS 主体集并与正在运行的线程关联。否则以 SOAP 故障拒绝请求。
    下表显示认证方法和 JAAS 登录配置。
    表 1. 认证方法和 JAAS 登录配置. 认证方法映射至 JAAS 登录配置,以验证令牌。
    认证方法 JAAS 登录配置
    BasicAuth WSLogin
    签名 system.wssecurity.Signature
    LTPA WSLogin
    IDAssertion system.wssecurity.IDAssertion
    图.2 显示请求接收方消息进程中的接收方安全处理程序。
    图 2. 请求接收方 SOAP 消息进程请求接收方 SOAP 消息进程
    缺省值 <LoginMapping> 在以下文件中定义:
    • 单元级别 ws-security.xml 和服务器级别 ws-security.xml 文件
    如果在绑定文件信息中什么也没定义,那么使用 ws-security.xml 缺省值。但是,管理员可以通过在绑定文件中定义新的 <LoginMapping> 元素来覆盖缺省值。
  6. 客户机读取 ${install_dir}/properties/ws-security.xml 文件中的缺省绑定信息。
  7. 服务器运行时组件装入以下文件(如果他们存在):
    • 单元级别 ws-security.xml 文件和服务器级别 ws-security.xml 文件。这两个文件在运行时中合并以形成一个有效的缺省绑定信息集合。

    在 Base Application Server 上,服务器运行时组件仅装入服务器级别 ws-security.xml 文件。服务器端 ws-security.xml 文件和应用程序 Web Service 安全性绑定信息由管理控制台管理。可以在应用程序部署期间通过使用管理控制台指定绑定信息。Web Services 安全策略将在部署描述符扩展 (ibm-webservicesclient-ext.xmi) 中定义,而绑定存储在 IBM® 绑定扩展 (ibm-webservicesclient-bnd.xmi) 中。但是,${install_dir}/properties/ws-security.xml 文件定义客户机的缺省绑定值。如果在绑定文件中未指定绑定信息,那么运行时从缺省 ${install_dir}/properties/ws-security.xml 文件读取绑定信息。


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



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