Passer au contenu principal
Vous pouvez personnaliser vos assertions ainsi que les paramètres des protocoles SAML et WS-Federation.

Auth0 comme fournisseur d’identité

Personnalisez les assertions SAML lorsque Auth0 agit comme en configurant le module complémentaire dans le Dashboard ou à l’aide de Rules.

Utiliser le Dashboard

  1. Accédez à Dashboard > Applications > Applications et sélectionnez le nom de l’application que vous voulez afficher.
  2. Sélectionnez l’onglet Addons.
  3. Activez le bouton bascule SAML2 Web App pour afficher les paramètres et les options.
    Dashboard Applications Applications Onglet Addons Paramètres de SAML2 Web App
  4. Dans l’onglet Settings, vous pouvez effectuer plusieurs types de personnalisations, comme :
    • Spécifier une audience autre que l’émetteur par défaut de la requête SAML.
    • Spécifier un destinataire.
    • Faire correspondre les attributs du profil à des déclarations d’attributs précises.
    • Modifier l’algorithme de signature ou de hachage.
    • Indiquer si seule l’assertion ou la réponse complète doit être signée.

Utiliser Actions

Vous pouvez utiliser Actions pour apporter des personnalisations plus poussées ou dynamiques à la réponse SAML. Les personnalisations effectuées dans Actions remplacent celles réalisées au moyen de la vue Application Addons dans le Dashboard. L’objet api.samlResponse permet de remplacer les attributs SAML par défaut ou d’ajouter de nouveaux attributs.

Exemple : modifier la durée de validité du jeton SAML et utiliser l’UPN comme NameID

exports.onExecutePostLogin = async (event, api) => {
	api.samlResponse.setLifetimeInSeconds(36000);
	if (event.user.upn) {
		api.samlResponse.setAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier', 'upn');
	}
};

Exemple : inclure les attributs user_metadata dans une assertion

exports.onExecutePostLogin = (event, api) => {
	event.user.user_metadata = event.user.user_metadata || {};
	event.user.user_metadata.color = 'purple';
	api.samlResponse.setAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/color', event.user.user_metadata.color);
};

Attributs d’assertion SAML

Voici la liste des attributs de personnalisation des assertions SAML.
AttributTypeDescription
audiencestringAudience de l’assertion SAML. Par défaut, il s’agit de l’émetteur dans SAMLRequest.
recipientstringDestinataire de l’assertion SAML (SubjectConfirmationData). La valeur par défaut est AssertionConsumerUrl dans la SAMLRequest, ou l’URL de rappel si aucune SAMLRequest n’a été envoyée.
issuerstringIdentifiant unique du fournisseur d’identité SAML, sous forme d’URL.
mappingsobjetCorrespondances entre le profil Auth0 et les attributs de sortie de l’assertion SAML. La correspondance par défaut est affichée ci-dessus.
createUpnClaimbooléenIndique si une revendication UPN doit être créée. La valeur par défaut est true.
passthroughClaimsWithNoMappingbooléenSi true (par défaut), pour chaque revendication qui n’est pas mappée au profil commun, Auth0 la transmet telle quelle dans l’assertion de sortie. Si false, ces revendications ne seront pas mappées.
mapUnknownClaimsAsIsbooléenSi passthroughClaimsWithNoMapping est true et que cette option est false (par défaut), Auth0 ajoute, pour chaque revendication non mappée au profil commun, le préfixe http://schema.auth0.com. Si sa valeur est true, la revendication est transmise telle quelle.
mapIdentitiesbooléenSi true (valeur par défaut), il ajoute davantage d’informations dans le jeton, comme le fournisseur (Google, ADFS, AD, etc.) et le jeton d’accès, s’il est disponible.
signatureAlgorithmchaîne de caractèresAlgorithme de signature servant à signer l’assertion ou la réponse SAML. La valeur par défaut est rsa-sha1.
digestAlgorithmchaîne de caractèresAlgorithme de hachage utilisé pour calculer le condensé de l’assertion ou de la réponse SAML. La valeur par défaut est sha1.
destinationobjetDestination de la réponse SAML. Si elle n’est pas spécifiée, il s’agira de AssertionConsumerUrl de la SAMLRequest ou de l’URL de rappel s’il n’y a pas de SAMLRequest.
lifetimeInSecondsentierExpiration du jeton. La valeur par défaut est de 3600 secondes (1 heure).
signResponsebooléenIndique si la réponse SAML doit être signée ou non. Par défaut, l’assertion SAML est signée, mais pas la réponse SAML. Si true, la réponse SAML sera signée au lieu de l’assertion SAML.
nameIdentifierFormatchaîne de caractèresPar défaut : urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified.
nameIdentifierProbestableauAuth0 essaiera chaque attribut de ce tableau dans l’ordre. Si l’un d’eux contient une valeur, cette dernière sera utilisée pour le Subject/NameID. L’ordre est le suivant : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier (mapped from user_id), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress (mapped from email), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name (mapped from name).
authnContextClassRefchaîne de caractèresLa valeur par défaut est urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified.
typedAttributesbooléenLa valeur par défaut est true. Lorsque cette valeur est définie sur true, nous déduisons le xs:type de l’élément. Les types sont xs:string, xs:boolean, xs:double et xs:anyType. Lorsque cette valeur est définie sur false, tous les xs:type sont xs:anyType.
includeAttributeNameFormatbooléenLa valeur par défaut est true. Lorsqu’elle est définie à true, nous déduisons le NameFormat en fonction du nom de l’attribut. Les valeurs de NameFormat sont urn:oasis:names:tc:SAML:2.0:attrname-format:uri, urn:oasis:names:tc:SAML:2.0:attrname-format:basic et urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified. Si elle est définie à false, le NameFormat de l’attribut n’est pas défini dans l’assertion.
logoutobjetContrôle la déconnexion SAML. Il peut contenir deux propriétés : callback (string), qui contient l’URL du service de déconnexion unique du fournisseur de services (application), à laquelle Auth0 enverra les requêtes et les réponses de déconnexion, et slo_enabled (boolean), qui indique si Auth0 doit aviser les fournisseurs de services de la fin de la session. La valeur par défaut est true (aviser les fournisseurs de services).
bindingchaîneIndique de façon facultative la liaison de protocole utilisée pour les réponses de déconnexion SAML. Par défaut, Auth0 utilise HTTP-POST, mais vous pouvez utiliser HTTP-Redirect en définissant "binding" sur "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect".
signingCertstringIndique, de façon facultative, le certificat de clé publique utilisé pour valider les requêtes SAML. Si cette valeur est définie, les requêtes SAML devront être signées. Voici un exemple de valeur : "-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n[..all the other lines..]-----END CERTIFICATE-----\n".

En savoir plus