S'authentifier auprès d'un service d'API Cloud

Pour utiliser une API Cloud avec le code de votre application, vous devez configurer les identifiants appropriés pour votre application. Elle pourra ainsi authentifier son identité auprès du service et obtenir l'autorisation d'effectuer des tâches. (Ces mécanismes liés aux identifiants sont appelés schémas d'authentification.)

Le schéma d'authentification le plus simple est celui d'une clé API. Toutefois, celle-ci ne vous permet pas d'autoriser le service. Vous ne pouvez donc l'utiliser que sur des données publiques ou des données que vous transmettez directement à l'API RPC. En comparaison, le compte de service est le schéma d'authentification le plus utile, car il vous permet d'accéder à une API Cloud. Vous configurez alors votre code pour qu'il envoie au service des identifiants du compte de service.

Lorsque vous accédez à une API Google Cloud Platform, nous vous recommandons de configurer une clé API à des fins de test, et de configurer un compte de service en vue d'une utilisation en production.

Configurer une clé API

Le mécanisme d'authentification le plus simple consiste à transmettre une clé API directement au service. Comme ce schéma est limité en termes de portée et de sécurité, nous vous conseillons de n'utiliser les clés API qu'à des fins de test.

Il existe deux façons d'obtenir une clé API permettant d'accéder à une API Google Cloud Platform depuis la console GCP :

  1. Configurer votre projet
  2. Utiliser la page Gestionnaire d'API → Identifiants

Configurer votre projet

Une fois une API Cloud activée (dans le cadre de la configuration de votre projet), un message vous invite à obtenir des identifiants.

Cliquez sur "Passer à l'étape Identifiants" pour ouvrir la page Ajouter des identifiants.

Cliquez sur "Clé API". La boîte de dialogue Créer une clé s'affiche.

Sélectionnez "Clé de navigateur". La page Créer une clé pour l'API du navigateur s'affiche.

Saisissez un nom pour la clé (elle porte le nom "Curl Test Key" ci-dessus, mais vous pouvez entrer le nom de votre choix). Vous pouvez laisser le champ relatif au référent vide, car cette clé de navigateur n'est utilisée qu'à des fins de test. Si vous prévoyez toutefois de déployer une clé de navigateur en production, vous devez saisir un domaine approprié.

Cliquez sur "Créer". La page Clé de l'API du navigateur répertorie votre nouvelle clé.

Vous pouvez copier votre clé et la conserver de manière sécurisée (vous pouvez également la récupérer depuis la page Gestionnaire d'API → Identifiants).

Utiliser la page Gestionnaire d'API → Identifiants

Vous pouvez créer une clé API (et d'autres identifiants) en sélectionnant Gestionnaire d'API → Identifiants dans la console GCP.

Sélectionnez "Créer des identifiants → Clé API", puis créez une clé de navigateur, comme expliqué dans la section Configurer votre projet.

Configurer un compte de service

L'authentification et l'autorisation des API Google Cloud Platform (désignées collectivement sous le nom "authentification") s'effectuent généralement à l'aide d'un compte de service. Celui-ci permet à votre code d'envoyer des identifiants d'application directement à l'API Cloud. Il est, à l'instar d'un compte utilisateur, représenté par une adresse e-mail. Toutefois, un compte de service n'appartient qu'à une seule application et ne permet d'accéder qu'à l'API pour laquelle il a été créé (à la différence d'un compte utilisateur). À titre d'exemple, nous allons vous montrer comment créer des identifiants de compte de service à l'aide de la console Google Cloud Platform.

Utiliser la console GCP

Sur la page Gestionnaire d'API → Identifiants de la console GCP, sélectionnez "Créer des identifiants → Clé de compte de service".

Sélectionnez ensuite "Nouveau compte de service" dans la liste déroulante "Compte de service".

Donnez un nom au compte. Il sera utilisé comme nom par défaut pour votre "ID du compte de service" (à gauche du signe "@" dans l'adresse générée). Vous pouvez toutefois modifier le nom de cet ID si vous le souhaitez. Ces noms peuvent être arbitraires, l'important est que vous vous en souveniez. Dans la catégorie "Type de clé", nous vous recommandons de laisser la valeur "JSON". Cliquez sur "Créer". La console GCP génère alors une clé JSON (en tant que fichier texte .json). Elle vous invite à télécharger le fichier sur votre ordinateur, puis affiche une boîte de dialogue Compte de service créé.

La clé JSON générée ressemble à l'exemple suivant :

{
  "type": "service_account",
  "project_id": "project-id",
  "private_key_id": "some_number",
  "private_key": "-----BEGIN PRIVATE KEY-----\n....
  =\n-----END PRIVATE KEY-----\n",
  "client_email": "<api-name>api@project-id.iam.gserviceaccount.com",
  "client_id": "...",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/...<api-name>api%40project-id.iam.gserviceaccount.com"
}

Stockez ce fichier JSON de manière sécurisée, car il contient votre clé privée (et il s'agit de la seule copie de cette clé). Vous devrez vous référer à ce fichier de clé de compte de service dans votre code quand vous souhaiterez envoyer des identifiants à l'API Google Cloud Platform.

S'authentifier à l'aide des identifiants par défaut de l'application

Le moyen le plus simple d'authentifier une application auprès d'un service d'API Google Cloud Platform consiste à utiliser les identifiants par défaut de l'application. Les services utilisant les identifiants par défaut recherchent d'abord les identifiants dans une variable d'environnement GOOGLE_APPLICATION_CREDENTIALS. À moins que vous ne souhaitiez spécifiquement utiliser d'autres identifiants (tels que des identifiants utilisateur), nous vous recommandons de définir cette variable d'environnement de sorte qu'elle renvoie vers le fichier de clé de votre compte de service (le fichier .json que vous avez téléchargé lors de la création d'une clé de compte de service, comme expliqué dans la section Configurer un compte de service).

$ export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>