Menu
SAML est un standard ouvert pour l’échange d’informations d’authentification et d’autorisation entre différentes parties, notamment entre un fournisseur d’identité (IdP) et un fournisseur de services (SP). Il permet une authentification unique (SSO), facilitant ainsi l’accès sécurisé des utilisateurs à plusieurs applications et services sans nécessiter une authentification multiple.
Sur THEIA, la configuration d’un protocole SAML permet, outre l’authentification, de réaliser automatiquement certaines opérations telles que la création automatique des comptes ou des groupes.
1. Prérequis et informations diverses
Prérequis :
Hébergement du fournisseur d’identité IDP
Traitement des requêtes HTTPS.
Certificats SSL/TLS
Clés et certificats numériques signés et chiffrés.
Attribut de mapping (non vide) : username
Compte actif sur la plateforme THEIA et disposant d’un droit de configuration du SSO
Variable permettant le mapping : username
Synchronisation et mise à jour des informations : à la connexion.
2. Couverture fonctionnelle
3. Configuration dans THEIA
En dehors du paramétrage de l’ADFS, annuaire ou portail faisant office de fournisseur d’identité numérique, vous devez intervenir sur la configuration de votre plateforme THEIA afin d’ouvrir les accès SSO sur le protocole SAML et d’en délimiter les options de mapping.
Une interface de configuration dédiée est accessible sur votre plateforme, dans la rubrique « Paramètres » – « Configuration SSO » – « SAML » ou via l’url https://elffe.theia.fr/sso/config/saml
Pour accéder à cette interface, vous devez disposer d’un compte actif THEIA disposant du droit « Administrer les paramètres SSO«
4. Fournisseur d'identité (IdP)
Afin de permettre la communication entre les deux fournisseurs SAML (fournisseur d’identité et fournisseur de service), il est essentiel de renseigner soit l’URL pointant vers le fichier des métadonnées .xml ou directement le contenu dans le champ Metadata XML.
Cette configuration permet la transmission des informations liées aux utilisateurs ainsi que la création automatique de leurs comptes lors de la première connexion.
Aussi, vous avez la possibilité de venir provisionner les comptes SAML en amont (ou de modifier un compte existant issue d’une autre modalité de connexion. Ex : compte local, cas, azure etc.) grâce aux fonctionnalités d’administration individuelle ou en en masse du menu Utilisateurs > Comptes des utilisateurs. Il faudra alors veiller à ce que l’attribut username fourni à la connexion corresponde à l’identifiant THEIA du compte ou inversement, à ce que l’identifiant créé sur THEIA correspondent à l’attribut username.
On note que Entity Id doit correspondre à l’identifiant présent dans le fichier des métadonnées.
Lors de la mise en place de ce service, nous vous conseillons d’activer le mode debug afin d’obtenir la liste des logs. Cela facilitera la correction d’éventuelles anomalies.
5. Gestion des groupes
La valeur associée à l’attribut de groupe permet, lors de chaque connexion, d’inscrire l’utilisateur dans l’entité correspondante. Si le groupe n’est pas présent sur la plateforme ou si la valeur de l’attribut est vide, alors l’inscription sera effectuée dans le groupe par défaut. On note qu’un utilisateur ne peut être désinscrit d’un groupe via cette méthode.
En revanche, il est possible de créer ce groupe si celui ci n’existe pas via la case à cocher Créer les groupes. Il dépendra alors de la catégorie renseignée dans le champ Sélectionner une catégorie.
Aussi, un utilisateur peut être inscrit dans plusieurs groupes. L’élément transmis devra alors être équivalent à l’exemple suivant :
groupe 1
groupe 2
6. SAML Service Provider Configuration
L’affichage de ces informations est conditionné par la case à cocher Autoriser les utilisateurs à se connecter grâce à SAML. Elles vous renseignent :
- Le paramètre Entity Id du fournisseur de service
- L’URL vers le fichier .xml des métadonnées afin d’obtenir les éléments liées à la communication entre les fournisseurs ainsi que le contenu attendu
- L’URL ACS qui permet au client de paramétrer le lien d’accès à la plateforme THEIA
- L’URL Logout qui laisse au client la liberté de configurer une éventuelle déconnexion depuis son portail
Comme présenté dans le fichier de métadonnées, la plateforme attend une assertion signée. Il est important de préciser qu’elle attend également que l’ensemble de la réponse le soit.
7. Aide au diagnostic, détection des anomalies
Lors de la configuration du SAML dans l’espace THEIA, nous vous conseillons d’activer le mode debug afin d’obtenir la liste des logs pour vos éventuels essais . Cela facilitera la correction d’éventuelles anomalies et vous pourrez le désactiver par la suite.
Aussi, des extensions navigateurs (par exemple SAML DevTools Extension sur Chrome ou SAML Message Decoder sur Firefox) permettent de visualiser les données échangées avec le serveur d’identité, et notamment les claims/attributions. L’accès à ces données vous permettront d’avancer dans l’identification de l’origine d’éventuelles anomalies.
Voici une liste d’erreur récurrentes :
Problème d’assertion non signées ou mal signées : les assertions SAML doivent être signées correctement pour assurer la sécurité. Les problèmes de signature incorrecte ou absente peuvent entraîner des échecs d’authentification.
Problèmes de Certificat SSL/TLS : Des certificats expirés, non valides ou mal configurés peuvent causer des problèmes de communication entre le fournisseur d’identité (IdP) et le fournisseur de services (SP).
Mauvaise Configuration des Métadonnées : les erreurs dans les métadonnées SAML, comme des URL incorrectes ou des identifiants de fournisseur mal configurés, peuvent empêcher une authentification réussie.
Valeurs d’Attributs Manquantes ou Incorrectes : si les attributs requis par le SP ne sont pas fournis ou sont incorrects dans l’assertion SAML, cela peut entraîner des échecs d’authentification ou des problèmes d’autorisation. Vérifier que les attributs username, lastName, firstName et email sont bien configurés et que leurs valeurs sont bien présentes !
Valeur incorrectes sur l’attribut Groupe : si vous avez activé l’option de création automatique des groupes, un attribut dédié « group » doit y être consacré. Les valeurs sont cumulables afin de permettre d’identifier un utilisateur à plusieurs groupes mais ne sont pas concaténables. Pour rappel, si une valeur est vide, l’utilisateur rejoindra automatiquement le groupe par défaut que vous avez configuré.
Problèmes de Synchronisation de l’Horloge : Les différences de temps entre l’IdP et le SP peuvent causer des problèmes, car les assertions SAML ont souvent une fenêtre de validité temporelle.
Erreurs de Configuration de l’URL de Réponse (ACS) : Une URL de Consumer Service Assertion (ACS) mal configurée peut empêcher le SP de traiter correctement les réponses SAML.