Authentifier les utilisateurs avec des identités externes

Ce guide de démarrage rapide indique comment sécuriser une application à l'aide d'Identity-Aware Proxy (IAP) et d'identités externes. En combinant IAP et Identity Platform, vous pouvez authentifier les utilisateurs avec un large éventail de fournisseurs d'identité, par exemple OAuth, SAML et OIDC, en plus des comptes Google.

Dans ce guide de démarrage rapide, vous allez sécuriser un exemple d'application App Engine à l'aide de l'authentification Facebook.

Avant de commencer

  1. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  2. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  3. Installez et initialisez Google Cloud CLI.

  4. Initialisez App Engine pour votre projet :

    gcloud app create --project=project-id
    
  5. Installez Git.

  6. Installez Node.js.

  7. Installez l'outil de ligne de commande Firebase :

    npm install -g firebase-tools
    

Activer les API

Tout d'abord, activez Identity Platform :

  1. Accédez à la page Identity Platform Marketplace dans Cloud Console.

    Accéder à la page Identity Platform Marketplace

  2. Cliquez sur Enable Identity Platform (Activer Identity Platform). La page "Identity Platform" s'affiche dans Cloud Console.

Ensuite, activez IAP :

  1. Accédez à la page IAP dans Cloud Console.

    Accéder à la page IAP

  2. Sélectionnez le projet que vous avez utilisé pour Identity Platform. Il n'est pas possible d'utiliser des projets différents.

  3. Cliquez sur Activer l'API.

Télécharger et déployer l'exemple de code

Le code utilisé dans ce guide de démarrage rapide comporte deux composants : une application cliente et une application d'authentification.

L'application cliente est protégée par IAP. Lorsqu'il reçoit une requête d'un utilisateur non authentifié, il la redirige vers l'application d'authentification afin de vérifier l'identité de l'utilisateur. Si l'utilisateur se connecte correctement, l'application d'authentification répond avec un jeton Web JSON (JWT, JSON Web Token). À des fins de démonstration, l'application cliente affiche le JWT.

Commencez par télécharger le code, puis déployez l'application cliente :

  1. Téléchargez l'exemple de code :

    git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
    
  2. Accédez au répertoire de l'application cliente :

    cd iap-gcip-web-toolkit/sample/app
    
  3. Installez les dépendances :

    npm install
    
  4. Déployez l'application cliente sur App Engine :

    npm run deploy
    

    L'application cliente se lance à l'URL suivante :

    https://[PROJECT-ID].appspot.com
    

Déployez ensuite l'application d'authentification :

  1. Accédez au répertoire de l'application d'authentification :

    cd ../authui-firebaseui
    
  2. Installez les dépendances :

    npm install
    
  3. Configurez l'application d'authentification pour utiliser Firebase Hosting. Indiquez l'ID de projet que vous avez utilisé pour l'application cliente :

    firebase use project-id
    
  4. Déployez l'application :

    npm run deploy
    

    L'application d'authentification se lance à l'URL suivante :

    https://[PROJECT-ID].firebaseapp.com
    

Vous avez déployé l'application cliente et l'application d'authentification ! L'étape suivante consiste à configurer Identity Platform et IAP.

Configurer Identity Platform

IAP authentifie les identités externes à l'aide d'Identity Platform. Dans ce guide de démarrage rapide, Facebook est utilisé à titre d'exemple, mais Identity Platform est compatible avec un large éventail de fournisseurs d'identité.

Créer une application Facebook

Pour authentifier des utilisateurs avec Facebook, vous devez fournir un ID d'application et un secret d'application.

  1. Connectez-vous à Facebook for Developers. Si vous ne possédez pas encore de compte Facebook, vous devez en créer un.

  2. Accédez à la page Apps (Applications) de Facebook.

  3. Cliquez sur Add a New App (Ajouter une nouvelle application).

  4. Dans le menu de gauche, sélectionnez Settings > Basic (Paramètres > De base).

  5. Dans la zone Privacy Policy URL (URL des règles de confidentialité), saisissez une URL valide. Si vous déployez l'application en production ultérieurement, vous pouvez la mettre à jour afin qu'elle renvoie vers vos règles de confidentialité.

  6. Prenez note de votre ID d'application et de votre secret d'application. Vous en aurez besoin à la section suivante.

Ajouter Facebook en tant que fournisseur d'identité

Configurez Identity Platform de façon à utiliser Facebook pour l'authentification :

  1. Accédez à la page Identity Providers (Fournisseurs d'identité) dans Cloud Console.

    Accéder à la page "Fournisseurs d'identité"

  2. Cliquez sur Ajouter un fournisseur.

  3. Sélectionnez Facebook dans la liste des fournisseurs.

  4. Saisissez l'ID d'application et le secret d'application que vous avez obtenus à la section précédente.

  5. Cliquez sur Enregistrer.

Configurer l'URI de redirection OAuth

Lorsque Facebook termine le traitement d'une requête provenant de l'application d'authentification, il a besoin d'un URI vers lequel effectuer la redirection.

  1. Revenez à la page Apps (Applications) de Facebook, puis sélectionnez votre application.

  2. Dans le menu de gauche, cliquez sur Products (Produits).

  3. Recherchez le produit Facebook Login, puis cliquez sur Set Up (Configurer).

  4. Dans le menu de navigation de gauche, sélectionnez Settings (Paramètres). Vous n'avez pas besoin de suivre le processus de démarrage rapide guidé.

  5. Dans la zone Valid OAuth Redirect URIs (URI de redirection OAuth valides), saisissez l'URI de redirection :

    https://project-id.firebaseapp.com/__/auth/handler
    

    Vous trouverez également cet URI sur la page de configuration du fournisseur d'Identity Platform.

  6. Cliquez sur Enregistrer les modifications.

Vous avez terminé de configurer Identity Platform ! Vous pouvez maintenant configurer IAP afin de l'utiliser pour l'authentification.

Activer IAP pour utiliser des identités externes

  1. Accédez à la page "IAP" dans Cloud Console.

    Accéder à la page IAP

  2. Cliquez sur l'onglet Ressources HTTP.

  3. Sélectionnez l'exemple d'application App Engine que vous avez déployé précédemment. L'URL figurant dans la catégorie Published (Publié) doit ressembler à ceci :

    https://project-id.appspot.com
    
  4. Dans la colonne "IAP", basculez le bouton sur Activer.

    Activer IAP

  5. Dans le panneau latéral, sous Utiliser des identités externes pour l'autorisation, cliquez sur Démarrer.

    Passer aux identités externes

  6. Sous Page de connexion, sélectionnez Je fournis ma propre page.

  7. Dans le champ URL d'authentification, saisissez l'URL de l'application d'authentification. Elle doit ressembler à ceci :

    https://project-id.firebaseapp.com/
    

    Une fois l'URL saisie, Cloud Console ajoute automatiquement votre clé API.

  8. Cochez la case correspondant au nom de votre projet. Facebook doit être répertorié en tant que fournisseur d'identité.

    Configurer les identités externes

  9. Cliquez sur Enregistrer.

Vous avez terminé de configurer IAP.

Tester l'accès

Pour vérifier que IAP protège votre application, procédez comme suit :

  1. Accédez à l'application App Engine cliente dans votre navigateur :

    https://project-id.appspot.com
    

    Un écran de chargement s'affiche brièvement, puis vous êtes redirigé vers la page de connexion Identity Platform.

  2. Suivez les instructions à l'écran pour vous authentifier avec Facebook.

  3. Vous devriez être redirigé vers l'application cliente, qui affichera le JWT renvoyé par Identity Platform.

Félicitations ! Vous avez déployé une application sur App Engine, et l'avez protégée avec IAP et des identités externes.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud, procédez comme suit :

  1. Dans Cloud Console, accédez à la page Gérer les ressources :

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Vous pouvez également supprimer l'application Facebook que vous avez créée.

Étapes suivantes