다음을 통해 공유


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

보안 세션을 구현할 때는 보안에 영향을 주는 다음 항목에 대해 고려해야 합니다. 보안 고려 사항에 대한 자세한 내용은 보안 고려 사항WCF 보안을 위한 최선의 방법을 참조하십시오.

보안 세션 및 메타데이터

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

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

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

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

참고 항목

작업

방법: WSFederationHttpBinding에서 보안 세션을 사용하지 않도록 설정

개념

WCF 보안을 위한 최선의 방법

기타 리소스

보안 고려 사항