Personnaliser les assertions SAML

Vous pouvez personnaliser vos assertions SAML, ainqi que les paramètres des protocoles SAML et WS-Fed.

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');
	}
};

Was this helpful?

/

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);
};

Was this helpful?

/

Attributs des assertions SAML

Voici une liste des attributs de personnalisation pour les assertions SAML.

Attribut Type Description
audience chaîne Public de l’assertion SAML. Par défaut, c’est l’émetteur sur SAMLRequest.
recipient chaîne Destinataire 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.
issuer chaîne Identifiant unique du fournisseur d’identité SAML, formaté comme une URL.
mappings objet Mappages entre le profil Auth0 et les attributs de sortie sur l’assertion SAML. Le mappage par défaut est indiqué ci-dessus.
createUpnClaim booléen La question de savoir si une demande UPN devrait être créée ou non. Valeur par défaut : true.
passthroughClaimsWithNoMapping booléen Si 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.
mapUnknownClaimsAsIs booléen Si 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.
mapIdentities booléen Si 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.
signatureAlgorithm chaîne Algorithme de signature pour signer l’assertion ou la réponse SAML. Par défaut, rsa-sha1.
digestAlgorithm chaîne L’algorithme de hachage pour calculer le hachage de l’assertion ou de la réponse SAML. Par défaut sha1.
destination objet Destination 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.
lifetimeInSeconds Entier Expiration du jeton. Par défaut, 3600 secondes (1 heure).
signResponse booléen Si 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.
nameIdentifierFormat chaîne Par défaut, urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified.
nameIdentifierProbes tableau Auth0 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).
authnContextClassRef chaîne Par défaut, urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified.
typedAttributes boolean Par 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.
includeAttributeNameFormat booléen Par 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.
logout objet Contrô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).
binding chaîne Indique é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".
signingCert chaîne Indique é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