SAML Token Profile 標準で規定されている SAML アサーション

Web Services Security SAML Token Profile OASIS 標準 では、Security Assertion Markup Language (SAML) アサーションの使用方法が Web Services Security SOAP Message Security 仕様で指定されています。

この製品は、Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML) V1.1 および Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0 の 2 つのバージョンの OASIS SAML 標準をサポートしています。

この標準は、WSS: SOAP Message Security 仕様で定義されているよう に、<wsse:Security> ヘッダー内でセキュリティー・トークンとして SAML アサーションを 使用することについて規定しています。SAML アサーション内のサブジェクト およびステートメントを SOAP メッセージにバインドするために、XML Signature を使用できます。

サブジェクト確認方式は、SAML アサーションのサブジェクトとクレーム間の関係の 証拠 (証明) をエンティティーが提供する仕組み を定義します。WSS: SAML Token Profile では、 3 種類のサブジェクト確認方式 (bearer、 holder-of-key、および sender-vouches) の使用法が規定されています。本製品では、3 つの確認方式をすべてサポートします。サブジェクト確認方式として bearer を 使用する場合、サブジェクトとクレーム間の関係の証明は暗黙的 です。関係を確立するために実行される特別なステップは ありません。

bearer トークンには鍵素材は関連付けられていないため、 SOAP メッセージの保護は、必要な場合、 トランスポート・レベル・メカニズムを使用するか、または、メッセージ・レベル保護 用に X.509 や Kerberos トークンなどの他のセキュリティー・トークンを使用して実行される必要があります。holder-of-key サブジェクト 確認方式を使用する場合、サブジェクトとクレーム間の関係の証明 は、SAML アサーション内に指定された鍵を使用して SOAP メッセージの 一部に署名することによって確立されます。holder-of-key トークンには 鍵素材が関連付けられているため、このトークンを使用して、SOAP メッセージの メッセージ・レベル保護 (署名および暗号化) を 提供できます。

sender-vouches 確認方式は、サーバーがクライアントに代わって SOAP メッセージと共に クライアント ID を伝搬する必要があるときに 使用されます。この方式は ID アサーションに似ていますが、 SAML アサーションを使用して、クライアント ID だけでなく、 クライアント属性も伝搬するという点で、柔軟性が増しています。証明エンティティーは、 保証対象の SAML アサーションおよび SOAP メッセージ内容を保護して、 別の者によって変更されていないことを受信側が検証できるように する必要があります。sender-vouches 確認方式では、トランスポート・レベルまたは メッセージ・レベルのどちらかでメッセージ保護を保証する、2 つの 使用シナリオがサポートされています。受信側は、以下のいずれかのシナリオ の発生を検証します。
  • 送信側が、クライアント証明書認証を使用して、受信側との Secure Sockets Layer (SSL) セッションを セットアップします。
  • 送信側が、セキュリティー・トークン参照変換アルゴリズムを使用して、SAML アサーションとそれを含んでいる SOAP メッセージ にデジタル署名します。送信側は、機密性を保護するため、 SSL または SOAP メッセージ暗号化のどちらかを使用できます。
どちらの場合でも、SAML アサーションは 外部セキュリティー・トークン・サービス (STS) によって発行されるか、または、アプリケーション・サーバーによって自己発行されます。

bearer アサーション

OASIS Web Services Security 仕様に規定されているように、SAML アサーション に bearer <saml:ConfirmationMethod> エレメントが含まれている場合、それは bearer アサーション です。詳しくは、仕様に関する資料を参照してください。
SAML バージョン 1.1 bearer アサーションは、以下の SubjectConfirmation エレメントも含んでいなければ なりません。
<saml:SubjectConfirmation> 
	 	 <saml:ConfirmationMethod> 
				urn:oasis:names:tc:SAML:1.0:cm:bearer
	 	 </saml:ConfirmationMethod>
</saml:SubjectConfirmation>
SAML バージョン 2.0 bearer アサーション は、以下の SubjectConfirmation エレメントも含んでいなければ なりません。
<saml2:SubjectConfirmation     
      Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
</saml2:SubjectConfirmation>

holder-of-key アサーション

SAML アサーションに SubjectConfirmation エレメント が含まれていて、その中の saml:ConfirmationMethod エレメントの 値が holder-of-key であり、さらに ds:KeyInfo エレメントが含まれていれば、それは holder-of-key アサーションです。 詳しくは、仕様に関する資料を参照してください。

SubjectConfirmation エレメント の中にある ds:KeyInfo 情報は、 サブジェクトの ID を確認するために使用される、公開鍵または秘密鍵を指定 します。holder-of-key アサーションには、ds:Signature エレメントも 含まれます。このエレメントは、アサーション権限によって確立された確認 ds:KeyInfo エレメント の整合性を保護します。

SAML バージョン 1.1 holder-of-key アサーションは、以下の SubjectConfirmation エレメントを含んでいなければなりません。
<saml:SubjectConfirmation> 
  	 <saml:ConfirmationMethod> 
   urn:oasis:names:tc:SAML:1.0:cm: holder-of-key
   	 </saml:ConfirmationMethod>
  <ds:KeyInfo>
  <ds:KeyValue>. . .</ds:KeyValue>
  </ds:KeyInfo>
</saml:SubjectConfirmation>
SAML バージョン 2.0 holder-of-key アサーションは、以下の SubjectConfirmation エレメントを含んでいなければなりません。
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
    <saml2:SubjectConfirmationData>
			<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                    ......
			</ds:KeyInfo>
     </saml2:SubjectConfirmationData>
</saml2:SubjectConfirmation>

sender-vouches アサーション

OASIS Web Services Security 仕様に規定されているように、SAML アサーションに sender-vouches <saml:ConfirmationMethod> エレメントが含まれている場合、それは sender-vouches アサーションです。SAML バージョン 1.1 sender-vouches アサーションは、 以下の SubjectConfirmation エレメントを含んでいなければなりません。
<saml:SubjectConfirmation> 
	 	 <saml:ConfirmationMethod> 
				urn:oasis:names:tc:SAML:1.0:cm:sender-vouches
	 	 </saml:ConfirmationMethod>
</saml:SubjectConfirmation>
SAML バージョン 2.0 sender-vouches アサーションは、 以下の SubjectConfirmation エレメントを含んでいなければなりません。
<saml2:SubjectConfirmation     
          Method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches">
</saml2:SubjectConfirmation>

holder-of-key アサーションにおける対称鍵

SAML holder-of-key アサーションは、 保護トークンとして使用されます。このタイプの保護トークン は、証明鍵として対称鍵を使用できます。クライアントは証明鍵を 使用して、発行された SAML トークンをクライアントが実際に 所有していることを、依存側に示します。セキュリティー・トークン・サービス (STS) が 発行した SAML トークンが対称的な証明鍵を使用している場合、そのトークンは、 ターゲット・サービス用に暗号化された鍵を含んでいます。STS は、 RequestSecurityTokenResponse (RSTR) の一部として、同じ証明鍵を <RequestedProofToken> エレメントに入れて要求側に も送信します。Web サービス・クライアントは、その後、ターゲット・サービス (「依存側」とも呼ばれる) に SAML トークンを提示し、受け取った証明鍵を使用してアプリケーション・メッセージに署名します。
対称的な証明鍵を発行するよう に STS を事前に構成することができます。通常、対称鍵が STS から要求される場合、以下の 2 つのパラメーター が RequestSecurityToken (RST) 内で RequestSecurityTokenTemplate の中に 指定されます。
<t:KeyType> http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey
  </t:KeyType>
<t:KeySize>256</t:KeySize>      
以下 の SubjectConfirmation エレメント例は、依存側のための暗号化された SymmetricKey を 含んでいます。
<saml:SubjectConfirmation>
      <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:holder-of-key</saml:ConfirmationMethod> 
          <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
             <enc:EncryptedKey xmlns:enc="http://www.w3.org/2001/04/xmlenc#">
             <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
          <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
             </enc:EncryptionMethod>
          <ds:KeyInfo>
            <ds:X509Data>
              <ds:X509Certificate>MIIB3 . . . vO3bdg</ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
     <enc:CipherData>
         <enc:CipherValue>P5Kb . . . rOTvII</enc:CipherValue> 
            </enc:CipherData>
            </enc:EncryptedKey>
     </ds:KeyInfo>
</saml:SubjectConfirmation>

holder-of-key アサーションにおける公開鍵

SAML holder-of-key アサーションが 保護トークンとして使用される場合、トークン は証明鍵として公開鍵を使用できます。クライアントは証明鍵を 使用して、発行された SAML トークンをクライアントが実際に 所有していることを、依存側に示します。公開証明鍵が対称鍵よりも優れている点は、 クライアントがセキュリティー・トークン・サービス (STS) および依存側と 秘密鍵を共有しないことです。公開証明鍵 は、X509 証明書であるか、または、Rivest Shamir Adleman (RSA) 公開鍵 であることが可能です。
公開鍵を証明鍵として発行するように STS を事前に構成することができます。 通常、STS から公開鍵が要求される場合、RequestSecurityToken (RST) の一部として、パラメーター <t:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/PublicKey</t:KeyType>が RequestSecurityTokenTemplate の中に指定されます。以下のように、オプション の UseKey エレメントが、鍵を示すためにクライアントによって使用されることも 可能です。
<trust:UseKey>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <X509Data>
        <X509Certificate>MIIGCzCCBPOgAwIBAgIQcSgVwaoQv6dG. . .1GqB
        </X509Certificate>
      </X509Data>
    </KeyInfo> 
</trust:UseKey> 
以下の例は、公開証明鍵を 含んでいる SubjectConfirmation です。
<saml:SubjectConfirmation>
         <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:holder-of-key</saml:ConfirmationMethod> 
            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:KeyValue>
                    <ds:RSAKeyValue>
                      <ds:Modulus>hYHQm. . . ZnH1S0=</ds:Modulus> 
            <ds:Exponent>AQAB</ds:Exponent> 
                    </ds:RSAKeyValue>
                </ds:KeyValue>
            </ds:KeyInfo>
</saml:SubjectConfirmation>

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_samltokenprofilespec
ファイル名:cwbs_samltokenprofilespec.html