Configurer l'API User Invitation

Cette page explique comment configurer l'API User Invitation de Cloud Identity.

Activer l'API et configurer les identifiants

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Enable the Cloud Identity API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  3. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Service Account Token Creator role to the service account.

      To grant the role, find the Select a role list, then select Service Account Token Creator.

    7. Click Continue.
    8. Click Done to finish creating the service account.

Installer la bibliothèque cliente Python

Pour installer la bibliothèque cliente Python, exécutez la commande suivante :

  pip install --upgrade google-api-python-client google-auth \
    google-auth-oauthlib google-auth-httplib2

Pour en savoir plus sur la configuration de votre environnement de développement Python, consultez le guide de configuration d'un environnement de développement Python.

Authentifier et instancier un client

Pour appeler l'API User Invitation en tant que compte de service, vous devez utiliser la délégation au niveau du domaine (DWD). Vous pouvez authentifier le compte de service à l'aide des identifiants par défaut de l'application (ADC) ou d'une clé de compte de service.

Pour vous authentifier en tant qu'administrateur sans DWD, utilisez plutôt les identifiants OAuth 2.0 de l'utilisateur final avec le champ d'application https://www.googleapis.com/auth/cloud-identity.userinvitations. Pour plus d'informations, consultez l'article consacré à l'utilisation d'OAuth 2.0 pour les applications de serveur Web.

Configurer la délégation au niveau du domaine

Pour utiliser la délégation au niveau du domaine, vous devez accorder au compte de service l'autorisation d'emprunter l'identité d'un administrateur. Les journaux d'audit affichent toutes les actions du compte de service en tant qu'utilisateur dont l'identité a été empruntée.

Pour obtenir des instructions, consultez Déléguer l'autorité au niveau du domaine à votre compte de service.

Pour autoriser le compte de service, fournissez le champ d'application suivant :

  • https://www.googleapis.com/auth/cloud-identity.userinvitations

Instancier un client

Pour instancier un client, choisissez une méthode d'authentification. Nous vous recommandons d'utiliser les Identifiants par défaut de l'application (ADC) si votre code s'exécute surGoogle Cloud ou si vous utilisez la fédération d'identité de charge de travail.

ADC

from google.auth import iam
from google.auth.transport import requests
import google.auth
from google.oauth2 import service_account

INITIAL_SCOPES = ['https://www.googleapis.com/auth/iam']
CI_SCOPES = ['https://www.googleapis.com/auth/cloud-identity.userinvitations']
TOKEN_URI = "https://accounts.google.com/o/oauth2/token"

def create_delegated_credentials(
  user_email: str
) -> google.auth.credentials.Credentials:
  """Creates delegated credentials for the user.

  Args:
    user_email: The administrator email to call as.

  Returns:
    The delegated credentials for the user.
  """

  # Fetch application default credentials (ADC)
  credentials, _ = google.auth.default(scopes=INITIAL_SCOPES)

  # Populate account information
  request = requests.Request()
  credentials.refresh(request)

  # Create an IAM signer
  signer = iam.Signer(request, credentials,
                      credentials.service_account_email)

  # Create domain-wide delegated (DWD) credentials
  delegated_credentials = service_account.Credentials(
      signer=signer,
      service_account_email=credentials.service_account_email,
      token_uri=TOKEN_URI,
      scopes=CI_SCOPES,
      subject=user_email
  )

  return delegated_credentials

Clé de compte de service

from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = ['https://www.googleapis.com/auth/cloud-identity.userinvitations']
SERVICE_ACCOUNT_FILE = '/path/to/service-account-file.json'

def create_service():
  credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
  delegated_credentials = credentials.with_subject('user@altostrat.com')

  service_name = 'cloudidentity'
  api_version = 'v1'
  service = googleapiclient.discovery.build(
    service_name,
    api_version,
    credentials=delegated_credentials)

  return service

Après avoir exécuté ce code, vous pouvez commencer à appeler l'API User Invitation.

Étapes suivantes