Authentification unique Keycloak

Last reviewed 2024-04-29 UTC

Ce guide explique comment configurer l'authentification unique (single sign-on, SSO) entre Keycloak et votre compte Cloud Identity ou Google Workspace à l'aide de la fédération SAML. Ce document suppose que vous avez installé et que vous utilisez Keycloak.

Objectifs

  • Configurez votre serveur Keycloak afin qu'il puisse être utilisé comme fournisseur d'identité (identity provider, IdP) par Cloud Identity ou Google Workspace.
  • Configurez votre compte Cloud Identity ou Google Workspace afin qu'il utilise Keycloak pour l'authentification unique.

Avant de commencer

  1. Si vous ne possédez pas de compte Cloud Identity, créez-en un.
  2. Assurez-vous que votre compte Cloud Identity dispose des droits de super-administrateur.
  3. Si votre serveur Keycloak est utilisé pour gérer plusieurs domaines, choisissez le domaine que vous souhaitez utiliser pour la fédération.
  4. Assurez-vous de disposer d'un accès administrateur au domaine sélectionné.

Créer un profil SAML

Pour configurer l'authentification unique avec Keycloak, vous devez d'abord créer un profil SAML dans votre compte Cloud Identity ou Google Workspace. Le profil SAML contient les paramètres liés à votre serveur Keycloak, y compris son URL et son certificat de signature.

Vous attribuerez ultérieurement le profil SAML à certains groupes ou unités organisationnelles.

Pour créer un profil SAML dans votre compte Cloud Identity ou Google Workspace, procédez comme suit :

  1. Dans la console d'administration, accédez à Sécurité > Authentification > SSO avec un IdP tiers.

    Accéder à la page "SSO avec un IdP tiers"

  2. Cliquez sur Profils SSO tiers > Ajouter un profil SAML.

  3. Sur la page Profil SSO SAML, saisissez les paramètres suivants :

    • Nom : Keycloak
    • ID d'entité du fournisseur d'identité :

      Keycloak 17 ou version ultérieure

      https://KEYCLOAK/realms/REALM
      

      Keycloak 16 ou version antérieure

      https://KEYCLOAK/auth/realms/REALM
      
    • URL de la page de connexion :

      Keycloak 17 ou version ultérieure

      https://KEYCLOAK/realms/REALM/protocol/saml
      

      Keycloak 16 ou version antérieure

      https://KEYCLOAK/auth/realms/REALM/protocol/saml
      
    • URL de la page de déconnexion :

      Keycloak 17 ou version ultérieure

      https://KEYCLOAK/realms/REALM/protocol/openid-connect/logout
      

      Keycloak 16 ou version antérieure

      https://KEYCLOAK/auth/realms/REALM/protocol/openid-connect/logout?redirect_uri=https://KEYCLOAK/auth/realms/REALM/account/
      
    • URL de modification du mot de passe :

      Keycloak 17 ou version ultérieure

      https://KEYCLOAK/realms/REALM/account
      

      Keycloak 16 ou version antérieure

      https://KEYCLOAK/auth/realms/REALM/account
      

    Dans toutes les URL, remplacez les éléments suivants :

    • KEYCLOAK : nom de domaine complet de votre serveur Keycloak
    • REALM : nom du domaine sélectionné

    N'importez pas de certificat de validation pour le moment.

  4. Cliquez sur Enregistrer.

    La page Profil SSO SAML qui s'affiche contient deux URL :

    • ID d'entité
    • URL ACS

    Vous aurez besoin de ces URL dans la section suivante lors de la configuration de Keycloak.

Configurer Keycloak

Pour configurer votre serveur Keycloak, vous devez créer un client.

Créer un client

Créez un client SAML dans Keycloak :

  1. Connectez-vous à Keycloak et ouvrez la console d'administration.
  2. Sélectionnez le domaine que vous souhaitez utiliser pour la fédération.
  3. Dans le menu, sélectionnez Clients.
  4. Cliquez sur Créer un client.
  5. Configurez les paramètres suivants pour le client :

    Keycloak 19 ou version ultérieure

    • Type de client : SAML
    • ID client : URL d'entité de votre profil SSO.
    • Nom : Google Cloud

    Keycloak 18 ou version antérieure

    • ID client : URL d'entité de votre profil SSO.
    • Client Protocol (protocole client) : saml
    • Client SAML Endpoint(point de terminaison SAML client) : laissez ce champ vide.
  6. Cliquez sur Enregistrer.

  7. Spécifiez les détails du client en configurant les paramètres suivants :

    Keycloak 19 ou version ultérieure

    Dans l'onglet Paramètres :

    • URI de redirection valide : URL ACS de votre profil SSO
    • Name ID Format (format de l'ID de nom) : email
    • Force Name ID Format (application du format de l'ID de nom : on (activée)
    • Documents signés : désactivé
    • Sign Assertions (signature d'assertions) : on (activée)

    Dans l'onglet Clés :

    • Client Signature Required (signature client requise) : off (désactivée)

    Keycloak 18 ou version antérieure

    • Nom : un nom tel que Google Cloud
    • Sign Assertions (signature d'assertions) : on (activée)
    • Client Signature Required (signature client requise) : off (désactivée)
    • Force Name ID Format (application du format de l'ID de nom : on (activée)
    • Name ID Format (format de l'ID de nom) : email
    • URI de redirection valide : URL ACS de votre profil SSO

    Conservez les valeurs par défaut pour tous les autres paramètres.

  8. Cliquez sur Enregistrer.

Exporter le certificat de signature

Une fois que Keycloak a authentifié un utilisateur, il transmet une assertion SAML à Cloud Identity ou à Google Workspace. Pour permettre à Cloud Identity et à Google Workspace de vérifier l'intégrité et l'authenticité de cette assertion, Keycloak signe l'assertion avec une clé de signature de jeton spéciale et fournit un certificat permettant à Cloud Identity ou Google Workspace de vérifier la signature.

Exportez maintenant le certificat de signature de jetons à partir de Keycloak :

  1. Dans le menu, sélectionnez Realm settings (paramètres du domaine).
  2. Sélectionnez l'onglet Keys (clés).
  3. Recherchez la ligne Algorithme : RS256. S'il y a plusieurs lignes, utilisez celle avec Utiliser : SIG. Sélectionnez ensuite Certificat.

    Une boîte de dialogue contenant un certificat encodé en base64 s'affiche.

  4. Copiez la valeur du certificat encodé en base64 dans le presse-papiers.

Avant de pouvoir utiliser le certificat de signature, vous devez le convertir au format PEM en ajoutant un en-tête et un pied de page.

  1. Ouvrez un éditeur de texte, tel que le Bloc-notes ou Vim.
  2. Collez l'en-tête suivant, suivi d'une nouvelle ligne :

    -----BEGIN CERTIFICATE-----
    
  3. Collez le certificat encodé en base64 du presse-papiers.

  4. Ajoutez une nouvelle ligne, puis collez le pied de page suivant :

    -----END CERTIFICATE-----
    

    Une fois la modification effectuée, le fichier se présente comme suit :

    -----BEGIN CERTIFICATE-----
    MIICmzCCAYMCBgF7v8/V1TANBgkq...
    -----END CERTIFICATE-----
    
  5. Enregistrez le fichier dans un emplacement temporaire sur votre ordinateur.

Compléter le profil SAML

Vous allez utiliser le certificat de signature pour finaliser la configuration de votre profil SAML :

  1. Revenez à la console d'administration et accédez à Sécurité > Authentification > SSO avec un IdP tiers.

    Accéder à la page "SSO avec un IdP tiers"

  2. Ouvrez le profil SAML Keycloak que vous avez créé précédemment.

  3. Cliquez sur la section Détails du fournisseur d'identité pour modifier les paramètres.

  4. Cliquez sur Importer un certificat, puis sélectionnez le certificat de signature de jetons que vous avez téléchargé précédemment.

  5. Cliquez sur Enregistrer.

Votre profil SAML est finalisé, mais vous devez encore l'attribuer.

Attribuer le profil SAML

Sélectionnez les utilisateurs auxquels le nouveau profil SAML doit s'appliquer :

  1. Dans la console d'administration, sur la page SSO avec des fournisseurs d'identité tiers, cliquez sur Gérer l'attribution des profils SSO > Gérer.

    Accéder à la page "Gérer l'attribution des profils SSO"

  2. Dans le volet de gauche, sélectionnez le groupe ou l'unité organisationnelle auquel vous souhaitez appliquer le profil SSO. Pour appliquer le profil à tous les utilisateurs, sélectionnez l'unité organisationnelle racine.

  3. Dans le volet de droite, sélectionnez Autre profil SSO.

  4. Dans le menu, sélectionnez le profil SSO Keycloak - SAML que vous avez créé précédemment.

  5. Cliquez sur Enregistrer.

Répétez la procédure pour attribuer le profil SAML à un autre groupe ou à une autre unité organisationnelle.

Tester l'authentification unique

Vous avez terminé la configuration de l'authentification unique. Vous pouvez maintenant vérifier si l'authentification unique fonctionne correctement.

  1. Choisissez un utilisateur Keycloak répondant aux critères suivants :

    • L'utilisateur possède une adresse e-mail.
    • L'adresse e-mail correspond à l'adresse e-mail principale d'un utilisateur existant de votre compte Cloud Identity ou Google Workspace.
    • L'utilisateur Cloud Identity ne dispose pas de droits de super-administrateur.

      Les comptes utilisateur dotés des droits de super-administrateur doivent systématiquement se connecter à l'aide d'identifiants Google, et ne conviennent donc pas pour tester l'authentification unique.

  2. Ouvrez une nouvelle fenêtre de navigateur et accédez à Google Cloud Console.

  3. Sur la page de connexion Google, saisissez l'adresse e-mail du compte utilisateur, puis cliquez sur Suivant.

    Page de connexion Google

    Vous êtes redirigé vers Keycloak.

  4. Saisissez vos identifiants Keycloak, puis cliquez sur Se connecter.

    Une fois l'authentification réussie, Keycloak vous redirige vers la console Google Cloud. Comme il s'agit de la première connexion de cet utilisateur, vous êtes invité à accepter les conditions d'utilisation et les règles de confidentialité de Google.

  5. Si vous acceptez les conditions, cliquez sur Accepter.

  6. Vous êtes redirigé vers la console Google Cloud, qui vous demande de confirmer vos préférences et d'accepter les conditions d'utilisation de Google Cloud. Si vous acceptez ces conditions, cliquez sur Oui, puis sur Accepter et continuer.

  7. Cliquez sur l'icône d'avatar, puis sur Se déconnecter.

    Vous êtes redirigé vers Keycloak.

Si vous ne parvenez pas à vous connecter, n'oubliez pas que les comptes utilisateur dotés de droits de super-administrateur peuvent contourner l'authentification unique. Il vous est donc toujours possible d'utiliser la Console d'administration pour vérifier ou modifier les paramètres.

Facultatif : Configurer des redirections pour les URL de service spécifiques au domaine

Lorsque vous créez un lien vers la console Google Cloud à partir de portails ou de documents internes, vous pouvez améliorer l'expérience utilisateur en utilisant des URL de service spécifiques au domaine.

Contrairement aux URL de service standards telles que https://console.cloud.google.com/, les URL de service spécifiques au domaine incluent le nom de votre domaine principal. Les utilisateurs non authentifiés qui cliquent sur un lien vers une URL de service spécifique au domaine sont immédiatement redirigés vers Keycloak au lieu de passer d'abord par une page de connexion Google Sign-In.

Voici quelques exemples d'URL de service spécifiques au domaine :

Service Google URL Logo
Console Google Cloud https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com Logo Google Cloud
Google Docs https://docs.google.com/a/DOMAIN Logo Google Docs
Google Sheets https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://sheets.google.com Logo Google Sheets
Google Sites https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://slides.google.com Logo Google Sites
Google Drive https://drive.google.com/a/DOMAIN Logo Google Drive
Gmail https://mail.google.com/a/DOMAIN Logo Gmail
Google Groupes https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://groups.google.com Logo Google Groupes
Google Keep https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://keep.google.com Logo Google Keep
Looker Studio https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://lookerstudio.google.com Logo Looker Studio

Pour configurer des URL de service spécifiques au domaine afin qu'elles redirigent vers Keycloak, procédez comme suit :

  1. Dans la console d'administration, sur la page SSO avec des IdP tiers, cliquez sur URL de service spécifiques au domaine > Modifier.

    Accéder aux URL de service spécifiques au domaine

  2. Définissez l'option Rediriger automatiquement les utilisateurs vers l'IdP tiers dans le profil SSO suivant sur Activé.

  3. Définissez le profil SSO sur Keycloak.

  4. Cliquez sur Enregistrer.

Facultatif : Configurer des questions d'authentification à la connexion

Google Sign-In peut demander aux utilisateurs une validation supplémentaire lorsqu'ils se connectent depuis un appareil inconnu ou lorsque leur tentative de connexion semble suspecte pour d'autres raisons. Ces questions d'authentification à la connexion améliorent la sécurité et nous vous recommandons de les laisser activées.

Si vous constatez que les questions d'authentification à la connexion entraînent trop de frictions, vous pouvez les désactiver en procédant comme suit :

  1. Dans la console d'administration, accédez à Sécurité > Authentification > Questions d'authentification à la connexion.
  2. Dans le volet de gauche, sélectionnez l'unité organisationnelle pour laquelle vous souhaitez désactiver les questions d'authentification à la connexion. Pour désactiver les questions d'authentification à la connexion pour tous les utilisateurs, sélectionnez l'unité organisationnelle racine.
  3. Sous Paramètres pour les utilisateurs qui se connectent à l'aide d'autres profils SSO, sélectionnez Ne pas demander aux utilisateurs de validation supplémentaire de la part de Google.
  4. Cliquez sur Enregistrer.

Étapes suivantes