Aserciones SAML definidas en el estándar del perfil de señal SAML
El estándar del perfil de señales SAML de seguridad de servicios web OASIS especifica cómo se utilizan las aserciones SAML (Security Assertion Markup Language) con la especificación de seguridad de mensajes SOAP de la seguridad de servicios web.
Este producto admite dos versiones del estándar SAML de OASIS: Aserciones y protocolos para OASIS Security Assertion Markup Language (SAML) V1.1 y Aserciones y protocolos para OASIS Security Assertion Markup Language (SAML) V2.0.
El estándar describe la utilización de aserciones SAML como señales de seguridad en la cabecera <wsse:Security>, tal como ha definido la especificación WSS: seguridad de mensajes SOAP. Se puede utilizar una firma XML para enlazar los temas y las sentencias en la aserción SAML al mensaje SOAP.
Los métodos de aserción de temas definen el mecanismo mediante el cual una entidad evidencia (prueba) la relación entre el tema y las demandas de aserciones SAML. En WSS: perfil de señales SAML se describe el uso de los tres métodos de confirmación de temas: titularidad, Holder-of-key y sender-vouches. Este producto admite todos los tres métodos de confirmación. Cuando se utiliza el método de confirmación de sujeto bearer, la prueba de la relación entre el sujeto y las alegaciones está implícita. No existen pasos concretos para establecer la relación.
Dado que no hay ningún material clave asociado a una señal de titularidad, la protección del mensaje SOAP, si es necesaria, debe realizarse mediante un mecanismo a nivel de transporte u otra señal de seguridad como, por ejemplo, una señal X.509 o Kerberos, para la protección a nivel de mensajes. Cuando se utiliza el método de aserción de temas Holder-of-key, la prueba de la relación entre el asunto y las demandas se establece mediante la firma de parte del mensaje SOAP con la clave especificada en la aserción SAML. Dado que existe material clave asociado a una señal Holder-of-key, esta señal se puede utilizar para proporcionar protección a nivel de mensaje (de firma y cifrado) del mensaje SOAP.
- Un remitente configura una sesión de capa de sockets segura (SSL) con un receptor utilizando la autenticación de certificados de cliente.
- Un remitente firma digitalmente aserciones SAML con el mensaje SOAP contenedor utilizando el algoritmo de transformación de referencia de señal de seguridad. Un remitente puede utilizar indistintamente el cifrado de mensajes SSL o SOAP para proteger la confidencialidad.
Aserción de titularidad
Una aserción SAML es una aserción de titularidad si incluye el elemento de titularidad <saml:ConfirmationMethod>, tal como se define en las especificaciones de seguridad de servicios web OASIS. Para obtener más información, consulte los documentos de especificación.<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>
Aserción Holder-of-key
Una aserción SAML es una aserción Holder-of-key si incluye el elemento SubjectConfirmation que contiene un elemento saml:ConfirmationMethod con el valor de holder-of-key y un elemento ds:KeyInfo. Para obtener más información, consulte los documentos de especificación.La información ds:KeyInfo del elemento SubjectConfirmation identifica una clave pública o secreta que se utiliza para confirmar la identidad del tema. La aserción Holder-of-key también contiene un elemento ds:Signature que protege la integridad del elemento de aserción ds:KeyInfo tal como lo ha establecido la autoridad de aserción.
<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>
Aserción 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>
Clave simétrica en la aserción Holder-of-key
Una aserción Holder-of-key SAML se utiliza como señal de protección. Este tipo de señal de protección puede utilizar una clave simétrica como clave de prueba. El cliente utiliza la clave de prueba para demostrarle a la parte dependiente que el cliente posee realmente la señal SAML emitida. Cuando un servicio de señales de seguridad (STS) emite una señal SAML que utiliza una clave prueba simétrica, la señal contiene una clave que está cifrada para el servicio de destino. El STS también envía la misma clave de prueba al solicitante en un elemento <RequestedProofToken> como parte de RequestSecurityTokenResponse (RSTR). El cliente de servicio web presentará la señal SAML al servicio de destino, también conocido como la parte dependiente, y firmará el mensaje de la aplicación con la clave de prueba recibida.<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>
Clave pública en la aserción Holder-of-key
Cuando se utiliza una aserción Holder-of-key de SAML como señal de protección, la señal puede utilizar una clave pública como clave de prueba. El cliente utiliza la clave de prueba para demostrarle a la parte dependiente que el cliente posee realmente la señal SAML emitida. La ventaja de una clave pública a través de clave simétrica es que el cliente no comparte la clave secreta con el servicio de señal de seguridad (STS) y la parte dependiente. La clave de prueba pública puede ser un certificado X509 o una clave pública 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>