高信頼性メッセージングを保護するためのセキュリティー・コンテキスト・トークンの設定のフロー
このシナリオ例には、Web Services Reliable Messaging (WS-ReliableMessaging)、 WS-SecureConversation、および WS-Trust のコンポジット・シナリオに必要な機能が記載されています。 このシナリオには、WS-ReliableMessaging で WS-SecureConversation を使用する方法が 記述されています。また、シナリオは WS-SecureConversation の観点から記述されています。
この Web Services Reliable Messaging (WS-ReliableMessaging) シナリオの流れは、WS-SecureConversation の流れと非常に似ており、アプリケーション・メッセージの交換は Secure Conversation のシナリオと非常に似ています。 2 つのシナリオ例の主な違いは、WS-ReliableMessaging シーケンスはセキュリティー・コンテキスト・トークンで保護されており、セキュリティー・コンテキスト・トークンに WS-ReliableMessaging シーケンスをスコープ宣言することです。
次の図には、セキュリティー・コンテキスト・トークンを設定して、 高信頼性メッセージングを保護するために必要なメッセージ・フローの要約が記述されています。

シナリオ
WS-ReliableMessaging シーケンスは、セキュリティー・コンテキスト・トークンで保護されており、セキュリティー・コンテキスト・トークンに WS-ReliableMessaging シーケンスをスコープ宣言します。 このシナリオでは、総合的なフローでセキュリティー・コンテキスト・トークンを使用するメッセージ交換に焦点を当てています。
通常、Secure Conversation およびセキュリティー・コンテキスト・トークンを使用して、高信頼性メッセージングを保護するには、以下のステップが必要です。
- WS-ReliableMessaging ランタイムは、セッション用のセキュリティー・コンテキスト・トークンの UUID を取得するために Web Services Security ランタイムから API を呼び出し、また、高信頼性リカバリーのために、
管理パーシスタントのセキュリティー・コンテキスト・トークンをシリアライズおよびデシリアライズするための API も呼び出します。
セキュリティー・コンテキスト・トークンのセキュリティーの性質上、WS-ReliableMessaging プロトコルは、パーシスタント・ストア内のシリアライズ済みセキュリティー・コンテキスト・トークンが保護されていることを確認します。
- 設定済みのセキュリティー・コンテキスト・トークンが既にある場合、既存のセキュリティー・コンテキスト・トークンの UUID が WS-ReliableMessaging に戻されます。既に設定済みのセキュリティー・コンテキスト・トークンがない場合は、Web Services Security ランタイムは、セキュリティー・コンテキスト・トークンを設定するために受信側への呼び出しを開始します。
後者のケースは、Secure Conversation のシナリオに似ています。
- WS-ReliableMessaging ランタイムがセキュリティー・コンテキスト・トークンの UUID を獲得した後、WS-ReliableMessaging ランタイムは、CreateSequence メッセージの SecurityTokenReference (STR) 引数を使用することで CreateSequence メッセージをセキュリティー・コンテキスト・トークンにスコープ宣言し、CreateSequenceResponse メッセージで応答します。
アプリケーション・メッセージの交換は、WS-SecureConversation のシナリオと非常に似ています。
- WS-ReliableMessaging ランタイムは、CreateSequenceResponse メッセージで応答します。
このメッセージの交換は、WS-SecureConversation シナリオでのメッセージ交換に非常に似ています。
- WS-ReliableMessaging ランタイムは、メッセージが適切に送達され、セキュリティー・コンテキスト・トークンにより保護されていることを応答するために、SequenceAcknowledgement メッセージを送信します。
- 最後に、WS-ReliableMessaging ランタイムは、TerminateSequence メッセージを送信してシーケンスを終了し、セキュリティー・コンテキスト・トークンによって保護されます。