Passer au contenu principal
Lorsque Auth0 est le , vous pouvez mapper les attributs utilisateur à l’aide du module complémentaire SAML2 d’Auth0. Des erreurs peuvent survenir si les attributs sont mal configurés. Par exemple, un utilisateur entre correctement son nom d’utilisateur et son mot de passe, mais ne parvient pas à se connecter à l’application, même si les journaux dans le indiquent des événements de connexion réussis. Il se peut aussi qu’il manque à votre application des renseignements sur l’utilisateur, comme le nom ou le courriel.

Cas d’utilisation

Le profil utilisateur ci-dessous est utilisé comme exemple pour les scénarios suivants.
//EXEMPLE de profil utilisateur IdP
{
   "created_at": "2021-06-21T13:26:08.579Z",
   "email": "testuser@example.com",
...
   "fav_genre": "fiction",
   "user_metadata": {
       "fav_streaming_service": "hulu"
   }
...
}

Aucun objet de mappage

Lorsque vous utilisez le module complémentaire SAML2, un objet de mappage vide est généré par défaut. Dans cet exemple, fav_genre et user_metadata.fav_streaming_service ne sont pas définis, mais peuvent être personnalisés et mappés dans la réponse générée par Auth0. Dans l’exemple ci-dessous, "fav_genre": "fiction" est mappé à l’attribut  http://schemas.auth0.com/fav_genre dans la réponse SAML avec la valeur fiction, tandis que "user_metadata": {"fav_streaming_service": "hulu"} n’apparaît pas du tout dans la réponse SAML. Réponse SAML résultante envoyée par l’IdP :
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_e30cb5f29249a82846eb" InResponseTo="_e33996d83f953ce46225185b3a1c0ad8" Version="2.0" IssueInstant="2021-11-03T21:34:42.493Z" Destination="https://example-dev-tenant.us.auth0.com/login/callback">
...
       <saml:AttributeStatement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <saml:Attribute Name="http://schemas.auth0.com/fav_genre" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
               <saml:AttributeValue xsi:type="xs:string">
                   fiction
               </saml:AttributeValue>
           </saml:Attribute>
...
       </saml:AttributeStatement>
   </saml:Assertion>
</samlp:Response>

Exemple de mappages standard

Dans l’exemple précédent, le fait de ne pas personnaliser l’objet de mappage a entraîné la présence d’un attribut http://schemas.auth0.com/fav_genre dans la réponse SAML avec la valeur "fiction". Ensuite, mappez les attributs dans l’objet de mappage des paramètres du module complémentaire SAML2 pour en tenir compte. Après cela, notez que la valeur "fiction" reste la même dans la réponse SAML, mais que le nom de l’attribut dans la réponse SAML a été remplacé, passant de la valeur par défaut http://schemas.auth0.com/fav_fiction à http://schemas.auth0.com/books. Configuration de l’objet de mappage du module complémentaire SAML2 :
"mappings": {
   "fav_genre": "http://schemas.auth0.com/books"
 }
Ce mappage produit la réponse suivante :
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_e30cb5f29249a82846eb" InResponseTo="_e33996d83f953ce46225185b3a1c0ad8" Version="2.0" IssueInstant="2021-11-03T21:34:42.493Z" Destination="https://example-dev-tenant.us.auth0.com/login/callback">
...
       <saml:AttributeStatement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <saml:Attribute Name="http://schemas.auth0.com/books" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
               <saml:AttributeValue xsi:type="xs:string">
                   fiction
               </saml:AttributeValue>
           </saml:Attribute>
...
       </saml:AttributeStatement>
   </saml:Assertion>
</samlp:Response>

Associer une même valeur à plusieurs attributs

Dans certains cas, il peut être nécessaire d’associer la réponse SAML à plusieurs attributs ayant la même valeur. Dans ce cas, vous pouvez associer une même valeur du profil utilisateur à plusieurs attributs de la réponse SAML. Voici comment configurer l’objet de mappage du module complémentaire SAML2 :
"mappings": {
   "fav_genre": [
     "http://schemas.auth0.com/movies",
     "http://schemas.auth0.com/books",
     "http://schemas.auth0.com/television"
   ]
 }
Ce mappage produit la réponse suivante :
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="_e30cb5f29249a82846eb" InResponseTo="_e33996d83f953ce46225185b3a1c0ad8" Version="2.0" IssueInstant="2021-11-03T21:34:42.493Z" Destination="https://example-dev-tenant.us.auth0.com/login/callback">
...
       <saml:AttributeStatement xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <saml:Attribute Name="http://schemas.auth0.com/movies" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
               <saml:AttributeValue xsi:type="xs:string">
                   fiction
               </saml:AttributeValue>
           </saml:Attribute>
           <saml:Attribute Name="http://schemas.auth0.com/books" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
               <saml:AttributeValue xsi:type="xs:string">
                   fiction
               </saml:AttributeValue>
           </saml:Attribute>
           <saml:Attribute Name="http://schemas.auth0.com/television" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
               <saml:AttributeValue xsi:type="xs:string">
                   fiction
               </saml:AttributeValue>
           </saml:Attribute>
...
       </saml:AttributeStatement>
   </saml:Assertion>
</samlp:Response>