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
Accédez à Dashboard > Applications > Applications et sélectionnez le nom de l’application à afficher.
Sélectionnez l’onglet Modules complémentaires.
Activez la bascule Application Web SAML2 pour afficher les paramètres et les options.
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" . |