Son atributos permitidos en una petición de autenticación SAML?
-
22-08-2019 - |
Pregunta
¿Es posible enviar 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>
Solución
Técnicamente, sí, es posible, ya que AuthnRequest puede contener un elemento de extensiones, que puede contener cualquier cosa - ver el SAML spec 'núcleo' : AuthnRequest (sección 3.4.1) se deriva de RequestAbstractType (sección 3.2.1) que tiene un extensiones opcionales. El remitente y el destinatario tendrían que ponerse de acuerdo sobre la sintaxis y la semántica de los datos enviados de esta manera.
No puedo ver una manera más 'convencional' para hacer esto, ya que atributos son por lo general en aserciones, en lugar de AuthnRequests.
Otros consejos
Hay un caso en el que los atributos son para ser parte de la solicitud de autenticación. por lo que podemos conseguir que el nombre del atributo de la solicitud para la construcción de la afirmación de respuesta con la misma.
porque el proveedor de servicios valida la respuesta comparando el atributo names.we puede tomar el ejemplo de Salesforce como proveedor de servicios, donde el mismo sucede.