Présentation des jetons

Ce document et le document Types de jetons couvrent les différents jetons utilisés par Google Cloud pour l'authentification et l'autorisation. Elles s'adressent aux personnes qui souhaitent en savoir plus sur l'authentification basée sur les jetons ou qui souhaitent implémenter l'authentification sans utiliser les bibliothèques clientes Cloud.

Vous n'avez pas besoin de connaître ces informations lorsque vous interagissez avec les API Google Cloudà l'aide des bibliothèques clientes Cloud, de la console Google Cloud ou de Google Cloud CLI. Le processus de sélection du bon type de jeton, ainsi que l'obtention et l'actualisation de ces jetons sont gérés automatiquement pour vous.

Authentification des utilisateurs

Lorsque des utilisateurs humains interagissent avec Google Cloud, ils n'interagissent pas directement avec les APIGoogle Cloud . Ils utilisent plutôt un client pour agir en leur nom. Le client qu'ils utilisent peut être une application Web, une application de bureau ou un utilitaire comme Google Cloud CLI ou curl.

Étant donné que c'est le client qui envoie les requêtes et non l'utilisateur, Google Cloud ne peut pas demander directement à l'utilisateur des informations d'identité pour vérifier s'il est autorisé à utiliser une API. Cette identité est transmise à l'API par le client sous la forme d'un jeton, qui est inclus dans chaque requête API.

Un jeton d'authentification utilisateur encode les informations suivantes :

  • Identité de l'utilisateur.

  • Identité du client.

  • Assurance que le client est autorisé à agir au nom de l'utilisateur.

L'authentification de l'utilisateur et l'autorisation du client impliquent les parties suivantes :

  • Un utilisateur.

  • Client qui agit pour le compte de l'utilisateur.

  • Un serveur d'autorisation sur lequel les API Google s'appuient pour authentifier le client.

  • API Google Cloud avec laquelle le client interagit.

Les clients ne peuvent pas émettre de jetons eux-mêmes. À la place, ils doivent collaborer avec un serveur d'autorisation pour effectuer les opérations suivantes :

  1. Authentifiez l'utilisateur.

  2. Authentifiez le client.

  3. Autorisez le client à agir au nom de l'utilisateur.

  4. Émettez un jeton pour le client.

Diagramme de relation d'un utilisateur s'authentifiant via un client

Un utilisateur qui s'authentifie en se connectant à son compte Google est un principal utilisateur. Le compte principal possède un identifiant de compte principal semblable à ce qui suit :

user:alex@example.com

Un utilisateur qui s'authentifie à l'aide de la fédération d'identité de personnel et d'un fournisseur d'identité externe est un compte principal de pool d'identité de personnel. Le compte principal possède un identifiant semblable à celui-ci :

principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/raha@altostrat.com

Authentification des charges de travail

Certains clients doivent interagir avec les API Google en leur propre nom. Par exemple, une tâche planifiée peut avoir besoin de lire des données à partir de BigQuery ou de Cloud Storage sans qu'aucun utilisateur humain ne soit impliqué.

Les clients qui agissent de manière autonome et pour leur propre compte sont appelés charges de travail. Contrairement à l'authentification des utilisateurs, l'authentification des charges de travail combine l'authentification de l'utilisateur et l'autorisation du client en une seule étape. Par conséquent, un jeton d'authentification de charge de travail n'encode que l'identité du client.

L'authentification et l'autorisation des charges de travail impliquent les parties suivantes :

  • Une charge de travail agissant à la fois en tant que client et utilisateur, et pour son propre compte.

  • Un serveur d'autorisation sur lequel les API Google s'appuient pour authentifier le client.

  • API Google Cloud avec laquelle le client interagit.

Pour accéder aux API Google Cloud , les clients doivent utiliser un serveur d'autorisation pour effectuer les opérations suivantes :

  1. Authentifiez le client.

  2. Autorisez le client.

  3. Émettez un jeton pour le client.

Diagramme de relations d'une charge de travail s'authentifiant via un client

Une charge de travail authentifiée est également appelée "principal", mais les charges de travail utilisent des identifiants principaux différents de ceux des utilisateurs.

Une charge de travail qui s'authentifie à l'aide d'un compte de service est un compte de service principal. Le compte principal possède un identifiant semblable à celui-ci :

serviceAccount:my-service-account@my-project.iam.gserviceaccount.com

Une charge de travail qui s'authentifie à l'aide de la fédération d'identité de charge de travail est un principal de pool d'identités de charge de travail. Le compte principal possède un identifiant de compte principal semblable à ce qui suit :

principal://iam.googleapis.com/projects/PROJECT_NAME/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE

Serveurs d'autorisation

Google Cloud partage des fonctionnalités d'authentification et d'autorisation spécifiques avec d'autres services Google. Les fonctionnalités partagées incluent Se connecter avec Google, ainsi que les services OpenID Connect et OAuth 2.0 fournis par Google Identity.

D'autres services liés à l'authentification, tels que la fédération d'identité de charge de travail et la fédération d'identité de personnel, sont spécifiques à Google Cloud et ne peuvent pas être utilisés pour d'autres services Google.

En raison de cette séparation, Google Cloud utilise deux serveurs d'autorisation. L'une est partagée avec d'autres services Google, et l'autre est spécifique à Google Cloud. Le tableau suivant décrit les différents serveurs et leurs propriétés.

Serveur d'autorisation Type d'authentification API d'authentification Comptes principaux
Serveur d'autorisation Google
  • Authentification des utilisateurs
  • Authentification des charges de travail
Google Cloud Serveur d'autorisation Identity and Access Management (IAM)
  • Authentification des utilisateurs
  • Authentification des charges de travail

Les serveurs d'autorisation sont des services mondiaux et sont accessibles depuis n'importe quelle régionGoogle Cloud . Toutefois, toutes les régions ne contiennent pas de déploiements des deux serveurs d'autorisation :

  • Le serveur d'autorisation Google est disponible dans certaines régions.

  • Le serveur d'autorisation IAM Google Cloud est disponible dans toutes les régions.

Pour optimiser la fiabilité, utilisez le serveur d'autorisation IAM Google Cloud chaque fois que possible.

Étapes suivantes

En savoir plus sur les types de jetons