Tester SAML SSO avec Auth0 comme fournisseur de service et fournisseur d’identité

Vous pouvez configurer Auth0 en tant que fournisseur de services (SP) et fournisseur d’identité (IdP) pour tester votre connexion d’authentification unique SAML (SSO).

Protocoles Auth0 comme SP et IdP SAML Schéma

Auth0 supporte uniquement l’utilisation d’Auth0 en tant que SP dans les configurations SAML avec SAML 1.1 ou SAML 2.0, tandis que vous pouvez utiliser Auth0 en tant qu’IdP dans les configurations SAML avec SAML 2.0.

Vous pouvez mettre en place un exemple d’application simple pour les tests qui utilise Auth0 pour authentifier les utilisateurs via SAML SSO en utilisant un locataire comme SP SAML et un autre locataire comme SAML IdP. Vous allez configurer deux fédérations pour un locataire.

Créer un locataire IdP

Si vous n’avez pas encore de locataire Auth0 secondaire pour servir d’IdP SAML, vous devrez en créer un :

  1. Allez dans l’Auth0 Dashboard, sélectionnez votre nom de locataire et sélectionnez Créer un locataire.

    Dashboard (Tableau de bord) - Tenant (Locataire) - Menu déroulant - Créer un locataire

  2. Saisissez un domaine, sélectionnez une région et cliquez sur Créer.

Configurer le locataire IdP

Configurez votre locataire secondaire en tant qu’IdP et enregistrez une application pour représenter votre locataire SP.

  1. Passez à votre locataire IdP. Ouvrez le menu du locataire, sélectionnez Changer de locataire, puis sélectionnez votre locataire IdP.

  2. Naviguez vers Dashboard > Applications > Applications et sélectionnez Créer une application.

  3. Saisissez un nom pour l’application, par exemple mon-auth0-idp, sélectionnez Application Web ordinaire pour le type d’application, puis sélectionnez Créer.

  4. Allez au bas de la page Paramètres et sélectionnez Afficher les paramètres avancés.

  5. Passez à la vue Certificats, puis sélectionnez Télécharger le certificat et choisissez PEM. Le certificat est téléchargé. Vous utiliserez ce certificat lorsque vous configurerez le locataire SP.

  6. Passez à la vue Points de terminaison, localisez URL de protocole SAML et copiez son contenu. Vous utiliserez cet URL lorsque vous configurerez le locataire SP.

Créer un utilisateur pour tester la séquence SAML

  1. Allez dans Dashboard > Gestion des utilisateurs > Utilisateurs et sélectionnez Créer un utilisateur.

  2. Saisissez une adresse courriel pour votre utilisateur de test. Le nom de domaine doit correspondre au domaine de messagerie du locataire du fournisseur de services que vous configurerez ensuite. Par exemple, si votre utilisateur est pierre.untel@exampleco.com, vous devez saisir exampleco.com pour le domaine de messagerie.

  3. Saisissez un mot de passe pour l’utilisateur test.

  4. Utilisez la valeur par défaut pour Connexion.

  5. Sélectionnez Créer.

Configurer le locataire fournisseur de services (SP)

Configurez le locataire SP pour qu’il communique avec le locataire IdP pour la SSO à l’aide du protocole SAML.

  1. Passez à votre locataire SP. Ouvrez le menu des locataires, sélectionnez Changer de locataire, puis sélectionnez votre locataire SP.

  2. Accédez à Dashboard > Authentification > Entreprise et sélectionnez SAML.

  3. Sélectionnez Créer la connexion.

  4. Saisissez les informations suivantes et sélectionnez Créer :

    Paramètre Description
    Nom de connexion Entrez un nom, comme SAML-Auth0-IDP.
    URL de connexion Entrez la valeur URL du protocole SAML que vous avez copiée ci-dessus.
    URL de deconnexion Entrez la même URL que pour l’URL de connexion ci-dessus.
    Certificats de signature X509 Cliquez sur la touche rouge TÉLÉVERSEZ VOTRE CERTIFICAT... et sélectionnez le fichier.pem que vous avez téléchargé ci-dessus.

  5. Passez à la vue Configuration pour voir les métadonnées associées au locataire. Copiez et enregistrez l’URL.

  6. Ouvrez un nouvel onglet de navigateur et naviguez jusqu’à l’URL que vous avez copié précédemment. (Si vous êtes connecté sur le site Auth0 Docs, les paramètres seront pré-remplis avec les valeurs adéquates).

    1. Localisez l’ID d’entité, puis copiez et enregistrez son contenu. Il ressemblera à ce qui suit : urn:auth0:{yourTenant}:{yourConnectionName}. Remplacez {yourConnectionName} par le nom de la connexion que vous avez créée pour votre locataire IdP.

    2. Localisez les métadonnées, et copiez et enregistrez l’URL fourni. Il ressemblera à ce qui suit : https://{yourDomain}/samlp/metadata?connection={yourConnectionName}. Remplacez {yourConnectionName} par le nom de la connexion que vous avez créée pour votre locataire IdP.

    3. Accédez à l’URL que vous avez copié précédemment pour afficher les métadonnées de cette connexion dans le locataire SP. Votre navigateur peut également vous demander d’enregistrer le fichier de métadonnées.

    4. Localisez la ligne qui commence par AssertionConsumerService, puis copiez et enregistrez la valeur du champ Emplacement. Il s’agira d’une URL de la forme suivante : https://{yourDomain}/login/callback?connection={yourConnectionName}. Il s’agit de l’URL de votre locataire SP qui reçoit l’assertion SAML du locataire IdP. Dans la section suivante, vous fournirez cette URL au locataire IdP afin qu’il sache où envoyer l’assertion SAML.

Ajouter les métadonnées du fournisseur de services à l’IdP

Ajoutez des informations sur le fournisseur de services au locataire de l’IdP afin qu’il sache comment recevoir et répondre aux demandes d’authentification SAML.

  1. Passez à votre locataire IdP. Ouvrez le menu du locataire, sélectionnez Changer de locataire, puis sélectionnez votre locataire IdP.

  2. Rendez-vous dans Dashboard > Applications > Applications et sélectionnez le nom de l’application IdP que vous avez créée précédemment.

  3. Passez à la vue Ajouts.

  4. Sélectionnez SAML2 Web App pour afficher ses options, et localisez l’URL de rappel de l’application. Collez l’URL AssertionConsumerService que vous avez copié précédemment.

  5. Dans le bloc de code Settings (Paramètres), localisez la clé audience et décommentez-la, puis supprimez la virgule à la fin de la ligne et remplacez la valeur originale (urn:foo) par la valeur Entity ID (Identifant d’entité) que vous avez copiée précédemment (y compris le nom de connexion que vous avez créé à l’étape 4 lorsque vous avez configuré votre fournisseur de services locataire). La nouvelle ligne devrait ressembler à ce qui suit : "audience":"urn:auth0:{yourTenant}:{yourConnectionName}".

  6. Sélectionnez Activer.

Tester l’IdP

  1. Dans la même fenêtre, faites défiler vers le haut et sélectionnez Débogage. Un écran de connexion s’affiche.

  2. Connectez-vous avec les informations d’identification de l’utilisateur test que vous avez créé ci-dessus. Si votre configuration est correcte, l’écran affichera « Ça marche! », ainsi que la réponse SAML encodée et décodée qui serait envoyée à l’IdP.

  3. Vérifiez la réponse SAML décodée, localisez <saml:Audience>, et assurez-vous qu'elle correspond à l'ID d'entité que vous avez saisi sur l'écran précédent.

  4. Sélectionnez Fermer cette fenêtre.

Créer une application pour tester la connexion SAML

Créez une application simple pour tester la connexion SAML que vous avez créée.

  1. Passez à votre locataire SP. Ouvrez le menu des locataires, sélectionnez Changer de locataire, puis sélectionnez votre locataire SP.

  2. Allez dans Dashboard > Applications > Applications et sélectionnez Créer une application.

  3. Saisissez un nom d’application, sélectionnez Application Web régulière comme type d’application, puis sélectionnez Créer.

  4. Copiez et enregistrez les valeurs Domain (Domaine) et Client ID (ID client).

  5. Localisez le champ URL de rappel autorisées et saisissez http://jwt.io. Il s’agit de la liste des URL de rappel autorisées vers lesquelles les utilisateurs seront redirigés après l’authentification. Les URL saisies ici doivent correspondre aux URL de rappel dans le code HTML créé à l’étape suivante. Normalement, vous devriez saisir une URL pour votre application, mais pour que cet exemple reste simple, l’utilisateur test sera envoyé vers l’outil en ligne Auth0 JWT, qui fournit des informations sur le jeton Web JSON (JWT) renvoyé à la fin de la séquence d’authentification.

  6. Sélectionnez Enregistrer les modifications.

  7. Passez à la vue Connexions, localisez la connexion SAML que vous avez créée dans la section Entreprise et activez-la.

Tester la connexion entre le service et le fournisseur d’identité

Testez pour vous assurer que la configuration SAML entre votre locataire SP et le locataire IdP fonctionne.

  1. Accédez à Dashboard > Authentification > Entreprise et sélectionnez SAML.

  2. Localisez la connexion SAML que vous avez créée et sélectionnez l’icône fléchée Essayer. Comme vous vous êtes déjà connecté lors du test de cette connexion, vous devriez être envoyé directement à l’écran « Ça marche! ». Si l’écran de connexion s’affiche, connectez-vous en utilisant les identifiants de votre utilisateur de test.

Si la configuration est correcte, vous verrez « Ça marche! » et la page affichera le contenu de l’assertion d’authentification SAML envoyée par le locataire IdP au locataire Auth0.

Si la configuration n’est pas correcte, vérifiez à nouveau vos étapes. Si vous rencontrez toujours des difficultés, consultez la section de dépannage à la fin de ce document.

Créer une page Web pour l’application de test

Créez une page Web simple qui invoque le widget Lock déclenchant la séquence de connexion SAML.

  1. Créez une page HTML, et insérez le code HTML et JavaScript suivant. Remplacez {yourClientId} et {yourDomain} avec les valeurs réelles de l’application que vous avez enregistrée ci-dessus. (Si vous n’avez pas pris note de ces valeurs, vous pouvez les trouver dans Paramètres de l’application sur votre locataire SP.)

    <!DOCTYPE html>
    <html lang="en">
    <body>
      <button type="button" onclick="login()">Log in</button>
      <script src="https://cdn.auth0.com/js/auth0/9.19.0/auth0.min.js"></script>
      <script>
        var auth0 = new auth0.WebAuth({
          domain: YOUR_AUTH0_DOMAIN,
          clientID: YOUR_CLIENT_ID,
          redirectUri: URL_TO_THIS_PAGE,
          responseType: 'token id_token',
          scope: 'openid email profile'
        })
    
        auth0.parseHash(function(err, data) {
          if (err) {
            console.log(err)
          }
    
          if (data) {
            console.log('Login successful!')
            console.log(data)
          }
        })
    
        window.login = function() {
          auth0.authorize()
        }
      </script>
    
    </body>
    </html>

    Was this helpful?

    /

  2. Vous pouvez aussi remplacer audience avec la valeur appropriée pour votre application, mais pour les besoins de ce test, un paramètre fictif est suffisant. Si vous ne spécifiez pas le paramètre audience, assurez-vous qu’il corresponde à un identifiant d’une API existante que vous avez configuré dans Auth0.

  3. Enregistrez le fichier HTML où vous pouvez y accéder depuis un navigateur.

Tester l’application d’exemple

Testez l’exemple d’application HTML qui utilise la connexion SAML Auth0 que vous avez créée dans votre locataire SP pour effectuer l’authentification SSO contre le locataire IdP.

  1. Ouvrez le fichier HTML que vous avez créé ci-dessus avec un navigateur. Vous devriez voir une touche de connexion.

  2. Cliquez sur Connexion. Vous devriez voir le widget Lock avec une option. Si vous avez activé d’autres connexions pour votre application, l’écran peut avoir un look différent. Si l’on vous demande une adresse de courriel, assurez-vous que l’adresse courriel que vous saisissez a le même nom de domaine que le domaine que vous avez saisi dans la vue Paramètres pour l’application dans le premier locataire.

  3. Cliquez sur la touche bleue, qui peut indiquer saml ou ACCESS. Que des authentifiants vous soient demandés ou que vous soyez directement redirigé vers l’URL de rappel dépend de si vous avez encore une session active.

Dépannage d’un scénario de test

  • Effacez l’historique de votre navigateur et les témoins chaque fois que vous effectuez un test. Si vous ne le faites pas, le navigateur peut ne pas récupérer la dernière version de votre page HTML, ou il peut avoir des témoins périmés qui affectent l’exécution.

  • Capturez une trace HTTP de l’interaction. De nombreux outils permettent de capturer le trafic HTTP de votre navigateur à des fins d’analyse.

    • Effectuez une recherche sur internet en tapant « HTTP Trace » pour trouver et installer un outil.

    • Capturez la séquence de connexion du début à la fin et analysez la trace. Suivez la séquence de GET pour voir à quel point vous vous trouvez dans la séquence attendue. Vous devriez voir une redirection de votre site d’origine vers le locataire SP, puis vers le locataire IdP, un POST des identifiants si vous avez dû vous connecter, puis une redirection vers l’URL de rappel ou le locataire SP, et enfin une redirection vers l’URL de rappel indiquée dans votre application.

  • Assurez-vous que les cookies et JavaScript sont activés dans votre navigateur.

  • Assurez-vous que le URL de rappel spécifié dans le fichier HTML figure également dans le champ Allowed URL de rappel autorisées de votre application. Pour ce faire, allez dans Dashboard > Applications > Applications et sélectionnez le nom de votre application, puis localisez URL de rappel autorisées.

  • Utilisez l’outil http://samltool.io pour décoder une assertion SAML.

En savoir plus