SAML 토큰 프로파일 표준에 정의된 SAML 어설션
웹 서비스 보안 SAML 토큰 프로파일 OASIS 표준은 SAML(Security Assertion Markup Language) 어설션을 웹 서비스 보안 SOAP 메시지 보안 스펙과 사용하는 방법을 지정합니다.
이 제품은 다음 두 버전의 OASIS SAML 표준을 지원합니다. OASIS SAML(Security Assertion Markup Language) V1.1용 어설션 및 프로토콜 및 OASIS SAML(Security Assertion Markup Language) V2.0용 어설션 및 프로토콜.
표준은 WSS: SOAP 메시지 보안 스펙에서 정의된 대로 <wsse:Security> 헤더에서 보안 토큰으로 SAML 어설션의 사용을 설명합니다. XML 서명은 SOAP 메시지에 대한 SAML 어설션에서 주제와 명령문을 바인드하는 데 사용될 수 있습니다.
주제 확인 메소드는 엔티티가 SAML 어설션의 청구 및 주제 간 관계의 증거(교정)를 제공하는 메커니즘을 정의합니다. WSS: SAML 토큰 프로파일은 세 주제 확인 메소드, bearer, holder-of-key 및 sender-vouches의 사용을 설명합니다. 이 제품은 다음 세 개의 확인 메소드를 지원합니다. bearer 주제 확인 메소드 사용 시, 주제와 청구 사이의 관계 교정은 내재적입니다. 관계를 설정하는 데 특정 단계가 사용되지 않습니다.
bearer 토큰과 연관된 키 자료가 없기 때문에, 필요한 경우 SOAP 메시지의 보호는 메시지 레벨 보호를 위해 X.509 또는 Kerberos 토큰과 같은 다른 보안 토큰 또는 전송 레벨 메커니즘을 사용하여 수행되어야 합니다. holder-of-key 주제 확인 메소드 사용 시, 주제와 청구 사이의 관계 교정은 SAML 어설션에서 지정된 키로 SOAP 메시지의 서명 부분으로 설정됩니다. holder-of-key 토큰과 연관된 키 자료가 있기 때문에, 이 토큰을 사용하여 SOAP 메시지의 메시지 레벨 보호(서명 및 암호화)를 제공할 수 있습니다.
- 발신자는 클라이언트 인증서 인증을 사용하여 수신자와 SSL(Secure Sockets Layer) 세션을 설정합니다.
- 발신자는 보안 토큰 참조 변환 알고리즘을 사용하여 포함된 SOAP 메시지로 SAML 어설션에 디지털로 서명합니다. 발신자는 SSL 또는 SOAP 메시지 암호화를 사용하여 기밀성을 보호할 수 있습니다.
Bearer 어설션
OASIS 웹 서비스 보안 스펙에서 정의된 대로 bearer <saml:ConfirmationMethod> 요소를 포함하는 경우 SAML 어설션은 bearer 어설션입니다. 자세한 정보는 스펙 문서를 참조하십시오.<saml:SubjectConfirmation>
<saml:ConfirmationMethod>
urn:oasis:names:tc:SAML:1.0:cm:bearer
</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
<saml2:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
</saml2:SubjectConfirmation>
Holder-of-key 어설션
값이 holder-of-key인 saml:ConfirmationMethod 요소를 포함한 SubjectConfirmation 요소 및 ds:KeyInfo 요소를 포함하는 경우 SAML 어설션은 holder-of-key 어설션입니다. 자세한 정보는 스펙 문서를 참조하십시오.SubjectConfirmation 요소 내 ds:KeyInfo 정보는 주제의 ID를 확인하는 데 사용된 공용 또는 비밀 키를 식별합니다. holder-of-key 어설션은 어설션 권한에서 설정된 대로 확인 ds:KeyInfo 요소의 무결성을 보호하는 ds:Signature 요소도 포함합니다.
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>
urn:oasis:names:tc:SAML:1.0:cm: holder-of-key
</saml:ConfirmationMethod>
<ds:KeyInfo>
<ds:KeyValue>. . .</ds:KeyValue>
</ds:KeyInfo>
</saml:SubjectConfirmation>
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
<saml2:SubjectConfirmationData>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
......
</ds:KeyInfo>
</saml2:SubjectConfirmationData>
</saml2:SubjectConfirmation>
Sender-vouches 어설션
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>
urn:oasis:names:tc:SAML:1.0:cm:sender-vouches
</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
<saml2:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches">
</saml2:SubjectConfirmation>
holder-of-key 어설션의 대칭 키
SAML holder-of-key 어설션은 보호 토큰으로 사용됩니다. 이 유형의 보호 토큰은 대칭 키를 교정 키로 사용할 수 있습니다. 클라이언트는 교정 키를 사용하여 클라이언트가 실제로 실행된 SAML 토큰을 소유함을 신뢰 당사자에 보여줍니다. STS(Security Token Service)가 대칭 교정 키를 사용하는 SAML 토큰을 실행하면, 토큰은 대상 서비스에 대해 암호화된 키를 포함합니다. STS는 또한 RSTR(RequestSecurityTokenResponse)의 일부로 <RequestedProofToken> 요소의 요청자에게 동일한 교정 키를 보냅니다. 웹 서비스 클라이언트는 SAML 토큰을 신뢰 당사자라고도 하는 대상 서비스에 표시하며, 수신된 교정 키로 애플리케이션 메시지에 서명합니다.<t:KeyType> http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey
</t:KeyType>
<t:KeySize>256</t:KeySize>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:holder-of-key</saml:ConfirmationMethod>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<enc:EncryptedKey xmlns:enc="http://www.w3.org/2001/04/xmlenc#">
<enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
</enc:EncryptionMethod>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIB3 . . . vO3bdg</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<enc:CipherData>
<enc:CipherValue>P5Kb . . . rOTvII</enc:CipherValue>
</enc:CipherData>
</enc:EncryptedKey>
</ds:KeyInfo>
</saml:SubjectConfirmation>
holder-of-key 어설션의 공개 키
SAML holder-of-key 어설션이 보호 토큰으로 사용되면 토큰은 공개 키를 교정 키로 사용할 수 있습니다. 클라이언트는 교정 키를 사용하여 클라이언트가 실제로 실행된 SAML 토큰을 소유함을 신뢰 당사자에 보여줍니다. 대칭 키를 통한 공개 교정 키의 장점은 클라이언트가 STS(Security Token Service) 및 신뢰 당사자와 비밀 키를 공유하지 않는다는 점입니다. 공개 교정 키는 X509 인증 또는 RSA(Rivest Shamir Adleman) 공개 키일 수 있습니다.<trust:UseKey>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>MIIGCzCCBPOgAwIBAgIQcSgVwaoQv6dG. . .1GqB
</X509Certificate>
</X509Data>
</KeyInfo>
</trust:UseKey>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:holder-of-key</saml:ConfirmationMethod>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>hYHQm. . . ZnH1S0=</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</saml:SubjectConfirmation>