Share via


보안 컨텍스트

보안 컨텍스트를 사용하면 WS-SecureConversation에 따라 메시지 보안 컨텍스트를 설정할 수 있습니다. 그런 다음, 해당 컨텍스트를 사용하여 모든 요청에 대해 자격 증명이 전송되는 원샷 보안 대신 메시지를 보호할 수 있습니다. 설정된 보안 컨텍스트는 여러 메시지를 교환할 때 메시지를 보호하는 보다 효율적인 방법입니다.

보안 컨텍스트에는 컨텍스트에서 보낸 메시지를 보호하는 데 사용되는 부트스트랩 보안 자격 증명이 있어야 합니다. 이 목적을 위해 WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING, WS_XML_TOKEN_MESSAGE_SECURITY_BINDINGWS_USERNAME_MESSAGE_SECURITY_BINDING 구조체를 사용할 수 있습니다.

보안 컨텍스트는 메시지 보안 기능이며 메시지 보안 바인딩을 통해 구성됩니다.

클라이언트

클라이언트 쪽에서 보안 컨텍스트는 특정 채널에 연결됩니다. WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING 사용하여 구성됩니다. 컨텍스트의 동작 및 수명은 채널에 의해 결정됩니다. 채널에서 첫 번째 메시지를 보내면 보안 컨텍스트가 설정됩니다. 그 후 컨텍스트는 구성 가능한 간격으로 사전에 갱신됩니다. 서버가 컨텍스트에 갱신이 필요함을 나타내는 오류를 반환하는 경우 다음 메시지를 보낼 때 컨텍스트가 갱신됩니다. 채널이 열려 있는 상태이면 채널이 닫혀 있을 때 취소 메시지에 의해 컨텍스트가 취소됩니다.

서버

서버에서 보안 컨텍스트는 클라이언트와 동일한 방식으로 구성됩니다. 그러나 특정 채널에는 연결되지 않습니다. 대신 , WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING 집합이 있는 수신기에 대해 만들어진 모든 채널은 해당 수신기의 채널에 설정된 보안 컨텍스트로 메시지를 받을 수 있습니다.

보안 컨텍스트를 지원하는 채널에 메시지가 도착하면 WS_MESSAGE_PROPERTY_SECURITY_CONTEXT WsGetMessageProperty 함수를 호출하여 해당 메시지에서 사용하는 컨텍스트를 가져올 수 있습니다. 검색된 값은 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 속성을 정의합니다.