在消息级别签署 SAML 令牌

通过启用声明签名在消息级别保护 SAML 令牌。

开始之前

为 SAML 令牌配置签名之前,必须先使用消息级别完整性保护来配置 SAML 策略集和绑定以创建 SAML 令牌作为认证支持令牌。有关更多信息,请参阅使用 SAML 保护消息的相关信息。此外,已连接的 SAML 绑定必须是特定于应用程序的绑定,不能是常规绑定。用于签署 SAML 声明的变换算法与用于其它签署部件的算法不同,只有一种变换算法与常规绑定配合使用。

关于此任务

此项任务具体描述了如何以数字方式签署 SAML 令牌的步骤。此项任务未描述与必须签署的消息部件相关的 SAML sender-vouches 或 SAML 不记名令牌的任何 SAML 令牌概要文件 OASIS 标准需求。要签署 SAML 声明,SOAP 消息必须在 <wsse:Security> 头块中包括 <wsse:SecurityTokenReference> 元素。SecurityTokenReference (STR) 由使用 <ds:Reference> 元素的消息签名所引用。安全性令牌引用必须包括 ValueType 值为 http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID 或 http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID 的 <wsse:KeyIdentifier> 元素,以指定引用的声明标识。<ds:Reference> 元素必须包括 STR 变换算法的 URI (http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsssoap-message-security-1.0#STR-Transform)。 使用 STR 变换可确保签署 SAML 声明本身,而不仅仅签署 <wsse:SecurityTokenReference> 元素。

请遵循这些配置步骤以在消息级别启用签署 SAML 令牌。

避免故障 避免故障: 使用 SAML 属性回调处理程序是在初始创建时向 SAMLToken 添加定制属性的唯一方式。尽管可使用 SAMLToken.addAttribute 方法向 SAMLToken 对象添加属性,仍将移除令牌上存在的数字签名。同时,无法将其与加密 SAML 令牌或加密属性配合使用。gotcha

过程

  1. 配置消息部件。
    1. 从管理控制台中,编辑 SAML 策略集,然后单击 WS-Security > 主要策略 > 请求消息部件保护
    2. 完整性保护下,单击添加
    3. 要签署的部件的名称输入部件名称;例如 saml_part
    4. 部件中的元素下,单击添加
    5. 选择 XPath 表达式
    6. 添加两个 XPath 表达式。
      /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' 
      and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' 
      and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='SecurityTokenReference']
      /*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
      and local-name()='Envelope']/*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
      and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='SecurityTokenReference']
    7. 单击应用,然后单击保存
    8. 如果应用程序从未使用此策略启动,那么不需要进一步的操作。否则,请重新启动应用程序服务器或遵循“使用 wsadmin 脚本编制来刷新策略集配置”文章中的指示信息进行操作,以使应用程序服务器重新装入策略集。
  2. 修改客户机绑定以签署 SAML 令牌。
    1. 从“服务客户机策略集和绑定”面板中,单击 WS-Security > 认证和保护
    2. 修改目前配置的出站签名消息部件绑定以包括您创建的新 SAML 部件。

      请求消息签名和加密保护下,选择其状态已设置为 Configured 的部件引用。此部件引用将非常类似于 request:app_signparts

      1. 从“消息部件引用”下的可用列表中,选择要签署的部件(步骤 1 中创建)的名称;例如 saml_part
      2. 单击添加,然后单击应用
      3. 在“消息部件引用”下的已指定列表中,突出显示所添加的部件的名称;例如 saml_part
      4. 单击编辑
      5. 对于变换算法设置,单击新建
      6. 选择 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
      7. 单击确定,单击确定,然后再次单击确定
    3. 使用定制属性来更新 SAML 令牌 GENERATOR 以指示具有安全性令牌引用的数字签名。

      在“认证令牌”下,选择并编辑您要签署的 SAML 令牌。

      1. 在“定制属性”下,单击新建
      2. 输入 com.ibm.ws.wssecurity.createSTR 作为定制属性名称。
      3. 输入 True 作为定制属性的值。
      4. 单击应用,然后单击保存
    4. 重新启动应用程序。
  3. 修改提供程序绑定以接受已签署的 SAML 令牌。
    1. 从“服务提供程序策略集和绑定”面板中,单击 WS-Security > 认证和保护
    2. 修改目前配置的入站签名消息部件绑定以包括您创建的新 SAML 部件。

      请求消息签名和加密保护下,选择其状态已设置为 Configured 的部件引用。此部件引用将非常类似于 request:app_signparts

      1. 从“消息部件引用”下的可用列表中,选择要签署的部件(步骤 1 中创建)的名称;例如 saml_part
      2. 单击添加,然后单击应用
      3. 在“消息部件引用”下的已指定列表中,突出显示所添加的部件的名称;例如 saml_part
      4. 单击编辑
      5. 对于变换算法设置,单击新建
      6. 选择 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
      7. 单击确定,单击确定,然后再次单击确定
      8. 单击保存
    3. 重新启动应用程序。

指示主题类型的图标 任务主题



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