Windows Communication Foundation (WCF) は、WS-Atomic トランザクションプロトコルと WS-Coordination プロトコルを実装します。
仕様/ドキュメント | バージョン | リンク |
---|---|---|
WS-Coordination | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wscoor/ https://docs.oasis-open.org/ws-tx/wscoor/2006/06 |
WS-AtomicTransaction | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wsat/ https://docs.oasis-open.org/ws-tx/wsat/2006/06 |
これらのプロトコル仕様の相互運用性は、アプリケーション間とトランザクション マネージャー間の 2 つのレベルで必要です (次の図を参照)。 仕様では、両方の相互運用性レベルのメッセージ形式とメッセージ交換について詳しく説明します。 アプリケーション間交換の特定のセキュリティ、信頼性、およびエンコードは、通常のアプリケーション交換の場合と同様に適用されます。 ただし、トランザクション マネージャー間の相互運用性が正常に行われるには、通常はユーザーによって構成されないため、特定のバインディングに関する契約が必要です。
この記事では、WS-Atomic Transaction (WS-AT) 仕様とセキュリティの構成について説明し、トランザクション マネージャー間の通信に使用されるセキュリティで保護されたバインディングについて説明します。 この記事で説明するアプローチは、IBM、IONA、Sun Microsystems など、WS-AT および WS-Coordination の他の実装で正常にテストされています。
次の図は、トランザクション マネージャー 1 とトランザクション マネージャー 2 の 2 つのトランザクション マネージャーと、アプリケーション 1 とアプリケーション 2 の 2 つのアプリケーション間の相互運用性を示しています。
1 つのイニシエーター (I) と 1 つの参加者 (P) を使用する一般的な WS-Coordination/WS-Atomic Transaction シナリオについて考えてみましょう。 イニシエーターと参加者の両方にトランザクション マネージャー (それぞれ ITM と PTM) があります。 この記事では、2 フェーズ コミットを 2PC と呼びます。
- CreateCoordinationContext
- CreateCoordinationContextResponse
- 登録 (完了)
- RegisterResponse
- アプリケーション メッセージ
- コンテキストでの CreateCoordinationContext
- Register (永続的)
- RegisterResponse
- CreateCoordinationContextResponse
- Register (永続的)
- RegisterResponse
- アプリケーション メッセージの応答
- コミット (完了)
- 準備 (2PC)
- 準備 (2PC)
- 準備済み (2PC)
- 準備済み (2PC)
- Committed (完了)
- コミット (2PC)
- コミット (2PC)
- コミット済み (2PC)
- コミット済み (2PC)
図と表は、セキュリティの観点から 4 つのクラスのメッセージを示しています。
アクティブ化メッセージ (CreateCoordinationContext と CreateCoordinationContextResponse)。
登録メッセージ (Register と RegisterResponse)
プロトコル メッセージ (準備、ロールバック、コミット、中止など)。
アプリケーション メッセージ。
最初の 3 つのメッセージ クラスはトランザクション マネージャー メッセージと見なされ、バインドの構成については、このトピックで後述する「Application Message Exchange」で説明します。 メッセージの 4 番目のクラスはアプリケーション メッセージへのアプリケーションであり、このトピックで後述する「メッセージの例」セクションで説明します。 このセクションでは、WCF によってこれらのクラスごとに使用されるプロトコル バインドについて説明します。
このドキュメントでは、次の XML 名前空間と関連するプレフィックスを使用します。
接頭辞 | バージョン | 名前空間 URI |
---|---|---|
s11 | https://schemas.xmlsoap.org/soap/envelope/ | |
wsa | 1.0 より前 1.0 |
https://www.w3.org/2004/08/addressing https://www.w3.org/2005/08/addressing/ |
wscoor | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wscoor/ https://docs.oasis-open.org/ws-tx/wscoor/2006/06 |
wsat | 1.0 1.1 |
https://schemas.xmlsoap.org/ws/2004/10/wsat/ https://docs.oasis-open.org/ws-tx/wsat/2006/06 |
t | 1.3 より前 1.3 |
https://schemas.xmlsoap.org/ws/2005/02/trust/ https://docs.oasis-open.org/ws-sx/ws-trust/200512 |
o | https://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd | |
xsd | https://www.w3.org/2001/XMLSchema |
トランザクション マネージャー バインディング
R1001: WS-AT 1.0 トランザクションに参加しているトランザクション マネージャーは、WS-Atomic トランザクションと WS-Coordination メッセージ交換に SOAP 1.1 と WS-Addressing 2004/08 を使用する必要があります。
R1002: WS-AT 1.1 トランザクションに参加しているトランザクション マネージャーは、WS-Atomic トランザクションと WS-Coordination メッセージ交換に SOAP 1.1 と WS-Addressing 2005/08 を使用する必要があります。
アプリケーション メッセージはこれらのバインドに制約されず、後で説明します。
トランザクション マネージャーの HTTPS 結合
トランザクション マネージャーの HTTPS バインドは、セキュリティを実現し、トランザクション ツリー内の各送信側と受信者のペア間の信頼を確立するために、トランスポート セキュリティのみに依存します。
HTTPS トランスポート構成
X.509 証明書は、トランザクション マネージャー ID を確立するために使用されます。 クライアント/サーバー認証が必要であり、クライアント/サーバーの承認は実装の詳細として残されます。
R1111: ネットワーク経由で提示される X.509 証明書には、送信元マシンの完全修飾ドメイン名 (FQDN) と一致するサブジェクト名が必要です。
B1112: X.509 サブジェクト名チェックが成功するには、システム内の各送信者と受信者のペアの間で DNS が機能している必要があります。
アクティベーションと登録バインドの設定
WCF では、HTTPS との相関関係を持つ要求/応答双方向バインディングが必要です。 (要求/応答メッセージ交換パターンの相関関係と説明の詳細については、WS-Atomic トランザクション、セクション 8 を参照してください)。
2PC プロトコルのバインディング構成
WCF では、HTTPS 経由の一方向 (データグラム) メッセージがサポートされます。 メッセージ間の相関関係は、実装の詳細として残されます。
B1131: WCF の 2PC メッセージの相関関係を実現するには、WS-Addressing で説明されているように、実装で wsa:ReferenceParameters
をサポートする必要があります。
トランザクション マネージャーによる混合セキュリティ バインディング
これは、ID の確立のためにトランスポート セキュリティと WS-Coordination 発行済みトークン モデルを組み合わせて使用する代替 (混合モード) バインディングです。 アクティブ化と登録は、2 つのバインディング間で異なる唯一の要素です。
HTTPS トランスポート構成
X.509 証明書は、トランザクション マネージャー ID を確立するために使用されます。 クライアント/サーバー認証が必要であり、クライアント/サーバーの承認は実装の詳細として残されます。
アクティベーション メッセージのバインド構成
通常、アクティブ化メッセージは、アプリケーションとそのローカル トランザクション マネージャーの間で発生するため、相互運用性に関与しません。
B1221: WCF は、アクティブ化メッセージに双方向 HTTPS バインディング ( メッセージング プロトコルで説明) を使用します。 要求メッセージと応答メッセージは、WS-AT 1.0 の場合は WS-Addressing 2004/08、WS-AT 1.1 の場合は 2005/08 WS-Addressing を使用して関連付けられます。
WS-Atomic トランザクションの仕様、セクション 8 では、相関関係とメッセージ交換パターンの詳細について説明します。
R1222:
CreateCoordinationContext
を受け取ると、コーディネーターは関連するシークレットSecurityContextToken
を持つSTx
を発行する必要があります。 このトークンは、WS-Trust 仕様に従って、t:IssuedTokens
ヘッダー内で返されます。R1223: 既存の調整コンテキスト内でアクティブ化が行われる場合、既存のコンテキストに関連付けられた
t:IssuedTokens
を持つSecurityContextToken
ヘッダーは、CreateCoordinationContext
メッセージでフローする必要があります。
送信t:IssuedTokens
メッセージに添付するために、新しいwscoor:CreateCoordinationContextResponse
ヘッダーを生成する必要があります。
登録メッセージのバインディング構成
B1231: WCF は双方向 HTTPS バインディングを使用します ( メッセージング プロトコルで説明)。 要求メッセージと応答メッセージは、WS-AT 1.0 の場合は WS-Addressing 2004/08、WS-AT 1.1 の場合は 2005/08 WS-Addressing を使用して関連付けられます。
WS-AtomicTransaction セクション 8 では、メッセージ交換パターンの相関関係と説明の詳細について説明します。
R1232: 送信wscoor:Register
メッセージでは、「IssuedTokenOverTransport
」で説明されている認証モードを使用する必要があります。
wsse:Timestamp
要素は、発行されたSecurityContextToken STx
を使用して署名する必要があります。 この署名は、特定のトランザクションに関連付けられているトークンの所有証明であり、トランザクションに参加している参加者を認証するために使用されます。 RegistrationResponse メッセージは HTTPS 経由で返送されます。
2PC プロトコルのバインディング構成
WCF では、HTTPS 経由の一方向 (データグラム) メッセージがサポートされます。 メッセージ間の相関関係は、実装の詳細として残されます。
B1241: WCF の 2PC メッセージの相関関係を実現するには、WS-Addressing で説明されているように、実装で wsa:ReferenceParameters
をサポートする必要があります。
アプリケーションメッセージ交換
アプリケーションは、バインディングが次のセキュリティ要件を満たしている限り、アプリケーション間メッセージに対して任意の特定のバインディングを自由に使用できます。
R2001: アプリケーション間メッセージは、メッセージのヘッダー内の
t:IssuedTokens
と共に、CoordinationContext
ヘッダーをフローする必要があります。R2002:
t:IssuedToken
の整合性と機密性を提供する必要があります。
CoordinationContext
ヘッダーにはwscoor:Identifier
が含まれています。
xsd:AnyURI
の定義では絶対 URI と相対 URI の両方を使用できます。WCF では、絶対 URI であるwscoor:Identifiers
のみがサポートされます。
B2003: wscoor:Identifier
のwscoor:CoordinationContext
が相対 URI の場合、トランザクション WCF サービスからエラーが返されます。
メッセージの例
CreateCoordinationContext 要求/応答メッセージ
次のメッセージは、要求/応答パターンに従います。
CreateCoordinationContextをWSCoor 1.0で作成する
<s:Envelope>
<s:Header>
<a:Action>http://.../ws/2004/10/wscoor/CreateCoordinationContext</Action>
<a:MessageID>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</MessageID>
<a:ReplyTo>
<Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security>
<u:Timestamp>
<wsu:Created>2005-12-15T23:36:09.921Z</wsu:Created>
<wsu:Expires>2005-12-15T23:41:09.921Z</wsu:Expires>
</u:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:CreateCoordinationContext>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
</wscoor:CreateCoordinationContext>
</s:Body>
</s:Envelope>
WSCoor 1.1 での CreateCoordinationContext
<s:Envelope>
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext
</a:Action>
<a:MessageID>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</MessageID>
<a:ReplyTo>
<Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security>
<u:Timestamp>
<wsu:Created>2005-12-15T23:36:09.921Z</wsu:Created>
<wsu:Expires>2005-12-15T23:41:09.921Z</wsu:Expires>
</u:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:CreateCoordinationContext>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
</wscoor:CreateCoordinationContext>
</s:Body>
</s:Envelope>
Trust Pre-1.3 および WSCoor 1.0 での CreateCoordinationContextResponse
<s:Envelope>
<!-- Data below is shown in the clear for
illustration purposes only. -->
<s:Header>
<a:Action>./ws/2004/10/wscoor/CreateCoordinationContextResponse </a:Action>
<a:RelatesTo>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</a:RelatesTo>
<a:To s:mustUnderstand="1">https://... </a:To>
<t:IssuedTokens>
<wst:RequestSecurityTokenResponse
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"
xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wst:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</wst:TokenType>
<wst:RequestedSecurityToken>
<wsc:SecurityContextToken>
<wssu:Identifier>
http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
</wst:RequestedSecurityToken>
<wsp:AppliesTo>
http://fabrikam123.com/CCi
</wsp:AppliesTo>
<wst:RequestedAttachedReference>
<wsse:SecurityTokenReference >
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedAttachedReference>
<wst:RequestedUnattachedReference>
<wsse:SecurityTokenReference>
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedUnattachedReference>
<wst:RequestedProofToken>
<wst:BinarySecret
Type="http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey">
<!-- base64 encoded value -->
</wst:BinarySecret>
</wst:RequestedProofToken>
<wst:Lifetime>
<wssu:Created>2005-10-24T20:19:26.526Z</wssu:Created>
<wssu:Expires>2005-10-25T06:24:26.526Z</wssu:Expires>
</wst:Lifetime>
<wst:KeySize>256</wst:KeySize>
</wst:RequestSecurityTokenResponse>
</t:IssuedTokens>
<o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2005-12-15T23:36:12.015Z</u:Created>
<u:Expires>2005-12-15T23:41:12.015Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<wscoor:CreateCoordinationContextResponse>
<wscoor:CoordinationContext>
<wscoor:Identifier>
http://fabrikam123.com/CCi
</wscoor:Identifier>
<wscoor:Expires>...</wscoor:Expires>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
<wscoor:RegistrationService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters>
...
</a:ReferenceParameters>
</wscoor:RegistrationService>
</wscoor:CoordinationContext>
</wscoor:CreateCoordinationContextResponse>
</s:Body>
</s:Envelope>
Trust 1.3 および WSCoor 1.1 での CreateCoordinationContextResponse
<s:Envelope>
<!-- Data below is shown in the clear for illustration purposes only. -->
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContextResponse </a:Action>
<a:RelatesTo>urn:uuid:069f5104-fd88-4264-9f99-60032a82854e</a:RelatesTo>
<a:To s:mustUnderstand="1">https://... </a:To>
<t:IssuedTokens>
<wst:RequestSecurityTokenResponse
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512"
xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wst:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</wst:TokenType>
<wst:RequestedSecurityToken>
<wsc:SecurityContextToken>
<wssu:Identifier> http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
</wst:RequestedSecurityToken>
<wsp:AppliesTo> http://fabrikam123.com/CCi </wsp:AppliesTo>
<wst:RequestedAttachedReference>
<wsse:SecurityTokenReference >
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedAttachedReference>
<wst:RequestedUnattachedReference>
<wsse:SecurityTokenReference>
<wsse:Reference
ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct"
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</wst:RequestedUnattachedReference>
<wst:RequestedProofToken>
<wst:BinarySecret
Type="http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey">
<!-- base64 encoded value -->
</wst:BinarySecret>
</wst:RequestedProofToken>
<wst:Lifetime>
<wssu:Created>2005-10-24T20:19:26.526Z</wssu:Created>
<wssu:Expires>2005-10-25T06:24:26.526Z</wssu:Expires>
</wst:Lifetime>
<wst:KeySize>256</wst:KeySize>
</wst:RequestSecurityTokenResponse>
</t:IssuedTokens>
<o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2005-12-15T23:36:12.015Z</u:Created>
<u:Expires>2005-12-15T23:41:12.015Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<wscoor:CreateCoordinationContextResponse>
<wscoor:CoordinationContext>
<wscoor:Identifier> http://fabrikam123.com/CCi
</wscoor:Identifier>
<wscoor:Expires>...</wscoor:Expires>
<wscoor:CoordinationType>...</wscoor:CoordinationType>
<wscoor:RegistrationService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters> ...
</a:ReferenceParameters>
</wscoor:RegistrationService>
</wscoor:CoordinationContext>
</wscoor:CreateCoordinationContextResponse>
</s:Body>
</s:Envelope>
登録メッセージ
次のメッセージは登録メッセージです。
WSCoor 1.0 に登録する
<s:Envelope>
<s:Header>
<a:Action>http://schemas.xmlsoap.org/ws/2004/10/wscoor/Register</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e</a:MessageID>
<a:ReplyTo>
<a:Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
<wsc:SecurityContextToken>
<wssu:Identifier>
http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
<!-- supporting signature over the timestamp -->
<wsse:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<ds:Reference URI="#_0">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>
alRzyhjLgoUOYoh8cx4n75eTcUk=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>YZYjnVvSOVasAQqQxaaviTSWtqI=</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Reference
URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</wsse:Signature>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:Register>
<wscoor:ProtocolIdentifier>...</wscoor:ProtocolIdentifier>
<wscoor:ParticipantProtocolService>
<a:Address>https://... </a:Address>
</wscoor:ParticipantProtocolService>
</wscoor:Register>
</s:Body>
</s:Envelope>
WSCoor 1.1 に登録する
<s:Envelope>
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e</a:MessageID>
<a:ReplyTo>
<a:Address>https://...</a:Address>
</a:ReplyTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
<wsc:SecurityContextToken>
<wssu:Identifier> http://fabrikam123.com/SCTi
</wssu:Identifier>
</wsc:SecurityContextToken>
<!-- supporting signature over the timestamp -->
<wsse:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<ds:Reference URI="#_0">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue> alRzyhjLgoUOYoh8cx4n75eTcUk=
</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>YZYjnVvSOVasAQqQxaaviTSWtqI=
</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Reference URI="http://fabrikam123.com/SCTi"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</wsse:Signature>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:Register>
<wscoor:ProtocolIdentifier>...</wscoor:ProtocolIdentifier>
<wscoor:ParticipantProtocolService>
<a:Address>https://... </a:Address>
</wscoor:ParticipantProtocolService>
</wscoor:Register>
</s:Body>
</s:Envelope>
応答を WSCoor 1.0 に登録する
<s:Envelope>
<s:Header>
<a:Action>
http://schemas.xmlsoap.org/ws/2004/10/wscoor/RegisterResponse
</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088d</a:MessageID>
<a:RelatesTo>
urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e
</a:RelatesTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp>
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:RegisterResponse>
<wscoor:CoordinatorProtocolService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters>
...
</a:ReferenceParameters>
</wscoor:CoordinatorProtocolService>
</wscoor:RegisterResponse>
</s:Body>
</s:Envelope>
応答を WSCoor 1.1 に登録する
<s:Envelope>
<s:Header>
<a:Action> http://docs.oasis-open.org/ws-tx/wscoor/2006/06/RegisterResponse
</a:Action>
<a:MessageID>urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088d</a:MessageID>
<a:RelatesTo> urn:uuid:ed418b86-a75e-4aea-9d4e-a5d0cb5c088e </a:RelatesTo>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp>
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wscoor:RegisterResponse>
<wscoor:CoordinatorProtocolService>
<a:Address>https://...</a:Address>
<a:ReferenceParameters> ... </a:ReferenceParameters>
</wscoor:CoordinatorProtocolService>
</wscoor:RegisterResponse>
</s:Body>
</s:Envelope>
2段階コミットプロトコルメッセージ
次のメッセージは、2 フェーズ コミット (2PC) プロトコルに関連しています。
WSAT 1.0 での Commit
<s:Envelope>
<s:Header>
<a:Action>http://.../ws/2004/10/wsat/Commit</a:Action>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wsat:Commit />
</s:Body>
</s:Envelope>
WSAT 1.1 での Commit
<s:Envelope>
<s:Header>
<a:Action>http://docs.oasis-open.org/ws-tx/wsat/2006/06</a:Action>
<a:To>https://...</a:To>
<wsse:Security
s:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wssu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wssu:Timestamp wssu:Id="_0" >
<wssu:Created>2005-12-15T23:36:13.827Z</wssu:Created>
<wssu:Expires>2005-12-15T23:41:13.827Z</wssu:Expires>
</wssu:Timestamp>
</wsse:Security>
</s:Header>
<s:Body xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<wsat:Commit />
</s:Body>
</s:Envelope>
アプリケーション メッセージ
次のメッセージはアプリケーション メッセージです。
アプリメッセージ要求
<s:Envelope>
<s:Header>
<!-- Addressing headers, all signed-->
<wsse:Security s:mustUnderstand="1">
<wssu:Timestamp wssu:Id="timestamp">
<wssu:Created>2005-10-25T06:29:18.703Z</wssu:Created>
<wssu:Expires>2005-10-25T06:34:18.703Z</wssu:Expires>
</wssu:Timestamp>
<wsse:BinarySecurityToken
wssu:Id="IA_Certificate"
ValueType="...#X509v3"
EncodingType="...#Base64Binary">
<!-- IA certificate -->
</wsse:BinarySecurityToken>
<e:EncryptedKey Id="encrypted_key">
<!-- ephemeral key encrypted for PA certificate -->
<e:ReferenceList xmlns:e="http://www.w3.org/2001/04/xmlenc#">
<e:DataReference URI="#encrypted_body"/>
<e:DataReference URI="#encrypted_CCi"/>
<e:DataReference URI="#encrypted_issuedtokens"/>
</e:ReferenceList>
</e:EncryptedKey>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<!-- signature over Addressing headers, Timestamp, and Body -->
</Signature>
</wsse:Security>
<wsse11:EncryptedHeader>
<!-- encrypted wscoor:CoordinationContext header containing CCi -->
</wsse11:EncryptedHeader>
<wsse11:EncryptedHeader>
<!-- encrypted wst:IssuedTokens header containing SCTi -->
<!-- wst:IssuedTokens header is taken verbatim from message #2 above, omitted for brevity -->
</wsse11:EncryptedHeader>
</s:Header>
<s:Body wssu:Id="body">
<!-- encrypted content of the Body element of the application message -->
<e:EncryptedData Id="encrypted_body"
Type="http://www.w3.org/2001/04/xmlenc#Content"
xmlns:e="http://www.w3.org/2001/04/xmlenc#">
...
</e:EncryptedData>
</s:Body>
</s:Envelope>