Introduction
À mesure que les organisations mettent en œuvre plusieurs systèmes logiciels, chacun avec ses propres mécanismes de contrôle d'accès, maintenir les informations d'identité et d'authentification des utilisateurs devient une tâche administrative lourde. Les utilisateurs de ces systèmes sont également accablés car ils doivent se souvenir de plusieurs noms d'utilisateur et mots de passe et s'authentifier séparément dans chaque application.
Pour résoudre ces problèmes, le concept de l'authentification unique (SSO) a été conçu.
Le SSO tente de définir de manière unique le contrôle d'accès de plusieurs systèmes logiciels connexes. Avec le SSO, un utilisateur se connecte avec un seul nom d'utilisateur et mot de passe et accède à plusieurs systèmes sans avoir à fournir une authentification distincte pour chaque système.
SAML 2.0 comme mécanisme pour la mise en œuvre du SSO
Le Security Assertion Markup Language (SAML) est une norme créée pour échanger des données d'authentification entre applications ou domaines de sécurité. Le protocole SAML 2.0 permet de partager les informations des utilisateurs entre une autorité conforme à SAML 2.0 et des applications conformes à SAML 2.0. SAML 2.0 est un protocole basé sur XML et tous les échanges de données sont transmis sous forme de documents XML standard. La norme SAML est maintenue par l'Organization for the Advancement of Structured Information Standards (OASIS).
Tutoriel utile : https://www.okta.com/integrate/documentation/saml/
Termes SAML 2.0 :
Fournisseur d'identité (IdP) – Un système qui gère les informations des utilisateurs et fournit des services d'authentification pour les applications dépendantes. Un fournisseur d'identité peut être établi en utilisant les services de fournisseurs tels que OneLogin, Okta et d'autres. Les organisations peuvent également choisir de mettre en œuvre leur propre système IdP privé. Un exemple populaire est le projet Gluu Server.
Fournisseur de services (SP) – Tout système logiciel utilisé par une organisation qui s'appuie sur un IdP pour le contrôle d'accès. Le produit WFMSG Community est un exemple d'application SP.
Mise en œuvre du SSO par la communauté via SAML 2.0
La spécification SAML 2.0 est vaste et prend en charge de nombreuses méthodes possibles d'authentification des utilisateurs. La communauté met en œuvre un modèle de redirection d'authentification. Lorsque la communauté détecte qu'un utilisateur doit être authentifié, elle redirige le navigateur de l'utilisateur vers le site de l'IdP configuré où l'authentification a lieu.
Le processus d'authentification :
1. Un utilisateur tente d'accéder à une ressource de la communauté
2. La communauté détecte le besoin d'authentifier l'utilisateur
3. La communauté redirige l'utilisateur vers le point de terminaison IdP configuré
4. Si l'IdP n'a pas précédemment authentifié l'utilisateur, il demande le nom d'utilisateur et le mot de passe
5. Si la connexion réussit, l'IdP génère un document d'authentification XML conforme à SAML 2.0
6. L'IdP envoie le document XML à la communauté SAML 2.0 consommateur à https://companysite/CommunityWeb/UI/SAML/consumer.aspx
7. La communauté vérifie l'authenticité du document XML et lit le nom d'utilisateur
8. La communauté vérifie le nom d'utilisateur en interne, configure la session de l'utilisateur et présente la page d'accueil de la communauté aujourd'hui
Exigences de configuration SAML 2.0
Exigence du fournisseur d'identité
Lorsque l'application Community est configurée avec le fournisseur d'identité, le point de terminaison du consommateur SAML au sein de la communauté doit être fourni dans le cadre de la configuration. Le point de terminaison est :
https://companysite/CommunityWeb/UI/SAML/consumer.aspx
Toutes les implémentations de pare-feu et de sécurité doivent être configurées pour permettre la connectivité entre le fournisseur d'identité (IdP) et ce point de terminaison.
Exigences de la communauté
Les paramètres SAML suivants sont requis par la communauté :
• URL du point de terminaison IdP
• URL de l'émetteur IdP
• Nom de la balise XML de l'ID utilisateur de la communauté
• Certificat de sécurité X.509
Ces valeurs sont générées ou créées lorsqu'un administrateur définit initialement la communauté comme une application de fournisseur de services dans le système IdP. Ces valeurs doivent être connues avant d'effectuer la configuration initiale de la communauté, car elles sont nécessaires pour définir SAML comme méthode d'authentification.
CommunityWFM nécessite qu'un compte utilisateur SSO soit créé pour le support CommunityWFM avec accès à l'application Community.
Configuration d'Okta et de la communauté pour utiliser SAML
Depuis la page du menu Applications d'Okta (en utilisant l'interface utilisateur classique) :
1. Sélectionnez Ajouter une application
2. Sélectionnez Créer une nouvelle application
3. Sélectionnez Web pour la plateforme
4. Sélectionnez SAML 2.0 pour la méthode de connexion
5. Cliquez sur Créer :
6. Paramètres généraux :
a. Tapez le nom de l'application et cliquez sur Suivant :
7. Paramètres SAML :
a. Pour l'URL de connexion unique et l'URI d'audience (ID d'entité SP), utilisez :
https://MyCompany.com/CommunityWeb/UI/SAML/consumer.aspx
Remarque : remplacez MyCompany.com par le nom/URL de votre serveur Community
b. Sélectionnez EmailAddress pour le format de l'ID de nom
c. Sélectionnez Nom d'utilisateur Okta pour le nom d'utilisateur de l'application
d. Ajoutez un autre en utilisant Email pour le nom, Non spécifié pour le format du nom, et user.email pour la valeur et sélectionnez Ajouter un autre
e. Cliquez sur Suivant
8. Retour d'information
a. Sélectionnez les options qui s'appliquent à votre entreprise, puis cliquez sur Terminer
9. Configuration de la connexion :
a. Cliquez sur Voir les instructions de configuration :
b. Copiez et collez les champs dans un document texte et fournissez-les au chef de projet CommunityWFM. Voici un exemple d'instructions de configuration.
10. Configuration du serveur CommunityWFM
a. L'ingénieur des services professionnels de la communauté collera les configurations fournies sous la page Configurer l'authentification SAML sous Paramètres > Paramètres de l'application > Paramètres globaux & préférences
b. Il existe deux types de SSO disponibles sous Type de connexion unique :
i. SSO initié par le fournisseur de services (SP) :
ii. SSO initié par le fournisseur d'identité (IdP) :
Configuration de la journalisation SAML de la communauté
La communauté offre aux utilisateurs la possibilité d'activer la journalisation améliorée pour résoudre les échecs SAML sous le lien Cliquez ici pour les options de journalisation sur la page Configurer l'authentification SAML sous Paramètres > Paramètres de l'application > Paramètres globaux et préférences :
Les utilisateurs ont la possibilité d'activer la durée de la journalisation améliorée pour les 5 prochaines minutes, 15 minutes ou 30 minutes. La journalisation s'arrêtera automatiquement après avoir atteint la durée spécifiée :
De plus, l'utilisateur a la possibilité de sélectionner le(s) cible(s) de la journalisation : Journaliser dans le journal d'application du serveur communautaire et/ou Journaliser dans la base de données de la communauté :
Voici un exemple des journaux rapportés :
[/SAML/consumer.aspx] Consommateur SAML appelé le 16/11/2020 à 14:46:34.
[/SAML/consumer.aspx] Tentative de lecture de la configuration SAML de la communauté...
[/SAML/consumer.aspx] La configuration SAML de la communauté a été lue avec succès.
[/SAML/consumer.aspx] Liaison HTTP POST détectée.
[/SAML/consumer.aspx] Les données POST ont été lues avec succès. (Longueur : 6275)
[/SAML/consumer.aspx] SAMLResponse a été lue avec succès. (Longueur : 6208)
[/SAML/consumer.aspx] Le décodage a réussi.
[/SAML/consumer.aspx] Création de l'objet Réponse...
[/SAML/consumer.aspx] Objet Réponse créé.
[/SAML/consumer.aspx] Évaluation du StatusCode...<PASS>
[/SAML/consumer.aspx] Évaluation de l'IssueInstant...<PASS>
[/SAML/consumer.aspx] Lecture du nom d'utilisateur de la communauté à partir de l'attribut Email...
[/SAML/consumer.aspx] Échec de la lecture de l'attribut Email
[/SAML/consumer.aspx] Ces attributs ont été présentés...
Clé : 'http://schemas.microsoft.com/identity/claims/tenantid' Contient la valeur : '93ca9525-cce1-42c8-8b0d-8ce24900b910'
Clé : 'http://schemas.microsoft.com/identity/claims/objectidentifier' Contient la valeur : '26254ad1-37b4-43da-9a19-79f032f9b8fc'
Clé : 'http://schemas.microsoft.com/identity/claims/identityprovider' Contient la valeur : 'https://sts.windows.net/36ee4888-e62d-476c-924a-a7dc71ba90fe/'
Clé : 'http://schemas.microsoft.com/claims/authnmethodsreferences' Contient la valeur : 'http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password'
Clé : 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name' Contient la valeur : 'agentname@wfmsg.com'
Clé : 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/email' Contient la valeur : 'agentname@wfmsg.com'
Dépannage de l'authentification SAML dans la communauté
Le journal d'application du serveur Windows
Lorsque le processus d'authentification SAML échoue, l'utilisateur est présenté avec une page générique de "échec de l'authentification SAML" sans détails sur la raison de l'échec. Des détails spécifiques sur l'échec peuvent être trouvés dans le journal d'application du serveur communautaire.
Point de terminaison de débogage SAML de la communauté
La communauté fournit également un point de terminaison de débogage qui fournit des détails utiles lors du dépannage des échecs SAML.
Pour utiliser cette ressource :
- Au niveau de l'IdP, changez temporairement le point de terminaison consommateur de l'application communautaire en :
https://companysite/CommunityWeb/UI/SAML/test.aspx - Effectuez une connexion utilisateur
- La communauté affichera une page de débogage
La page de débogage affiche les valeurs exactes des paramètres qui étaient contenues dans le document XML reçu de l'IdP. Ces valeurs peuvent être utilisées pour identifier et réparer toute discordance contenue dans la configuration SAML de la communauté.
Configurer des notes utilisant divers IdP SAML
Okta
Depuis la page du menu Applications Okta, sélectionnez Ajouter une application | Créer une nouvelle application. Créez une application de plateforme « web », SAML 2.0.
Lorsque vous êtes invité à entrer l'URL de connexion unique, utilisez :
https://ReplaceWithYourCompanySite//CommunityWeb/UI/SAML/test.aspx pour tester, puis remplacez par l'URL de l'application ci-dessous
https://ReplaceWithYourCompanySite/CommunityWeb/UI/SAML/consumer.aspx,
utilisez les mêmes URL pour Audience que pour la connexion unique.
Ajoutez un attribut sous « Déclarations d'attributs » avec le nom Email, le format peut rester « non spécifié » et la valeur doit être user.email
Le reste de la configuration peut rester par défaut.
Après avoir progressé dans l'assistant et terminé la création de l'application, vous devriez être dirigé vers la « Page de connexion de l'application » :
Sélectionnez « Voir les instructions de configuration ». Cela contient les paramètres nécessaires pour configurer le côté Communauté de la connexion.
Voici un exemple de ce qui est affiché après avoir sélectionné « Voir les instructions de configuration ».
Veuillez copier et coller chacun de ces éléments dans leur intégralité dans un document texte et le fournir au chef de projet CommunityWFM.
Azure Cloud ADFS
1. Dans la section Configuration SAML de base, deux valeurs qui doivent être définies du côté ADFS sont l'« Identifiant (ID d'entité) » et l'« URL de réponse (URL de service client d'assertion) ». Ceux-ci doivent être définis sur
https://ReplaceWithYourCompanySite/CommunityWeb/UI/SAML/test.aspx pour tester, puis remplacez par l'URL de l'application une fois le test terminé https://ReplaceWithYourCompanySite/CommunityWeb/UI/SAML/consumer.aspx
2. Dans la section Attributs et revendications utilisateur, sélectionnez modifier (icône de crayon) puis modifiez la « revendication » individuelle pour l'adresse e-mail. Différent de l'image ci-dessous, le nom de la revendication contiendra l'intégralité de l'« Espace de noms ».
3. L'« Espace de noms » doit être supprimé et le « Nom » doit être défini sur le texte plus court « Email ».
4. Veuillez copier et coller chacun de ces éléments dans leur intégralité dans un document texte et le fournir au chef de projet CommunityWFM.
a. L'URL de connexion ADFS = « Point de terminaison IdP SAML »
b. L'identifiant Azure AD ADFS = « Émetteur SAML »
c. Le nom de l'attribut utilisateur ADFS « Email » = « Attribut utilisateur XML SAML »
d. Le certificat ADFS (Base64) = « Certificat de sécurité