Si votre application traite les requêtes provenant d'utilisateurs, il est recommandé de limiter l'accès uniquement aux utilisateurs autorisés. Les utilisateurs ne disposent généralement pas d'autorisations IAM sur votre projet Google Cloud ou votre service Cloud Run.
On distingue deux types d'utilisateurs :
- Utilisateurs finaux : utilisateurs de votre application qui n'appartiennent pas nécessairement à votre organisation. Ils doivent généralement créer un compte eux-mêmes.
- Utilisateurs internes : utilisateurs explicitement autorisés à accéder à votre application par un administrateur de votre organisation et qui appartiennent généralement à votre organisation.
Authentifier les utilisateurs finaux
Si vous souhaitez authentifier les utilisateurs à l'aide d'une combinaison adresse e-mail/mot de passe, d'un numéro de téléphone, d'un compte de réseau social tel que Google, Facebook ou GitHub, ou d'un mécanisme d'authentification personnalisé, vous pouvez utiliser Identity Platform. L'utilisation de Firebase Authentication est semblable à celle d'Identity Platform.
Vous avez besoin d'une application Web ou mobile publique qui gère le flux de connexion, puis effectue des appels d'API authentifiés auprès d'un service Cloud Run. Cette application Web publique peut elle-même être hébergée sur un service Cloud Run public.
Pour un tutoriel complet sur l'utilisation d'Identity Platform pour l'authentification des utilisateurs finaux, consultez le tutoriel Authentification des utilisateurs finaux pour Cloud Run.
Ajoutez du code à votre service Cloud Run pour vérifier les jetons d'ID.
Dans votre application Web ou mobile, procédez comme suit :
- Utilisez la bibliothèque cliente Firebase Authentication appropriée pour obtenir un jeton d'ID :
- Android : utilisez la méthode
GetTokenResult().getToken()
. - iOS : utilisez la méthode
User.getIDTokenResult(completion:)
. - Web : utilisez la méthode
firebase.User.getIdToken()
.
- Android : utilisez la méthode
- Incluez le jeton d'ID dans un en-tête
Authorization: Bearer ID_TOKEN
dans la requête adressée au service.
- Utilisez la bibliothèque cliente Firebase Authentication appropriée pour obtenir un jeton d'ID :
Pour accéder aux informations d'un profil utilisateur, vous pouvez utiliser l'une des méthodes suivantes :
- Utilisez le SDK Firebase Admin pour effectuer une requête réseau afin de récupérer des données utilisateur.
- Utilisez une bibliothèque cliente des API Google pour récupérer les données utilisateur à l'aide de la méthode la plus adaptée à l'environnement d'exécution choisi.
Pour découvrir un tutoriel détaillé portant sur une application utilisant cette technique d'authentification, suivez le tutoriel sur l'authentification de l'utilisateur final pour Cloud Run.
Authentifier les utilisateurs internes
Pour l'authentification des utilisateurs internes, vous pouvez utiliser Identity-Aware Proxy.
Si vous souhaitez configurer Identity-Aware Proxy pour un service Cloud Run existant, reportez-vous à la documentation sur l'activation d'Identity-Aware Proxy pour Cloud Run.
Pour savoir comment utiliser OAuth 2.0 pour authentifier des utilisateurs ou des comptes de service auprès d'un service Cloud Run sécurisé par Identity-Aware Proxy, consultez la documentation sur l'authentification automatisée.