Authentification chez Google

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce document vous aide à comprendre les concepts clés de l'authentification, et à obtenir de l'aide concernant la mise en œuvre de l'authentification ou la résolution des problèmes s'y rapportant. La cible principale de la documentation sur l'authentification est les services Google Cloud, mais la liste des cas d'utilisation de l'authentification et le document de présentation de cette page incluent des cas d'utilisation pour d'autres produits Google.

Présentation

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.

Je souhaite… Informations
M'authentifier auprès d'un service Google Cloud à 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.
M'authentifier auprès d'une application qui s'exécute sur Cloud Run ou Cloud Functions. Obtenez un jeton d'identification OpenID Connect (OIDC) et fournissez-le avec votre requête.
Mettre en œuvre l'authentification des utilisateurs pour une application qui accède aux services et aux ressources Google ou Google Cloud. Consultez la page Authentifier les utilisateurs de l'application pour découvrir une comparaison des options.
Tester des commandes gcloud ou des appels d'API REST Google Cloud dans mon environnement de développement local. Configurez les identifiants par défaut de l'application avec vos identifiants de connexion. Vous pouvez ensuite utiliser un outil de ligne de commande tel que curl pour appeler l'API REST.
Obtenir de l'aide pour un autre cas d'utilisation de l'authentification. Consultez la page Cas d'utilisation de l'authentification.
Consultez la liste des produits fournis par Google dans l'espace de gestion de l'authentification et des accès. Consultez la page Produits Google de gestion de l'authentification et des accès.

Types d'authentification

Vous devez vous authentifier pour accéder à la plupart des ressources et des applications. Cette documentation aide les professionnels techniques à créer du code d'application en ciblant l'un des objectifs suivants :

OAuth 2.0

Les API Google mettent en œuvre et étendent le framework OAuth 2.0. Celui-ci spécifie différents "flux" ou approches d'authentification. En règle générale, l'application présente des identifiants, qui représentent un compte principal (un utilisateur ou un compte de service), à un module intermédiaire appelé serveur d'autorisation. Le serveur d'autorisation répond par un jeton que l'application peut utiliser pour s'authentifier auprès du service et accéder aux ressources. Le jeton comprend un ou plusieurs champs d'application, qui reflètent la nature de l'accès accordé à l'application. L'application présente ensuite le jeton au serveur de ressources pour accéder aux ressources.

Autorisation pour les services Google Cloud

Les services Google Cloud utilisent Identity and Access Management (IAM) pour l'authentification. IAM offre un contrôle précis, par compte principal et par ressource. Lorsque vous vous authentifiez auprès des services Google Cloud, vous utilisez généralement un champ d'application qui inclut tous les services Google Cloud (https://www.googleapis.com/auth/cloud-platform).

Les champs d'application OAuth 2.0 peuvent fournir une deuxième couche de protection, ce qui est utile si votre code s'exécute dans un environnement où la sécurité des jetons est un réel enjeu, comme une application mobile. Dans ce scénario, vous pouvez utiliser des champs d'application plus précis pour réduire les risques en cas de jeton compromis. Les champs d'application OAuth 2.0 sont également utilisés pour autoriser l'accès aux informations sur les utilisateurs.

ADC (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 clientes Cloud et les bibliothèques clientes des API Google, permettant de trouver automatiquement des identifiants en fonction de l'environnement d'application et de les utiliser pour s'authentifier auprès des API Google Cloud. Lorsque vous configurez la stratégie ADC et utilisez une bibliothèque cliente, votre code peut s'exécuter dans un environnement de développement ou bien de production, sans devoir modifier la manière dont votre application s'authentifie auprès des services et des API Google Cloud.

Si vous écrivez du code qui doit utiliser les services Google Cloud, vous devez, dans la mesure du possible, utiliser les identifiants par défaut de l'application. 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.

Vous configurez ADC en fournissant vos identifiants, en fonction de l'emplacement où vous souhaitez exécuter votre code. Une fois que vous avez fourni vos identifiants à ADC, celui-ci 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 API Google Cloud lors de l'exécution sur un poste de travail de développement, que sur Compute Engine.

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ée pour ce niveau d'accès.

Identifiants

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 Google, 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'un acteur malintentionné.

Les jetons sont parfois appelés "identifiants", mais pour cette documentation, ils sont plutôt appelés "objets numériques" qui prouvent que l'appelant a fourni les identifiants appropriés, mais ce ne sont pas eux-mêmes des identifiants.

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 console Google Cloud :

  • Clés API

    Contrairement aux autres identifiants, les clés API n'identifient pas de compte principal. Elles fournissent un projet Google Cloud à des fins de facturation et de quotas.

    De nombreuses API Google n'acceptent pas les clés API. Pour en savoir plus sur les clés API, consultez la page Clés API.

  • ID clients OAuth

    Les ID clients OAuth permettent d'identifier une application auprès de Google. Cela est nécessaire lorsque vous souhaitez accéder à des ressources appartenant à vos utilisateurs finaux, ce processus étant également appelé l'autorisation OAuth à trois acteurs (3LO). Pour en savoir plus sur l'obtention et l'utilisation d'un ID client OAuth, consultez la page Configurer OAuth 2.0.

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 en tant que comptes Google, soit avec Google Workspace, soit avec Cloud Identity. Il peut également s'agir de comptes utilisateur gérés par un fournisseur d'identité tiers et soumis à la fédération d'identité de personnel.

Avec un compte utilisateur, vous pouvez vous authentifier auprès des API et des services Google de différentes manières :

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 ressources Google Cloud. 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.

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 qu'il est autorisé à effectuer.

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 section Types de jetons.

Charge de travail et effectifs

Les produits d'identité et d'accès Google Cloud permettent aux accès automatisés et aux utilisateurs humains d'exploiter les services et ressources Google. Google utilise les termes de charge de travail pour l'accès automatisé et d'effectifs pour l'accès des utilisateurs.

La fédération d'identité de charge de travail vous permet d'accéder à des charges de travail exécutées en dehors de Google, sans avoir à créer ni gérer de clés de compte de service.

La fédération d'identité du personnel 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, des partenaires et des sous-traitants) à l'aide d'IAM, afin que les utilisateurs puissent accéder aux services Google Cloud.

Étapes suivantes