Endorsing 토큰으로 웹 서비스 보호
Endorsing 토큰은 SOAP 메시지 서명에 서명하는데 사용됩니다. Endorsing 토큰은 보통 전체 <Signature> 요소에 서명하고 선택적으로 추가 메시지 포트에 서명하는 데 사용됩니다. 전송 보안이 사용되는 경우, Endorsing 토큰은 SOAP 보안 헤더에서 시간소인에 서명하는 데 사용해야 합니다.
토큰 어설션을 지원하는 Endorsing
- EndorsingSupportingTokens - 토큰에 서명하거나 암호화하지 않아도 됩니다.
- SignedEndorsingSupportingTokens - 토큰에 서명해야 합니다.
- EndorsingEncryptedSupportingTokens - 토큰을 암호화해야 합니다.
- SignedEndorsingEncryptedSupportingTokens - 토큰에 서명해야 합니다.
Endorsing 토큰으로서의 X509Token
X509Token을 Endorsing 토큰으로 구성할 수 있습니다. X509Token을 Endorsing 토큰으로 구성하는 것은 AssymmetricBinding에서 X509Token을 InitiatorToken으로 구성하는 것과 유사합니다. X509Token을 Endorsing 토큰으로 구성하려면, 이전에 설명된 Endorsing 토큰 어설션 중 하나에 포함된 X509Token과, server.xml 파일의 <SignatureProperties> 요소를 가지고 있는 정책이 필요합니다.
<sp:EndorsingSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10 />
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:EndorsingSupportingTokens>
Endorsing 토큰으로서 X509Token을 구성한 후, server.xml 파일에서 <signatureProperties> 요소를 정의하여 키 저장소와 서명 키를 식별해야 합니다. <signatureProperties> 요소의 구성은 메시지 서명에 대한 X509Token의 구성과 동일합니다. 자세한 정보는 X.509 토큰으로 웹 서비스의 보호를 참조하십시오.
Endorsing 토큰으로서의 UsernameToken
정책에 HashPassword가 없는 것을 제외하고, endorsingToken으로서의 UsernameToken의 구성은 PasswordDigest가 있는 UsernameToken의 구성과 유사합니다. Endorsing 토큰으로서 UsernameToken을 구성하려면, Endorsing 지원 토큰 어설션 섹션에 설명된 Endorsing 토큰 어설션 중 하나에 포함된 UsernameToken이 있는 정책이 필요합니다.
<sp:SignedEndorsingEncryptedSupportingTokens>
<wsp:Policy>
<sp:UsernameToken
sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10 />
<sp:RequireDerivedKeys />
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SignedEndorsingEncryptedSupportingTokens>
이 샘플 정책 단편에서 UsernameToken이 서명되고 나머지 메시지로 암호화됩니다. 그런 다음, UsernameToken의 비밀번호에서 파생되는 키가 메시지 서명에 사용됩니다.
UsernameToken 인증 토큰은 파생 키를 사용하므로 제공자 애플리케이션용으로 CallbackHandler 비밀번호를 구현하고 구성해야 합니다. 자세한 정보는 UsernameToken으로 웹 서비스 클라이언트 인증을 참조하십시오.