2009-02-09 6 views
7

Est-il possible d'envoyer des attributs dans une demande d'authentification SAML?Les attributs sont-ils autorisés dans une demande d'authentification 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> 

Répondre

7

Techniquement, oui, il est possible, car AuthnRequest peut contenir un élément extensions, qui peut contenir quoi que ce soit - voir the SAML 'core' spec: AuthnRequest (section 3.4.1) est dérivé de RequestAbstractType (section 3.2.1) qui a une extension optionnelle. L'expéditeur et le destinataire devront se mettre d'accord sur la syntaxe et la sémantique des données envoyées de cette façon.

Je ne vois pas de méthode plus «conventionnelle» pour ce faire, car les attributs sont généralement dans des assertions, plutôt que dans des requêtes AuthnRequests.

+0

Merci pour l'aide avant. J'ai un commentaire de suivi. Est-ce pour SAML 2.0 ou SAML 1.0 ou les deux? – jon077

+0

C'était pour SAML 2.0. En regardant la section 3.2.1 de la spécification SAML 1.1 (http://www.oasis-open.org/committees/download.php/3406/oasis-sstc-saml-core-1.1.pdf), il n'y a pas d'élément Extensions, donc je ne pense pas que vous pouvez le faire avec SAML 1.x. – metadaddy

+0

Ce message m'a beaucoup aidé quand je l'ai posté à l'origine. J'ai été capable d'utiliser Extensions et Shibboleth pour transmettre des attributs dans la requête Authn. J'utilise OpenAM maintenant et je me demandais s'il était possible d'accéder aux extensions à partir d'un AMLoginModule. C'est possible? – jon077

0

Il existe un cas où les attributs doivent faire partie de la demande d'authentification. afin que nous puissions obtenir ce nom d'attribut de la demande pour construire l'assertion de réponse avec le même. Parce que le fournisseur de services valide la réponse en comparant les noms d'attribut. Nous pouvons prendre l'exemple de Salesforce en tant que fournisseur de services, où la même chose se produit.

Questions connexes