보안 대화 사용
보안 대화를 사용하여 웹 서비스 애플리케이션 메시지를 보안합니다.
시작하기 전에
웹 서비스를 포함하는 애플리케이션을 배치해야 합니다.
이 태스크 정보
OASIS(Organization for the Advancement of Structured Information Standards) 웹 서비스 보안 대화(WS-SecureConversation) 초안 스펙에서는 SOAP 메시지의 시작자 및 수신자 사이의 보안 세션을 설정하는 방법을 설명합니다. 또한 WS-SecureConversation 초안 스펙은 보안 컨텍스트 토큰(SCT)을 설정하기 위해 OASIS 웹 서비스 신뢰(WS-Trust) 프로토콜을 사용하는 방법도 정의합니다. 전체 정보는 OASIS 웹 서비스 보안 대화 스펙을 참조하십시오.
WebSphere® Application Server에서는 WS-SecureConversation에 대한 보안 컨텍스트 토큰을 발행하는 엔드포인트 기능을 지원하므로, SOAP 메시지의 시작자 및 수신자 사이의 보안 세션을 제공합니다.
다음 그림에서는 보안 컨텍스트를 설정하고 세션 기반 보안을 사용하는 데 필요한 플로우를 설명합니다.

- 클라이언트는 보안 컨텍스트 토큰에 대해 RequestSecurityToken(RST) 신뢰 요청을
해당 비밀 키(엔트로피 및 대상 키 크기)가 포함된 애플리케이션 엔드포인트로 전송하고
대상 서비스 비밀 키를 요청합니다.
이 요청은 일반적으로 부트스트랩 정책에 정의된 비대칭 웹 서비스 보안으로 안전합니다.
- RST는 신뢰 서비스로 처리되고 요청이 보안 정책을 기반으로 신뢰되면
신뢰 서비스는 WS-Trust RequestSecurityTokenResponse(RSTR)를 사용하여 대상 서비스 비밀 키가
포함된 보안 컨텍스트 토큰을 리턴합니다.
이 요청은 일반적으로 비대칭 웹 서비스 보안으로 안전합니다. 클라이언트는 RSTR을 신뢰할 수 있는지 부트스트랩 정책을 기반으로 확인합니다.
- RequestSecurityTokenResponse가 신뢰되면 클라이언트는 세션 키를 사용하여
후속 애플리케이션 메시지를 안전(서명 및 암호화)하게 합니다.
세션 키는 초기화 프로그램과 수신인 사이에서 교환되는 초기 WS-Trust RequestSecurityToken 및 RequestSecurityTokenResponse 메시지에서 확보한 보안 컨텍스트 토큰의 비밀에서 파생됩니다.
- 스펙은 초기 비밀을 기반으로 키를 파생하는 방법의 알고리즘을 정의합니다. 대상 웹 서비스는 SOAP 메시지 및 초기 비밀의 보안 헤더에 포함된 메타데이터에서 파생 키를 계산합니다.
- 대상 웹 서비스는 파생 키를 사용하여 애플리케이션 보안 정책을 기반으로 메시지를 확인하고 복호화합니다.
- 대상 웹 서비스는 비밀의 파생 키를 사용하여 애플리케이션 보안 정책을 기반으로 응답을 서명하고 암호화합니다.
- 메시지 교환이 완료될 때까지 3 - 6단계를 반복하십시오.
WS-SecureConversation 스펙에서 보안 컨텍스트는 <wsc:SecurityContextToken> 보안 토큰으로 표시됩니다. 다음 예제에서는 <wsc:SecurityContextToken> 요소에 대한 어설션 구문을 표시합니다.
<wsc:SecurityContextToken wsu:Id="..." ...>
<wsc:Identifier>...</wsc:Identifier>
<wsc:Instance>...</wsc:Instance>
...
</wsc:SecurityContextToken>
보안 컨텍스트 토큰은 키 ID 또는 키 이름을 사용하여 이에 대한 참조를 지원하지 않습니다. 모든 참조는 <wsc:Identifier> 요소에 대한 ID(wsu:Id 속성에 대한 ID) 또는 <wsse:Reference>를 사용해야 합니다.
WebSphere Application Server는 다음과 같은 미리 구성된 보안 대화 관련 정책을 제공합니다.
- SecureConveration 정책 세트는 WS-SecureConversation 및 WS-Security 스펙을 준수하며, 애플리케이션 메시지 서명 및 암호화를 위한 보안 컨텍스트 토큰에서 파생된 키를 사용하여 보안 대화가 사용으로 설정된 정책 세트를 제공합니다.
- Username SecureConversation 정책 세트는 WS-SecureConversation 및 WS-Security 스펙을 준수하고 사용자 이름 토큰을 사용하여 인증을 추가합니다.
- LTPA SecureConversation 정책은 WS-SecureConversation 및 WS-Security 스펙을 준수하고 LTPA(Lightweight Third Party Authentication) 토큰을 사용하여 인증을 제공합니다.
이 예제에서 기본 SecureConversation 정책 세트 및 기본 WS-Security 바인딩과 TrustServiceSecurityDefault 바인딩은 보안 대화를 사용하는 태스크를 달성하는 데 사용됩니다. 기본 SecureConversation 정책 세트는 애플리케이션 정책(symmetricBinding) 및 부트스트랩 정책(asymmetricBinding) 모두를 보유합니다. 애플리케이션 정책은 애플리케이션 메시지를 보안하는 데 사용되며, 부트스트랩 정책은 RequestSecurityToken(RST) 메시지를 보안하는 데 사용됩니다.
보안 컨텍스트 토큰을 발행하는 신뢰 서비스는 TrustServiceSecurityDefault 시스템 정책 및 TrustServiceSecurityDefault 바인딩으로 구성됩니다. 신뢰 정책은 RequestSecurityTokenResponse(RSTR) 메시지 보안을 담당합니다. 부트스트랩 정책이 수정되면 구성 모두와 일치하도록 신뢰 정책을 수정해야 합니다.
여기에 사용된 웹 서비스 보안(WS-Security) 기본 바인딩은 샘플 키 파일을 포함하고 프로덕션에서 사용하기 전에 사용자 정의해야 합니다. 프로덕션 환경의 경우 사용자 정의 바인딩 사용이 권장됩니다. 또한 개발 템플리트를 사용하여 서버 작성의 선택사항을 사용하여 프로파일을 작성한 경우 2단계 및 3단계를 건너뛸 수 있습니다.
보안 대화를 구성하고 정책 세트를 구성하고 정책에 정책 어설션을 추가하려면 다음 단계를 완료하십시오.
프로시저
결과
다음에 수행할 작업
다음에 보안 컨텍스트 토큰을 설정하여 보안 대화를 보안하는 방법에 대한 예제 시나리오를 검토합니다.