2009-02-09 12 views
7

¿Es posible enviar atributos en una solicitud de autenticación SAML?¿Se permiten los atributos en una solicitud de autenticación SAML?

<samlp:AuthnRequest 
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
    ID="aaf23196-1773-2113-474a-fe114412ab72" 
    Version="2.0" 
    IssueInstant="2004-12-05T09:21:59Z" 
    AssertionConsumerServiceIndex="0" 
    AttributeConsumingServiceIndex="0"> 
    <saml:Issuer>https://sp.example.com/SAML2</saml:Issuer> 
    <samlp:NameIDPolicy 
    AllowCreate="true" 
    Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/> 
</samlp:AuthnRequest> 

Respuesta

7

Técnicamente, sí, es posible, ya que AuthnRequest puede contener un elemento de extensiones, que puede contener cualquier cosa - ver the SAML 'core' spec: AuthnRequest (sección 3.4.1) se deriva de RequestAbstractType (sección 3.2.1), que tiene una Extensiones opcional. El remitente y el destinatario tendrían que aceptar la sintaxis y la semántica de los datos enviados de esta manera.

No puedo ver una forma más "convencional" de hacer esto, ya que los Atributos suelen estar en Assertions, en lugar de AuthnRequests.

+0

Gracias por la ayuda antes. Tengo un comentario de seguimiento. ¿Esto es para SAML 2.0 o SAML 1.0 o ambos? – jon077

+0

Eso fue para SAML 2.0. Si observamos la sección 3.2.1 de la especificación SAML 1.1 (http://www.oasis-open.org/committees/download.php/3406/oasis-sstc-saml-core-1.1.pdf), no hay ningún elemento Extensions, así que no creo que puedas hacer esto con SAML 1.x. – metadaddy

+0

Esta publicación me ayudó mucho cuando originalmente la publiqué. Pude usar Extensions y Shibboleth para pasar atributos en AuthnRequest. Estoy usando OpenAM ahora y me preguntaba si era posible acceder a las extensiones desde un AMLoginModule. ¿Es posible? – jon077

0

Existe un caso en el que los atributos forman parte de la solicitud de autenticación. para que podamos obtener ese nombre de atributo de la solicitud para construir una aserción de respuesta con la misma.

porque el proveedor de servicios valida la respuesta comparando los nombres de los atributos. Podemos tomar el ejemplo de Salesforce como proveedor de servicios, donde ocurre lo mismo.

Cuestiones relacionadas