セキュリティ コンテキスト

セキュリティ コンテキストを使用すると、WS-SecureConversation に従ってメッセージ セキュリティ コンテキストを確立できます。 そのコンテキストを使用すると、すべての要求に対して資格情報が送信されるワンショット セキュリティの代わりに、メッセージをセキュリティで保護できます。 確立されたセキュリティ コンテキストは、複数のメッセージが交換されたときにメッセージをセキュリティで保護するより効率的な方法です。

セキュリティ コンテキストでは、コンテキストで送信されたメッセージをセキュリティで保護するために使用されるブートストラップ セキュリティ資格情報が存在する必要があります。 この目的には、 WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDINGWS_XML_TOKEN_MESSAGE_SECURITY_BINDINGおよびWS_USERNAME_MESSAGE_SECURITY_BINDING 構造体を使用できます。

セキュリティ コンテキストはメッセージ セキュリティ機能であり、メッセージ セキュリティ バインドを使用して構成されます。

Client

クライアント側では、セキュリティ コンテキストは特定のチャネルに関連付けられています。 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDINGを使用して構成されます。 コンテキストの動作と有効期間は、チャネルによって決まります。 チャネルで最初のメッセージが送信されると、セキュリティ コンテキストが確立されます。 その後、コンテキストは構成可能な間隔で事前に更新されます。 コンテキストに更新が必要であることを示すエラーがサーバーから返された場合、次のメッセージが送信されるとコンテキストが更新されます。 チャネルが開いている状態の場合、チャネルが閉じられると、キャンセル メッセージによってコンテキストが取り消されます。

サーバー

サーバーでは、クライアントと同じ方法でセキュリティ コンテキストが構成されます。 ただし、特定のチャネルには関連付けられません。 代わりに、 WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING セットを持つリスナー用に作成されたすべてのチャネルは、そのリスナーのチャネルで確立されたセキュリティ コンテキストのいずれかでメッセージを受信できます。

セキュリティ コンテキストをサポートするチャネルにメッセージが到着すると、そのメッセージで使用されるコンテキストは、WS_MESSAGE_PROPERTY_SECURITY_CONTEXTWsGetMessageProperty 関数を呼び出すことによって取得できます。 取得した値は、 WsRevokeSecurityContextWsGetSecurityContextProperty で使用できます。

メタデータ

WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT構造は、メタデータからセキュリティ コンテキスト ポリシーを抽出するために使用されます。 詳細については、「 メタデータのインポート」を参照してください。

次の API 要素は、セキュリティ コンテキストで使用されます。

列挙 説明
WS_SECURITY_CONTEXT_PROPERTY_ID セキュリティ コンテキスト オブジェクトのプロパティを識別します。

 

機能 説明
WsGetSecurityContextProperty 指定したセキュリティ コンテキストのプロパティを取得します。
WsRevokeSecurityContext セキュリティ コンテキストを取り消します。

 

Handle 説明
WS_SECURITY_CONTEXT セキュリティ コンテキスト オブジェクトを参照するために使用される不透明な型。

 

構造体 説明
WS_SECURITY_CONTEXT_PROPERTY WS_SECURITY_CONTEXTのプロパティを定義します。