Configurer les attributs d’assertion SAML
Les attributs SAML sont des éléments clés des assertions SAML qui transportent des informations spécifiques sur l’utilisateur authentifié. Ces attributs peuvent inclure des identifiants d’utilisateur, des rôles, des permissions et d’autres données utilisateur pertinentes dont le Fournisseur de services (SP) peut avoir besoin pour l’Autorisation (Authorization) et la personnalisation.
Comprendre les attributs SAML
Dans l’Authentification (Authentication) SAML :
- Les attributs sont des paires nom-valeur contenant des informations utilisateur
- Ils sont inclus dans l’assertion SAML envoyée du Fournisseur d’identité (Logto) au Fournisseur de services
- Ils aident les Fournisseurs de services à prendre des décisions éclairées concernant l’accès utilisateur et la personnalisation
Mappage des attributs dans Logto
Le mappage des attributs vous permet de définir comment les informations utilisateur de Logto doivent être associées à des attributs spécifiques dans l’assertion SAML. Ce mappage garantit que votre Fournisseur de services reçoit les informations utilisateur dans le format attendu et sous les noms d’attributs attendus.
Lorsque vous configurez le mappage des attributs :
- Vous spécifiez quelles propriétés utilisateur de Logto doivent être incluses dans l’assertion SAML
- Vous définissez des noms d’attributs personnalisés attendus par votre Fournisseur de services
- Les attributs mappés sont automatiquement inclus dans l’assertion SAML lors de l’authentification
Attributs courants
Parmi les attributs SAML couramment utilisés, on trouve :
- Sub (ID utilisateur)
- Organisations (Organizations)
- Nom (Name)
- Nom d’utilisateur préféré (Preferred username)
Voir toutes les données utilisateur disponibles depuis Logto
En configurant correctement le mappage des attributs, vous vous assurez que votre Fournisseur de services reçoit toutes les informations utilisateur nécessaires pour fournir un accès et une personnalisation appropriés à vos utilisateurs.
Vous pouvez mapper toutes les informations utilisateur disponibles dans Logto aux attributs attendus par votre SP à l’aide des paramètres de mappage des attributs.
Attributs statiques
Certains Fournisseurs de services attendent des attributs ayant la même valeur pour chaque utilisateur, comme un identifiant qui représente votre compte ou site côté Fournisseur de services. Les attributs statiques sont des paires nom-valeur fixes que Logto ajoute à chaque assertion SAML de l’application, en plus des attributs utilisateur mappés.
Par exemple, une intégration NetSuite SuiteCommerce peut attendre les attributs account et site :
| Nom de l’attribut | Valeur |
|---|---|
account | L’ID de votre compte NetSuite |
site | L’ID de votre site web |
Configurer des attributs statiques dans la Console
- Allez dans Console > Applications et ouvrez votre application SAML.
- Ouvrez l’onglet Mappages d’attributs et trouvez la carte Attributs statiques sous Mappages d’attributs de base.
- Saisissez le nom de l’attribut dans Clé et sa valeur dans Valeur. Cliquez sur Ajouter un autre pour ajouter d’autres attributs. Pour supprimer le dernier attribut, effacez sa clé et sa valeur.
- Cliquez sur Enregistrer les modifications.
Configurer des attributs statiques avec Management API
Définissez staticAttributes lorsque vous créez ou mettez à jour une application SAML avec le Management API :
curl \
--request PATCH \
--header 'Authorization: Bearer <access-token>' \
--header 'Content-Type: application/json' \
--data '{"staticAttributes": {"account": "<your-account-id>", "site": "<your-site-id>"}}' \
'https://[tenant-id].logto.app/api/saml-applications/<application-id>'
Une mise à jour incluant staticAttributes remplace l’objet entier, donc incluez chaque attribut statique que vous souhaitez conserver. Omettez le champ pour les laisser inchangés, ou envoyez {} pour tous les supprimer.
Règles pour les attributs statiques
- Les noms d’attributs peuvent contenir des lettres ASCII, des chiffres et les caractères
_ - . : / # @, donc les noms URI et OID commehttp://schemas.example.com/claims/siteouurn:oid:1.3.6.1.4.1.5923.1.1.1.6sont acceptés. - Chaque attribut statique a une valeur unique, non vide, de type chaîne de caractères.
- Les noms ne doivent pas entrer en conflit entre eux ni avec les noms d’attributs utilisateur dans l’assertion : les noms de la colonne Nom de valeur de votre application de votre mappage d’attributs, ou
sub,emailetnamesi rien n’est mappé. Logto compare les noms après conversion en camel case, avec.,_et-comme séparateurs de mots, doncsite_id,site.idetSiteIdsont en conflit, tout commeaccountetAccount. La même vérification s’effectue lors de la modification du mappage d’attributs. Si l’enregistrement signale un conflit, renommez l’un des attributs.
Tous les attributs de l’assertion, mappés et statiques, utilisent le NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:basic et sont envoyés en tant que valeurs xs:string. Si votre Fournisseur de services attend des noms URI ou OID avec le NameFormat urn:oasis:names:tc:SAML:2.0:attrname-format:uri, vérifiez qu’il accepte également basic.