Introduction
L'authentification est le processus permettant de confirmer votre identité grâce à l'utilisation d'un identifiant. L'authentification consiste à prouver que vous êtes bien celui que vous prétendez être.
Google fournit de nombreux services et API, qui nécessitent de s'authentifier pour y accéder. Google propose également un certain nombre de services qui hébergent des applications écrites par nos clients. Ces applications doivent également déterminer l'identité de leurs utilisateurs.
Les API Google mettent en œuvre et étendent le framework OAuth 2.0.
Obtenir de l'aide concernant l'authentification
| Action | Instructions |
|---|---|
| S'authentifier auprès d'un Cloud de Confiance service à partir de mon application à l'aide d'un langage de programmation de haut niveau | Configurez les identifiants par défaut de l'application, puis utilisez l'une des bibliothèques clientes Cloud. |
| Authentifiez-vous auprès d'une application nécessitant un jeton d'ID. | Obtenez un jeton d'identification OpenID Connect (OIDC) et fournissez-le avec votre requête. |
Tester des commandes gcloud dans mon environnement de développement local.
|
Initialisez gcloud CLI. |
| Tester des requêtes d'API REST dans mon environnement de développement local. Cloud de Confiance |
Utilisez un outil de ligne de commande tel que curl pour
appeler l'API REST.
|
| Tester un extrait de code figurant dans la documentation de mon produit. | Configurez les identifiants par défaut de l'application pour un environnement de développement local, et installez la bibliothèque cliente de votre produit dans votre environnement local. La bibliothèque cliente va rechercher automatiquement vos identifiants. |
Choisir la méthode d'authentification adaptée à votre cas d'utilisation
Ce schéma vous aide à répondre aux questions suivantes :
-
Exécutez-vous du code dans un environnement de développement à utilisateur unique, tel que votre propre poste de travail, Cloud Shell ou une interface de bureau virtuel ?
- Si oui, passez à la question 4.
- Si ce n'est pas le cas, passez à la question 2.
- Exécutez-vous du code dans Cloud de Confiance by S3NS?
- Si oui, passez à la question 3.
- Sinon, passez à la question 5.
- Exécutez-vous des conteneurs dans Google Kubernetes Engine ?
- Si oui, utilisez la fédération d'identité de charge de travail pour GKE pour associer des comptes de service aux pods Kubernetes.
- Sinon, associez un compte de service à la ressource.
-
Votre cas d'utilisation nécessite-t-il un compte de service ?
Par exemple, vous souhaitez configurer l'authentification et l'autorisation de manière cohérente pour votre application dans tous les environnements.
- Si ce n'est pas le cas, authentifiez-vous avec des identifiants utilisateur.
- Si oui, empruntez l'identité d'un compte de service avec des identifiants utilisateur.
-
Votre charge de travail s'authentifie-t-elle avec un fournisseur d'identité externe compatible avec
la fédération d'identité de charge de travail ?
- Si oui, configurez la fédération d'identité de charge de travail pour permettre aux applications exécutées sur site ou sur d'autres fournisseurs cloud d'utiliser un compte de service.
- Si ce n'est pas le cas, créez une clé de compte de service.
Méthodes d'autorisation pour les Cloud de Confiance services
L'autorisation pour Cloud de Confiance est principalement gérée par Identity and Access Management (IAM). IAM offre un contrôle précis, par compte principal et par ressource.
Vous pouvez appliquer une autre couche d'autorisation avec
les champs d'application OAuth 2.0. Lorsque vous vous
authentifiez auprès d'un Cloud de Confiance service, vous pouvez utiliser un champ d'application global qui
autorise l'accès à tous Cloud de Confiance les services
(https://www.googleapis.com/auth/cloud-platform) ou, si un service le permet,
vous pouvez limiter l'accès avec un champ d'application plus restreint. Les champs d'application limités peuvent vous aider à réduire les risques si votre code s'exécute dans des environnements où les jetons compromis peuvent être un problème, comme les applications mobiles.
Les champs d'application d'autorisation acceptés par une méthode d'API sont répertoriés dans la documentation de référence de l'API pour chaque Cloud de Confiance service.
Identifiants par défaut de l'application
Les identifiants par défaut de l'application (ADC) sont une stratégie utilisée par les bibliothèques d'authentification Google permettant d'accéder automatiquement à des identifiants en fonction de l'environnement d'application. Les bibliothèques d'authentification mettent ces identifiants à la disposition des bibliothèques clientes Cloud et des bibliothèques clientes des API Google. Lorsque vous utilisez le service ADC, votre code peut s'exécuter dans un environnement de développement ou bien de production, sans modifier la manière dont votre application s'authentifie auprès des API et services. Cloud de Confiance by S3NS
Le service ADC peut simplifier votre processus de développement, car il vous permet d'utiliser le même code d'authentification dans divers environnements. Toutefois, si vous utilisez un service en mode express, vous n'avez pas besoin d'utiliser le service ADC.
Avant de pouvoir utiliser les identifiants par défaut de l'application, vous devez fournir vos identifiants au service ADC, en fonction de l'emplacement où vous souhaitez que votre code s'exécute. Le service ADC localise automatiquement les identifiants et obtient un jeton en arrière-plan, ce qui permet à votre code d'authentification de s'exécuter dans différents environnements sans modification. Par exemple, la même version de votre code peut tout aussi bien s'authentifier auprès des Cloud de Confiance API lors de l'exécution sur un poste de travail de développement, que sur Compute Engine.
Vos identifiants gcloud sont différents de ceux que vous fournissez au service ADC à l'aide de gcloud CLI. Pour en savoir plus, consultez la section Configuration de l'authentification gcloud CLI et configuration ADC.
Terminologie
Il est important de connaître les concepts suivants pour évoquer les thèmes de l'authentification et de l'autorisation.
Authentification
L'authentification est le processus visant à déterminer l'identité du compte principal qui tente d'accéder à une ressource.
Autorisation
L'autorisation est le processus permettant de déterminer si le compte principal ou l'application qui tente d'accéder à une ressource a été autorisé pour ce niveau d'accès.
Identifiants
Lorsque ce document utilise le terme compte utilisateur, il fait référence à un compte utilisateur géré par votre fournisseur d'identité et fédéré avec la fédération des identités des employés.
Pour l'authentification, les identifiants sont un objet numérique qui fournit une preuve d'identité. Les mots de passe, les codes PIN et les données biométriques sont autant d'identifiants potentiels, qui peuvent être utilisés selon les exigences de l'application. Par exemple, lorsque vous vous connectez à votre compte utilisateur, vous fournissez votre mot de passe et répondez le cas échéant aux exigences d'authentification à deux facteurs pour prouver que le compte est bien le vôtre et que vous n'êtes pas victime de spoofing de la part d'une personne malintentionnée.
Les jetons ne sont pas des identifiants. Il s'agit d'un objet numérique qui prouve que l'appelant a fourni des identifiants appropriés.
Le type d'identifiant à fournir dépend de la ressource auprès de laquelle vous vous authentifiez.
Les types d'identifiants suivants peuvent être créés dans la Cloud de Confiance console :
Clés API
Vous pouvez utiliser des clés API avec les API qui les acceptent pour accéder à l'API. Les clés API qui ne sont pas liées à un compte de service fournissent un projet, qui est utilisé à des fins de facturation et de quotas. Si la clé API est liée à un compte de service, elle fournit également l'identité et l'autorisation du compte de service (aperçu).
Pour en savoir plus sur les clés API, consultez la page Clés API. Pour en savoir plus sur les clés API liées à un compte de service, consultez la FAQ sur le mode express de Google Cloud.
Clés de compte de service
Les clés de compte de service identifient un compte principal (le compte de service) et le projet associé au compte de service.
Vous pouvez également créer des identifiants à l'aide de gcloud CLI. Ces identifiants incluent les types suivants :
- Fichiers ADC locaux
- Configurations d'identifiants utilisées par la fédération d'identité de charge de travail
- Configurations d'identifiants utilisées par la fédération des identités des employés
Compte principal
Un compte principal est une identité qui peut se voir accorder l'accès à une ressource. Pour l'authentification, les API Google sont compatibles avec deux types de comptes principaux : les comptes utilisateur et les comptes de service.
Le recours à un compte utilisateur ou à un compte de service va dépendre du cas d'utilisation. Vous pouvez combiner les deux, à différentes étapes de votre projet ou dans différents environnements de développement.
Comptes utilisateur
Les comptes utilisateur représentent un développeur, un administrateur ou toute autre personne qui interagit avec les API et les services Google.
Les comptes utilisateur sont gérés par votre fournisseur d'identité et fédérés avec la fédération des identités des employés.Avec un compte utilisateur, vous pouvez vous authentifier auprès des API et des services Google de différentes manières :
- En utilisant gcloud CLI pour configurer les identifiants par défaut de l'application (ADC).
- En utilisant vos identifiants utilisateur pour vous connecter à Google Cloud CLI, puis en utilisant cet outil pour accéder aux Cloud de Confiance services
- En utilisant vos identifiants utilisateur pour emprunter l'identité d'un compte de service
- En utilisant vos identifiants utilisateur pour vous connecter à Google Cloud CLI, puis en utilisant cet outil pour générer des jetons d'accès.
Comptes de service
Les comptes de service sont des comptes qui ne représentent pas un utilisateur humain. Ils permettent de gérer l'authentification et l' autorisation lorsqu'une personne n'est pas directement impliquée, par exemple lorsqu'une application doit accéder à des Cloud de Confiance ressources. Les comptes de service sont gérés par IAM.
La liste suivante répertorie certaines méthodes permettant d'utiliser un compte de service pour s'authentifier auprès des API et des services Google, de la plus sécurisée à la moins sécurisée. Pour en savoir plus, consultez la section Choisir la méthode d'authentification adaptée à votre cas d'utilisation sur cette page.
Associez un compte de service géré par l'utilisateur à la ressource et utilisez-le pour vous authentifier.
Il s'agit de la méthode recommandée pour authentifier du code de production exécuté sur Cloud de Confiance.
Utilisez un compte de service pour emprunter l'identité d'un autre compte de service.
L'emprunt de l'identité d'un compte de service vous permet d'accorder temporairement des droits supplémentaires à un compte de service. L'octroi de droits supplémentaires temporaires permet à ce compte de service de bénéficier de l'accès requis, sans devoir acquérir définitivement ces droits supplémentaires.
Utilisez la fédération d'identité de charge de travail pour authentifier les charges de travail exécutées sur site ou auprès d'un autre fournisseur cloud.
Utiliser le compte de service par défaut.
L'utilisation du compte de service par défaut n'est pas recommandée, car celui-ci dispose par défaut de droits élevés, ce qui est contraire au principe du moindre privilège.
Pour une présentation des méthodes de configuration des identités des charges de travail, y compris les comptes de service, pour Cloud de Confiance by S3NS, consultez la page Identités pour les charges de travail. Pour connaître les bonnes pratiques, consultez Bonnes pratiques d'utilisation des comptes de service.
Jeton
Pour l'authentification et l'autorisation, un jeton est un objet numérique qui indique qu'un appelant a fourni des identifiants appropriés qui ont été échangés contre ce jeton. Le jeton contient des informations sur l'identité du compte principal qui effectue la requête et le type d'accès pour lequel il est autorisé.
Les jetons peuvent être considérés comme des clés d'hôtel. Lorsque vous arrivez à un hôtel et fournissez les documents attendus à la réception, vous recevez une clé qui vous donne accès à des ressources spécifiques de l'hôtel. Par exemple, la clé peut vous donner accès à votre chambre et à l'ascenseur dédié aux clients, mais vous ne pourrez pas accéder à une autre chambre, ni à l'ascenseur de service.
Les API Google ne sont pas directement compatibles avec les identifiants, à l'exception des clés API. Votre application doit acquérir ou générer un jeton et le fournir à l'API. Il existe plusieurs types de jetons. Pour en savoir plus, consultez la présentation des jetons.
Charge de travail et effectifs
Cloud de Confiance Les produits d'identité et d'accès permettent aux accès automatisés et aux utilisateurs humains d'exploiter les Cloud de Confiance services et ressources. Cloud de Confiance utilise les termes de charge de travail pour l'accès automatisé et effectifs pour l'accès des utilisateurs.
La fédération d'identité de charge de travail vous permet d'accorder aux charges de travail sur site ou multicloud un accès aux ressources Google Cloud sans recourir à une clé de compte de service.
La fédération d'identité des employés vous permet d'utiliser un fournisseur d'identité externe (IdP) pour authentifier et autoriser du personnel (un groupe d'utilisateurs tels que des employés, partenaires et sous-traitants) à l'aide d'IAM, afin que les utilisateurs puissent accéder Cloud de Confiance aux services.
Étape suivante
- Découvrez comment les Cloud de Confiance services utilisent IAM pour contrôler l'accès aux Cloud de Confiance ressources.
- Découvrez comment fonctionnent les identifiants par défaut de l'application, et comment les configurer pour différents environnements de développement.