Fédérer Google Cloud avec Active Directory : configurer l'authentification unique

Ce tutoriel constitue la troisième partie d'une série expliquant comment étendre une solution de gestion des identités existante basée sur Active Directory à Google Cloud. Il vous montre comment configurer l'authentification unique entre votre environnement Active Directory et Google Cloud à l'aide de Cloud Identity, d'Active Directory Federation Services (AD FS) et de la fédération SAML.

La série comprend les éléments suivants :

Ce tutoriel suppose que vous ayez compris comment la gestion des identités Active Directory peut être étendue à Google Cloud et que vous ayez déjà configuré la synchronisation des comptes entre Active Directory et Cloud Identity. Nous partons également du principe que vous disposez d'un serveur AD FS 4.0 opérationnel fonctionnant sous Windows Server 2016.

Pour suivre ce tutoriel, vous devez connaître Active Directory Domain Services et AD FS. Il vous faut également disposer d'un compte utilisateur Cloud Identity doté de droits de super-administrateur et d'un compte Active Directory doté d'un accès administrateur sur votre serveur AD FS.

Objectifs

  • Configurer votre serveur AD FS de sorte que Cloud Identity puisse l'utiliser comme fournisseur d'identité
  • Créer une stratégie d'émission de revendications permettant de mapper les identités entre Active Directory et Cloud Identity
  • Configurer Cloud Identity pour la délégation de l'authentification à AD FS

Coûts

Si vous utilisez l'édition gratuite de Cloud Identity, l'exécution de ce tutoriel n'entraînera l'utilisation d'aucun composant facturable de Google Cloud.

Avant de commencer

  1. Vérifiez que votre serveur AD FS exécute Windows Server 2016 ou une version ultérieure. Il est également possible de configurer l'authentification unique à l'aide de versions antérieures de Windows Server et d'AD FS, mais les étapes de configuration requises peuvent en ce cas différer de celles qui sont décrites dans ce tutoriel.
  2. Assurez-vous d'avoir bien compris comment la gestion des identités Active Directory peut être étendue à Google Cloud.
  3. Configurez la synchronisation des comptes entre Active Directory et Cloud Identity.
  4. Assurez-vous que votre serveur AD FS utilise un certificat SSL (Secure Sockets Layer) valide et reconnu par les navigateurs de vos utilisateurs d'entreprise.
  5. Pensez à configurer AD FS dans une configuration de ferme de serveurs, de façon à éviter d'en faire un point de défaillance unique. Une fois que vous avez activé l'authentification unique, la disponibilité d'AD FS détermine si les utilisateurs peuvent se connecter à Cloud Console.
  6. Si vous pensez que l'un des domaines que vous prévoyez d'utiliser pour Cloud Identity aurait pu être utilisé par les employés pour enregistrer des comptes personnels, envisagez d'abord de migrer ces comptes. Pour en savoir plus, consultez la page Migrer des comptes personnels.

Comprendre l'authentification unique

Google Cloud assure la gestion de l'authentification et des accès à l'aide des comptes Google. Pour pouvoir accéder aux ressources Google Cloud, un employé doit posséder une identité Google. Cloud Directory Sync vous a déjà permis d'automatiser la création et la maintenance des comptes Google, ainsi que de lier leur cycle de vie aux comptes d'Active Directory.

Cloud Directory Sync synchronise les détails des comptes, mais pas les mots de passe. Chaque fois qu'un utilisateur doit s'authentifier dans Google Cloud, l'authentification doit être déléguée à Active Directory, à l'aide d'AD FS et du protocole SAML (Security Assertion Markup Language). Cette configuration garantit que seul Active Directory a accès aux identifiants de l'utilisateur et applique les règles ou mécanismes d'authentification multifacteurs (MFA) existants. De plus, elle crée une expérience d'authentification unique entre votre environnement sur site et Google.

SAML 2.0 définit un protocole et un dialecte XML qui vous permettent d'implémenter l'authentification unique entre deux parties, appelées fournisseur d'identités et fournisseur de services :

  • Le fournisseur de services est la partie qui est tenue d'authentifier un utilisateur. Comme il n'est pas configuré pour effectuer l'authentification par lui-même, le fournisseur de services en délègue la responsabilité au fournisseur d'identités.
  • Le fournisseur d'identités est la partie chargée d'assurer l'authentification de l'utilisateur à proprement parler. Il identifie les faits relatifs à l'utilisateur et les retransmet au fournisseur de services. L'ensemble de ces faits s'appelle une assertion.

Pour implémenter l'authentification unique entre Active Directory et Google, vous devez configurer AD FS en tant que fournisseur d'identités et Cloud Identity en tant que fournisseur de services.Une fois cette configuration en place, la connexion à Cloud Console s'effectue comme suit :

Connexion à Cloud Console

  1. L'utilisateur ouvre Cloud Console à l'aide d'un navigateur.
  2. Comme l'utilisateur n'a pas encore été authentifié, Cloud Console redirige le navigateur vers Cloud Identity.
  3. L'utilisateur accède à une page de connexion qui lui demande de saisir une adresse e-mail.
  4. Une fois que l'utilisateur a soumis son adresse e-mail, Google Sign-In constate que celle-ci appartient à un répertoire Cloud Identity configuré pour l'authentification fédérée à l'aide d'AD FS. Par conséquent, il redirige le navigateur vers AD FS.
  5. Selon sa configuration, AD FS peut alors renvoyer l'utilisateur à la page de connexion et exiger la saisie d'un nom d'utilisateur et d'un mot de passe. Si l'authentification basée sur Kerberos est utilisée, l'utilisateur est authentifié automatiquement sans qu'il soit nécessaire de saisir des identifiants.
  6. Si l'utilisateur doit saisir des identifiants, AD FS interagit avec le centre de distribution de clés Active Directory à l'aide de Kerberos pour valider le nom d'utilisateur et le mot de passe.
  7. Une fois les identifiants validés, AD FS renvoie le navigateur à Google Sign-In.
  8. Google Sign-In établit une session et renvoie le navigateur à Cloud Console, qui autorise maintenant l'accès.

Configurer AD FS

Avant d'activer l'authentification unique dans Cloud Identity, vous devez configurer AD FS.

Créer l'approbation de partie de confiance

AD FS exige la création d'une approbation de partie de confiance pour chaque fournisseur de services appelé à l'utiliser pour l'authentification. Vous allez commencer par créer une approbation de partie de confiance pour Cloud Identity :

  1. Connectez-vous à votre serveur AD FS et ouvrez le composant logiciel enfichable MMC AD FS.
  2. Dans le menu de gauche, cliquez avec le bouton droit sur le dossier Approbations de partie de confiance. Dans le menu contextuel, sélectionnez Ajouter une approbation de partie de confiance.
  3. Sur la première page de l'assistant, sélectionnez Claims aware (Prise en charge des revendications) et cliquez sur Start (Démarrer).

  4. Sur la page suivante, sélectionnez Entrer manuellement les données concernant la partie de confiance, puis cliquez sur Suivant.

  5. Sur la page suivante, saisissez un nom à afficher tel que Cloud Identity, puis cliquez sur Suivant.

  6. La page suivante vous invite à fournir un certificat de chiffrement de jetons. Cette étape n'est pas nécessaire pour se connecter à Cloud Identity : cliquez simplement sur Suivant.

  7. Sur la page suivante, sélectionnez Enable support for the SAML 2.0 WebSSO protocol (Activer la prise en charge du protocole WebSSO SAML 2.0) et saisissez l'URL du service d'authentification unique suivante :

    https://www.google.com/a/[DOMAIN]/acs
    

    Veillez à remplacer [DOMAIN] par le domaine principal de votre annuaire Cloud Identity. Cliquez ensuite sur Next (Suivant).

  8. La page suivante de l'assistant vous invite à indiquer les identifiants de l'approbation de partie de confiance. Ajoutez les identifiants suivants à la liste :

    • google.com/a/[DOMAIN], en remplaçant [DOMAIN] par le domaine principal de votre répertoire Cloud Identity
    • google.com

    Cliquez sur Next (Suivant).

  9. Sur la page suivante, choisissez une stratégie d'accès. La configuration de l'authentification multifacteur dépasse le cadre de ce tutoriel : contentez-vous pour l'instant de cliquer sur Autoriser tout le monde, puis cliquez sur Next (Suivant).

  10. Sur la page Prêt à ajouter l'approbation, vérifiez vos paramètres, puis cliquez sur Suivant.

  11. Sur la dernière page, décochez la case Configurer la stratégie d'émission de revendications et fermez l'assistant. La liste des approbations de partie de confiance comporte à présent une nouvelle entrée.

Configurer l'URL de déconnexion

Lorsque vous permettez aux utilisateurs d'utiliser l'authentification unique à l'échelle de plusieurs applications, il est important qu'ils aient aussi la possibilité de se déconnecter simultanément de plusieurs applications :

  1. Dans la console de gestion AD FS, sous Approbations de partie de confiance, cliquez avec le bouton droit sur l'approbation que vous venez de créer, puis cliquez sur Propriétés.
  2. Sous l'onglet Endpoints (Points de terminaison), cliquez sur Add SAML (Ajouter SAML).
  3. Dans la boîte de dialogue Add an Endpoint (Ajouter un point de terminaison), configurez les paramètres suivants :

    1. Endpoint type (Type de point de terminaison) : SAML Logout (Déconnexion SAML)
    2. Binding (Liaison) : POST
    3. Trusted URL (URL approuvée) : https://[ADFS]/adfs/ls/?wa=wsignout1.0

      En remplaçant [ADFS] par le nom de domaine complet de votre serveur AD FS.

  4. Cliquez sur OK.

  5. Cliquez sur OK pour fermer la boîte de dialogue.

Configurer le mappage des revendications

Une fois qu'AD FS a authentifié un utilisateur, il émet une assertion SAML auprès de Cloud Identity. Cette assertion fournit la preuve que l'authentification a bien eu lieu. L'assertion doit spécifier qui a été authentifié, ce qui constitue l'objectif de la revendication NameID.

Pour que Cloud Identity puisse mapper le paramètre NameID au compte utilisateur associé, ce paramètre doit contenir l'adresse e-mail correspondante. Selon la méthode choisie pour mapper les identités de compte entre Active Directory et Cloud Identity, le paramètre NameID doit contenir le nom d'utilisateur principal (UPN) ou l'adresse e-mail du compte Active Directory, après application des éventuelles substitutions de domaine requises.

UPN

  1. Dans la console de gestion AD FS, sous Approbations de partie de confiance, cliquez avec le bouton droit sur l'approbation que vous venez de créer, puis cliquez sur Éditer la stratégie d'émission de revendication.
  2. Dans la boîte de dialogue, cliquez sur Ajouter une règle.
  3. Sélectionnez Envoyer les attributs LDAP en tant que revendications, puis cliquez sur Suivant.
  4. Sur la page suivante, appliquez les paramètres ci-dessous :
    1. Nom de la règle de revendication : Map Email and Name ID
    2. Magasin d'attributs : Active Directory
  5. Ajoutez une ligne à la liste des mappages d'attributs LDAP :
    1. Attribut LDAP : User-Principal-Name
    2. Type de revendication sortante : Name ID
  6. Cliquez sur Terminer, puis sur OK.

UPN : substitution de domaine

  1. Dans la console de gestion AD FS, sous Approbations de partie de confiance, cliquez avec le bouton droit sur l'approbation que vous venez de créer, puis cliquez sur Éditer la stratégie d'émission de revendication.
  2. Dans la boîte de dialogue, cliquez sur Ajouter une règle.
  3. Sélectionnez Envoyer les revendications en utilisant une règle personnalisée, puis cliquez sur Suivant.
  4. Sur la page suivante, appliquez les paramètres ci-dessous :

    1. Nom de la règle de revendication : Load UPN
    2. Règle personnalisée :

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
       => add(store = "Active Directory", types = ("http://temp.google.com/upn"), query = ";userPrincipalName;{0}", param = c.Value);
      

      Cette règle charge le nom d'utilisateur principal (UPN) du compte associé à partir d'Active Directory et l'enregistre dans une revendication temporaire.

  5. Cliquez sur Terminer.

  6. Cliquez sur Ajouter une règle pour créer une deuxième règle.

  7. Sélectionnez Envoyer les revendications en utilisant une règle personnalisée, puis cliquez sur Suivant.

  8. Sur la page suivante, appliquez les paramètres ci-dessous :

    1. Nom de la règle de revendication : Transform UPN
    2. Règle personnalisée :

      c:[Type == "http://temp.google.com/upn"]
       => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = RegexReplace(c.Value, "@(.*?)$", "@[DOMAIN]"));
      

      Cette règle ouvre la revendication temporaire qui contient le nom UPN et remplace le domaine de suffixe UPN par [DOMAIN]. La revendication résultante sera émise auprès de Cloud Identity et permettra d'associer l'utilisateur à son compte Cloud Identity.

      Veillez à remplacer [DOMAIN] par le domaine principal de votre répertoire Cloud Identity.

  9. Cliquez sur Terminer, puis sur OK.

    Selon l'UPN d'origine, vous devrez peut-être appliquer différentes substitutions. Si tel est le cas, vous devez créer des règles supplémentaires, à raison d'une règle par substitution possible, et recourir à des conditions pour déterminer quelle règle doit s'appliquer dans quel cas. Par exemple, la règle suivante remplace le domaine UPN par corp.example.com, mais seulement si le domaine d'origine était corp.local :

    c:[Type == "http://temp.google.com/upn", value =~ "^.+@corp.local$"]
     => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = RegexReplace(c.Value, "@(.*?)$", "corp.example.com"));
    

    Si vous êtes appelé à appliquer des substitutions, vous devez exécuter différentes configurations Cloud Directory Sync, à raison d'une configuration par substitution.

E-mail

  1. Dans la console de gestion AD FS, sous Approbations de partie de confiance, cliquez avec le bouton droit sur l'approbation que vous venez de créer, puis cliquez sur Éditer la stratégie d'émission de revendication.
  2. Dans la boîte de dialogue, cliquez sur Ajouter une règle.
  3. Sélectionnez Envoyer les attributs LDAP en tant que revendications, puis cliquez sur Suivant.
  4. Sur la page suivante, appliquez les paramètres ci-dessous :
    1. Nom de la règle de revendication : Map Email and Name ID
    2. Magasin d'attributs : Active Directory
  5. Ajoutez une ligne à la liste des mappages d'attributs LDAP :
    1. Attribut LDAP : E-Mail-Addresses
    2. Type de revendication sortante : Name ID
  6. Cliquez sur Terminer, puis sur OK.

E-mail : substitution de domaine

  1. Dans la console de gestion AD FS, sous Approbations de partie de confiance, cliquez avec le bouton droit sur l'approbation que vous venez de créer, puis cliquez sur Éditer la stratégie d'émission de revendication.
  2. Dans la boîte de dialogue, cliquez sur Ajouter une règle.
  3. Sélectionnez Envoyer les revendications en utilisant une règle personnalisée, puis cliquez sur Suivant.
  4. Sur la page suivante, appliquez les paramètres ci-dessous :

    1. Nom de la règle de revendication : Load email address
    2. Règle personnalisée :

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
       => add(store = "Active Directory", types = ("http://temp.google.com/mail"), query = ";mail;{0}", param = c.Value);
      

      Cette règle charge l'adresse e-mail du compte associé à partir d'Active Directory et l'enregistre dans une revendication temporaire.

  5. Cliquez sur Terminer.

  6. Cliquez sur Ajouter une règle pour créer une deuxième règle.

  7. Sélectionnez Envoyer les revendications en utilisant une règle personnalisée, puis cliquez sur Suivant.

  8. Sur la page suivante, appliquez les paramètres ci-dessous :

    1. Nom de la règle de revendication : Transform email address
    2. Règle personnalisée :

      c:[Type == "http://temp.google.com/mail"]
       => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Value = RegexReplace(c.Value, "@(.*?)$", "@[DOMAIN]"));
      

      Cette règle lit la revendication temporaire contenant l'adresse e-mail et remplace le domaine par [DOMAIN]. La revendication résultante sera émise auprès de Cloud Identity et permettra d'associer l'utilisateur à son compte Cloud Identity.

      Veillez à remplacer [DOMAIN] par le domaine principal de votre répertoire Cloud Identity.

  9. Cliquez sur Terminer, puis sur OK.

Exporter le certificat de signature de jetons AD FS

Lorsque AD FS émet une assertion SAML auprès de Cloud Identity, ce dernier doit vérifier l'intégrité et l'authenticité de cette assertion. Pour cela, SAML exige que l'assertion soit signée à l'aide d'une clé spéciale appelée clé de signature de jetons, qui correspond à la clé privée d'une paire de clés publique/privée désignée. La clé publique de cette paire est mise à la disposition des fournisseurs de services sous la forme d'un certificat de signature de jetons, qui leur permet de vérifier la signature d'une assertion.

Avant de configurer Cloud Identity, vous devez exporter le certificat de signature de jetons à partir d'AD FS :

  1. Dans la console de gestion AD FS, cliquez sur Service > Certificats.
  2. Cliquez avec le bouton droit sur le certificat répertorié sous Signature de jetons, puis cliquez sur Afficher le certificat.
  3. Cliquez sur l'onglet Détails.
  4. Cliquez sur Copier dans un fichier pour ouvrir l'assistant d'exportation de certificat.
  5. Cliquez sur Suivant.
  6. Sélectionnez le format X.509 binaire encodé DER (.CER), puis cliquez sur Suivant.
  7. Saisissez un nom de fichier local et cliquez sur Suivant.
  8. Confirmez l'exportation en cliquant sur Terminer.
  9. Cliquez sur OK pour fermer la fenêtre de message confirmant que l'exportation a réussi.
  10. Copiez le certificat exporté sur votre ordinateur local.

Configurer Cloud Identity

Une fois la configuration d'AD FS terminée, vous pouvez configurer l'authentification unique dans Cloud Identity :

  1. Dans la console d'administration, cliquez sur Sécurité > Paramètres.
  2. Cliquez sur Configurer l'authentification unique (SSO) avec un fournisseur d'identité tiers.
  3. Assurez-vous que l'option Configurer l'authentification unique avec un fournisseur d'identité tiers est activée.
  4. Saisissez les paramètres suivants. Dans toutes les URL, remplacez [ADFS] par le nom de domaine complet de votre serveur AD FS :
    1. URL de la page de connexion : https://[ADFS]/adfs/ls/
    2. URL de la page de déconnexion : https://[ADFS]/adfs/ls/?wa=wsignout1.0
    3. URL de la page de modification du mot de passe : https://[ADFS]/adfs/portal/updatepassword/
  5. Sous Certificat de vérification, cliquez sur Sélectionner un fichier, puis choisissez le certificat de signature de jetons AD FS que vous avez téléchargé précédemment.
  6. Cliquez sur Enregistrer.
  7. Sur la page suivante, confirmez que vous avez l'intention d'activer l'authentification unique, puis cliquez sur Je comprends et j'accepte.
  8. Pour vous déconnecter de la console d'administration, dans l'angle supérieur droit, cliquez sur l'avatar, puis sur Déconnexion.

Tester l'authentification unique

Vous avez maintenant terminé la configuration de l'authentification unique dans AD FS et Cloud Identity. Pour vérifier si l'authentification unique fonctionne comme prévu, exécutez le test suivant :

  1. Choisissez un compte utilisateur Active Directory ayant déjà été synchronisé avec Cloud Identity et ne disposant pas des 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 à l'URL https://console.cloud.google.com/.
  3. Sur la page Google Sign-In qui s'affiche, saisissez l'adresse e-mail du compte utilisateur, puis cliquez sur Next (Suivant). Si vous utilisez la substitution de domaine, vous devez l'appliquer à l'adresse e-mail.

    Saisissez l'adresse e-mail du compte utilisateur.

    Vous êtes redirigé vers AD FS. Si vous avez configuré AD FS pour utiliser l'authentification par formulaire, la page de connexion s'affiche.

  4. Saisissez votre nom d'utilisateur principal (UPN) et votre mot de passe pour le compte Active Directory, puis cliquez sur Sign in (Connexion).

    Saisissez votre nom d'utilisateur principal (UPN) et votre mot de passe pour le compte Active Directory.

  5. Une fois l'authentification réussie, AD FS vous redirige vers Google Identity Platform. 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.

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

  7. Vous êtes redirigé vers Cloud Console, 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.

  8. En haut à gauche, cliquez sur l'icône d'avatar, puis sur Déconnexion.

    Vous êtes ensuite redirigé vers une page AD FS confirmant votre déconnexion.

Si vous ne parvenez pas à vous connecter, l'activation du journal de débogage AD FS sur le serveur AD FS peut vous aider à diagnostiquer le problème. Si vous utilisez l'authentification Windows intégrée, vous pouvez envisager de passer temporairement à l'authentification par formulaire afin de pouvoir effectuer des tests avec différents comptes utilisateur plus facilement.

N'oubliez pas que les comptes utilisateur dotés des droits de super-administrateur sont exemptés de l'authentification unique, ce qui vous permet de continuer à utiliser la console d'administration pour vérifier ou modifier des paramètres.

Effectuer un nettoyage

Si vous ne souhaitez pas laisser l'authentification unique activée pour votre organisation, procédez comme suit pour désactiver cette fonctionnalité dans Cloud Identity :

  1. Dans la console d'administration, cliquez sur Sécurité > Paramètres.
  2. Cliquez sur Configurer l'authentification unique (SSO) avec un fournisseur d'identité tiers.
  3. Décochez la case Configurer l'authentification unique avec un fournisseur d'identité tiers.
  4. Cliquez sur Enregistrer.

Pour nettoyer la configuration dans AD FS, procédez comme suit :

  1. Connectez-vous à votre serveur AD FS et ouvrez le composant logiciel enfichable MMC AD FS.
  2. Dans le menu de gauche, cliquez avec le bouton droit sur le dossier Approbations de partie de confiance.
  3. Dans la liste des approbations de partie de confiance, effectuez un clic droit sur Cloud Identity, puis cliquez sur Supprimer.
  4. Confirmez la suppression en cliquant sur Oui.

Étapes suivantes