Passer au contenu principal
Vous pouvez personnaliser vos assertions , ainqi que les paramètres des protocoles SAML et .

Auth0 en tant que fournisseur d’identité

Personnalisez les assertions SAML lorsque Auth0 agit en tant que fournisseur d’identité en configurant le module complémentaire dans le tableau de bord ou à l’aide de règles.

Utiliser le Tableau de bord

  1. Accédez à Dashboard > Applications > Applications et sélectionnez le nom de l’application à afficher.
  2. Sélectionnez l’onglet Modules complémentaires.
  3. Activez la bascule Application Web SAML2 pour afficher les paramètres et les options.
    Dashboard (Tableau de bord) Applications Applications Onglet Addons (Modules complémentaires) Onglet SAML2 Web App Settings (Paramètres d’application Web SAML2)
  4. Dans l’onglet Paramètres, vous pouvez procéder à divers types de personnalisations, notamment :
    • Préciser une audience autre que l’émetteur par défaut de la requête SAML.
    • Préciser un destinataire.
    • Associer des attributs de profil à des déclarations d’attributs déterminés.
    • Modifier l’algorithme de signature ou de condensé.
    • Préciser si seule l’assertion ou la réponse complète doit être signée.

Règles d’utilisation

Vous pouvez utiliser des règles pour ajouter des personnalisations plus étendues ou dynamiques à l’assertion SAML. Les personnalisations effectuées dans les règles écrasent toutes celles qui sont réalisées dans la section Modules complémentaires de l’application du tableau de bord. L’objet api.samlResponse permet de remplacer les attributs SAML par défaut ou d’en ajouter de nouveaux.

Exemple : Modification de la durée de vie du jeton SAML et utilisation du nom de l’utilisateur principal 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 : Ajout des 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 des assertions SAML

Voici une liste des attributs de personnalisation pour les assertions SAML.
AttributTypeDescription
audiencechaînePublic de l’assertion SAML. Par défaut, c’est l’émetteur sur SAMLRequest.
recipientchaîneDestinataire de l’assertion SAML (SubjectConfirmationData). La valeur par défaut est « AssertionConsumerUrl » sur SAMLRequest ou l’URL de rappel si aucune demande SAMLRequest n’a été envoyée.
issuerchaîneIdentifiant unique du fournisseur d’identité SAML, formaté comme une URL.
mappingsobjetMappages entre le profil Auth0 et les attributs de sortie sur l’assertion SAML. Le mappage par défaut est indiqué ci-dessus.
createUpnClaimbooléenLa question de savoir si une demande UPN devrait être créée ou non. Valeur par défaut : true.
passthroughClaimsWithNoMappingbooléenSi true (par défaut), pour chaque demande qui n’est pas mappée au profil commun, Auth0 passe par celles de l’assertion de sortie. Si false, ces demandes ne seront pas mappées.
mapUnknownClaimsAsIsbooléenSi passthroughClaimsWithNoMapping est true et ceci est false (par défaut), pour chaque demande non mappée au profil commun, Auth0 ajoute un préfixe http://schema.auth0.com. Si true Auth0 passera par la demande telle quelle.
mapIdentitiesbooléenSi true (par défaut), iAuth0 ajoute plus d’informations dans le jeton comme le fournisseur (Google, ADFS, AD, etc.) et le jeton d’accès, s’il est disponible.
signatureAlgorithmchaîneAlgorithme de signature pour signer l’assertion ou la réponse SAML. Par défaut, rsa-sha1.
digestAlgorithmchaîneL’algorithme de hachage pour calculer le hachage de l’assertion ou de la réponse SAML. Par défaut sha1.
destinationobjetDestination de la réponse SAML. Si non spécifié, sera AssertionConsumerUrl de SAMLRequest ou de l’URL de rappel s’il n’y avait pas de SAMLRequest.
lifetimeInSecondsEntierExpiration du jeton. Par défaut, 3600 secondes (1 heure).
signResponsebooléenSi la réponse SAML doit être signée ou non. Par défaut, l’assertion SAML sera signée, mais pas la réponse SAML. Si true, la réponse SAML sera signée au lieu de l’assertion SAML.
nameIdentifierFormatchaînePar défaut, urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified.
nameIdentifierProbestableauAuth0 va essayer chacun des attributs de ce tableau dans l’ordre. Si l’un d’entre eux a une valeur, il l’utilisera pour le Subject/NameID. L’ordre est : http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier (mappé à partir de user_id), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress (mappé à partir du courriel), http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name (mappé à partir du nom).
authnContextClassRefchaînePar défaut, urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified.
typedAttributesbooleanPar défaut, true. Lorsque défini sur true, nous déduisons le xs:type de l’élément. Les types sont xs:chaîne, xs:boolean, xs:double et xs:anyType. Lorsque défini sur false, tous les xs:type sont xs:anyType.
includeAttributeNameFormatbooléenPar défaut, true. Lorsque défini sur true, nous déduisons le NameFormat en fonction du nom de l’attribut. Les valeurs 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 défini sur false, l’attribut NameFormat n’est pas défini dans l’assertion.
logoutobjetContrôle la déconnexion de SAML. Il peut contenir deux propriétés :callback (chaîne) qui contient l’URL du service fournisseur (application client) URL du service de déconnexion unique, où Auth0 enverra les demandes et réponses de déconnexion, et slo_enabled(boolean) qui contrôle si Auth0 doit informer les fournisseurs de services de la fin de session. La valeur par défaut est true (informer les fournisseurs de services).
bindingchaîneIndique éventuellement le protocole de liaison utilisé pour les réponses de connexion SAML. Par défaut, Auth0 utilise HTTP-POST, mais vous pouvez passer à HTTP-Redirect en définissant "binding" sur "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect".
signingCertchaîneIndique éventuellement le certificat de clé publique utilisé pour valider les demandes SAML. Si cette option est activée, les demandes SAML devront être signées. Une valeur d’échantillon serait "-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n[..toutes les autres lignes..]-----END CERTIFICATE-----\n".

En savoir plus

I