次の方法で共有


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

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

セキュリティ コンテキストでは、コンテキストで送信されたメッセージをセキュリティで保護するために使用されるブートストラップ セキュリティ資格情報が必要です。 この目的には、WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDINGWS_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 関数を呼び出すことによって取得できます。 取得した値は、WsRevokeSecurityContextと共に使用し、WsGetSecurityContextPropertyできます。

メタデータ

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

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

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

 

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

 

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

 

構造 形容
WS_SECURITY_CONTEXT_PROPERTY WS_SECURITY_CONTEXTのプロパティを定義します。