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
- Si vous ne possédez pas de compte Cloud Identity, créez-en un.
- Assurez-vous que votre compte Cloud Identity dispose des droits de super-administrateur.
- Si votre serveur Keycloak est utilisé pour gérer plusieurs domaines, choisissez le domaine que vous souhaitez utiliser pour la fédération.
- 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 :
Dans la console d'administration, accédez à Sécurité > Authentification > SSO avec un IdP tiers.
Cliquez sur Profils SSO tiers > Ajouter un profil SAML.
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 KeycloakREALM
: nom du domaine sélectionné
N'importez pas de certificat de validation pour le moment.
- Nom :
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 :
- Connectez-vous à Keycloak et ouvrez la console d'administration.
- Sélectionnez le domaine que vous souhaitez utiliser pour la fédération.
- Dans le menu, sélectionnez Clients.
- Cliquez sur Créer un client.
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.
Cliquez sur Enregistrer.
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.
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 :
- Dans le menu, sélectionnez Realm settings (paramètres du domaine).
- Sélectionnez l'onglet Keys (clés).
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.
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.
- Ouvrez un éditeur de texte, tel que le Bloc-notes ou Vim.
Collez l'en-tête suivant, suivi d'une nouvelle ligne :
-----BEGIN CERTIFICATE-----
Collez le certificat encodé en base64 du presse-papiers.
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-----
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 :
Revenez à la console d'administration et accédez à Sécurité > Authentification > SSO avec un IdP tiers.
Ouvrez le profil SAML
Keycloak
que vous avez créé précédemment.Cliquez sur la section Détails du fournisseur d'identité pour modifier les paramètres.
Cliquez sur Importer un certificat, puis sélectionnez le certificat de signature de jetons que vous avez téléchargé précédemment.
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 :
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.
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.
Dans le volet de droite, sélectionnez Autre profil SSO.
Dans le menu, sélectionnez le profil SSO
Keycloak - SAML
que vous avez créé précédemment.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.
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.
Ouvrez une nouvelle fenêtre de navigateur et accédez à Google Cloud Console.
Sur la page de connexion Google, saisissez l'adresse e-mail du compte utilisateur, puis cliquez sur Suivant.
Vous êtes redirigé vers Keycloak.
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.
Si vous acceptez les conditions, cliquez sur Accepter.
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.
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 |
|
Google Docs | https://docs.google.com/a/DOMAIN |
|
Google Sheets | https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://sheets.google.com
|
|
Google Sites | https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://slides.google.com |
|
Google Drive | https://drive.google.com/a/DOMAIN |
|
Gmail | https://mail.google.com/a/DOMAIN |
|
Google Groupes | https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://groups.google.com |
|
Google Keep | https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://keep.google.com
|
|
Looker Studio | https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://lookerstudio.google.com |
Pour configurer des URL de service spécifiques au domaine afin qu'elles redirigent vers Keycloak, procédez comme suit :
Dans la console d'administration, sur la page SSO avec des IdP tiers, cliquez sur URL de service spécifiques au domaine > Modifier.
Définissez l'option Rediriger automatiquement les utilisateurs vers l'IdP tiers dans le profil SSO suivant sur Activé.
Définissez le profil SSO sur
Keycloak
.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 :
- Dans la console d'administration, accédez à Sécurité > Authentification > Questions d'authentification à la connexion.
- 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.
- 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.
- Cliquez sur Enregistrer.
Étapes suivantes
- Obtenez plus d'informations sur Identity and Access Management (IAM).
- Découvrez les bonnes pratiques pour configurer une organisation d'entreprise dans Google Cloud.