向 SAML(安全性断言标记语言)令牌认证 Web Service 客户机

Web Services Security SAML Token Profile 1.1 定义如何将安全性断言标记语言 (SAML) V1.1 和 V2.0 断言 与 Web Service 安全性 (WSS):SOAP 消息安全性 V1.1 规范配合使用。Liberty 通过不记名确认方法支持对 SAML V2.0 断言使用 Web Services Security SAML Token Profile 1.1。

关于此任务

Liberty 通过不记名确认方法 (<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">) 支持 SAML V2.0。Web Service 客户机将 SAML 令牌传递至 Web Service 提供者以标识请求者,Web Service 提供者可使用此 SAML 令牌信息来认证请求者。

SAML 令牌的需求表示为 WS-Security 策略中的其中一个支持令牌。可将 SamlToken 需求添加为支持令牌断言(包括 SupportingTokensSignedSupportingTokensSignedEncryptedSupportingTokensEncryptedSupportingTokens)之一中的必需令牌。

过程

  1. 配置 Web Service 客户机以传播 SAML 令牌。

    Saml20Token (com.ibm.websphere.security.saml2.Saml20Token) 必须存在于 RunAs 主题中。如果配置了 SamlToken 策略断言,那么 Liberty WS-Security 运行时将自动从 RunAs 主体集中抽取 Saml20Token,并将 SAML 断言附加至 <wsse:Security> SOAP 头。需要执行以下步骤:

    1. wsSecuritySaml-1.1 添加至 server.xml 文件中的 featureManager
      <featureManager>
              <feature>wsSecuritySaml-1.1</feature>
      </featuremanager>
    2. 应用程序必须指定 SAML 令牌作为 .wsdl 文件的策略中的支持令牌(包括 SupportingTokensSignedSupportingTokensSignedEncryptedSupportingTokensEncryptedSupportingTokens 令牌断言)。
      <wsp:Policy wsu:Id="CallerHttpPolicy">
      	<sp:SupportingTokens>
      		<wsp:Policy>
      			<sp:SamlToken
      				sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
      				<wsp:Policy>
      					<sp:WssSamlV20Token11 />
      				</wsp:Policy>
      			</sp:SamlToken>
      		</wsp:Policy>
      	</sp:SupportingTokens>
      
      </wsp:Policy>
  2. 向 SAML 令牌认证 Web Service。

    如果 Web Service 提供者接收带有 SAML 令牌的 SOAP 消息,那么它会先验证令牌,然后使用 SAML 令牌属性来完成认证过程。以下是验证 SAML 令牌涉及的步骤:

    1. wsSecuritySaml-1.1 添加至 server.xml 文件中的 featureManager
      <featureManager>
              <feature>wsSecuritySaml-1.1</feature>
      </featuremanager>
    2. 应用程序必须指定 SAML 令牌作为 .wsdl 文件的策略中的支持令牌。
    3. 验证令牌时,将使用服务器配置中的以下属性。
      <wsSecurityProvider id="default"
                ..
                ..
                <samltoken
                     wantAssertionsSigned="true"
                     clockSkew="5m"
                     timeToLive="30m"
                     requiredSubjectConfirmationMethod="bearer"
                     audienceRestrictions="https://../aud1"
                     audienceRestrictions="aud2" ..          />
                      
                      
      </wsSecurityProvider>
    • wantAssertionsSigned - 指定 WS-Security 提供者接收到的 SOAP 消息中的 <saml:Assertion> 元素是否已签名。
    • clockSkew - 生成 SAML 令牌的系统与接收 SAML 令牌之间的系统之间的允许时差。缺省值为 5 分钟。
    • timeToLive - SAML 断言的生存时间。SAML 断言中缺少 NoOnOrAfter 条件时,此设置是必需的。缺省值为 30 分钟。
    • requiredSubjectConfirmationMethod - SAML 断言中的主题确认方法。缺省值为 bearer
    • audienceRestrictions - SAML 断言的允许受众。缺省值为允许所有受众。

    有关认证涉及的步骤的更多详细信息,请参阅创建 WS-Security SAML 调用者配置


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

文件名:twlp_auth_saml_token.html