次の方法で共有


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

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

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

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

クライアント

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

サーバー

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

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

Metadata

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のプロパティを定義します。