다음을 통해 공유


보안 세션에 대한 보안 고려 사항

보안 세션 구현 시 보안에 영향을 주는 다음 항목에 대해 고려해야 합니다. 보안 고려 사항에 대한 자세한 내용은 보안 고려 사항보안 모범 사례를 참조하세요.

보안 세션 및 메타데이터

보안 세션이 설정되고 RequireCancellation 속성이 false로 설정되면 WCF(Windows Communication Foundation)는 서비스 엔드포인트에 대한 WSDL(웹 서비스 기술 언어) 문서의 메타데이터 일부로 mssp:MustNotSendCancel 어설션을 보냅니다. 이mssp:MustNotSendCancel 어설션은 서비스가 보안 세션 취소 요청에 응답하지 않음을 클라이언트에게 알립니다. RequireCancellation 속성이 true로 설정되면 WCF는 WSDL 문서에서 mssp:MustNotSendCancel 어설션을 내보내지 않습니다. 클라이언트에서 보안 세션이 더 이상 필요하지 않으면 취소 요청을 서비스에 보내야 합니다. 클라이언트가 ServiceModel 메타데이터 유틸리티 도구(Svcutil.exe)를 사용하여 생성되면 클라이언트 코드는 mssp:MustNotSendCancel 어설션의 존재 여부에 적절하게 반응합니다.

보안 대화 및 사용자 지정 토큰

WS-SecureConversation 사양의 정의로 인해 사용자 지정 토큰과 파생 키를 함께 사용할 때 문제가 발생할 수 있습니다. 이 사양에 따르면 wsse:SecurityTokenReference는 파생 토큰을 참조하는 선택적 요소입니다. "/wsc:DerivedKeyToken/wsse:SecurityTokenReference 이 선택적 요소는 보안 컨텍스트 토큰, 보안 토큰 또는 파생에 사용되는 공유 키/비밀을 지정하는 데 사용됩니다. 이 요소를 지정하지 않으면 받는 사람이 메시지 컨텍스트를 통해 공유 키를 확인할 수 있다고 간주됩니다. 컨텍스트를 확인할 수 없는 경우 wsc:UnknownDerivationSource와 같은 오류가 발생합니다."

즉, 사용자 지정 토큰이 파생되게 하려면 해당 절 형식을 SecurityTokenReference 요소 내에 래핑해야 합니다. 파생을 해제하는 옵션도 있지만 키를 파생시키는 것이 기본값입니다. 키를 래핑하지 못하면 파생 키 토큰을 직렬화하는 작업이 성공하지만 이를 역직렬화하면 예외가 throw됩니다.

참고 항목