Web Services Security SAML Token Profile 1.1 は、Security Assertion Markup
Language (SAML) V1.1 および V2.0 アサーションの使用方法を Web Services Security (WSS): SOAP Message Security
V1.1 仕様で定義します。Liberty は、bearer 確認メソッドを使用した SAML v2.0 アサーション用に Web Services Security SAML Token Profile 1.1 をサポートします。
このタスクについて
Liberty は、bearer 確認メソッド (<SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">) を使用した SAML v2.0 をサポートします。Web サービス・クライアントは要求元を識別するための手段として SAML トークンを Web サービス・プロバイダーに伝搬し、
Web サービス・プロバイダーはこの SAML トークン情報を使用して要求元を認証することができます。
SAML トークンが必要だということは、WS-Security ポリシーでサポート・トークンの 1 つとして表されます。サポート・トークン・アサーション (SupportingTokens、
SignedSupportingTokens、SignedEncryptedSupportingTokens、および EncryptedSupportingTokens) の 1 つで、必要なトークンとして SamlToken 要求を追加できます。
手順
- SAML トークンを伝搬するように Web サービス・クライアントを構成します。
Saml20Token (com.ibm.websphere.security.saml2.Saml20Token) が RunAs サブジェクト内に存在することが必要です。SamlToken ポリシー・アサーションが構成されている場合、
Liberty WS-Security ランタイムは自動的に RunAs サブジェクトから Saml20Token を抽出し、<wsse:Security> SOAP ヘッダーに SAML アサーションを付加します。以下のステップが必要です。
- server.xml ファイル内で featureManager に wsSecuritySaml-1.1 を追加します。
<featureManager>
<feature>wsSecuritySaml-1.1</feature>
</featuremanager>
- アプリケーションは、.wsdl ファイル内でポリシーにサポート・トークン (SupportingTokens、SignedSupportingTokens、
SignedEncryptedSupportingTokens、および EncryptedSupportingTokens トークン・アサーションが含まれます) として SAML トークンを指定する必要があります。
<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>
- SAML トークンを使用して Web サービスを認証します。
Web サービス・プロバイダーは、SAML トークンと共に SOAP メッセージを受け取ると、まずトークンを検証した後、SAML トークン属性を使用して認証プロセスを実行します。SAML トークンの検証に関係するステップは次のとおりです。
- server.xml ファイル内で featureManager に wsSecuritySaml-1.1 を追加します。
<featureManager>
<feature>wsSecuritySaml-1.1</feature>
</featuremanager>
- アプリケーションは、.wsdl ファイル内のポリシーにサポート・トークンとして SAML トークンを指定する必要があります。
- トークンの検証時には、サーバー構成内の以下の属性が使用されます。
<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 呼び出し元構成の作成』を参照してください。