セキュリティ コンテキスト
セキュリティ コンテキストを使用すると、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_CONTEXTで WsGetMessageProperty 関数を呼び出すことによって取得できます。 取得した値は、 WsRevokeSecurityContext と WsGetSecurityContextProperty で使用できます。
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のプロパティを定義します。 |