Configurar a API User Invitation
Nesta página, explicamos como configurar a API Cloud Identity User Invitation.
Ativar a API e configurar as credenciais
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Cloud Identity API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
Create a service account:
-
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. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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. - Click Create and continue.
-
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.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Cloud Identity API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
Create a service account:
-
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. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
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. - Click Create and continue.
-
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.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
Instalar a biblioteca de cliente do Python
Para instalar a biblioteca de cliente Python, execute o seguinte comando:
pip install --upgrade google-api-python-client google-auth \
google-auth-oauthlib google-auth-httplib2
Para mais informações sobre como configurar o ambiente de desenvolvimento do Python, consulte o Guia de configuração do ambiente de desenvolvimento do Python.
Autenticar e instanciar um cliente
Para chamar a API User Invitation como uma conta de serviço, use a delegação em todo o domínio (DWD, na sigla em inglês). É possível autenticar a conta de serviço usando o Application Default Credentials (ADC) ou uma chave de conta de serviço.
Para fazer a autenticação como administrador sem a DWD, use as credenciais do OAuth 2.0 do usuário final com o escopo https://www.googleapis.com/auth/cloud-identity.userinvitations.
Para mais informações, consulte
Usar o OAuth 2.0 para aplicativos de servidor da Web.
Configurar a delegação em todo o domínio
Para usar a delegação em todo o domínio, você precisa conceder à conta de serviço autoridade para representar um administrador. Os registros de auditoria mostram as ações da conta de serviço como o usuário representado.
Para ver instruções, consulte Delegar autoridade em todo o domínio à sua conta de serviço.
Para autorizar a conta de serviço, forneça o seguinte escopo:
https://www.googleapis.com/auth/cloud-identity.userinvitations
Instanciar um cliente
Para instanciar um cliente, escolha um método de autenticação. Recomendamos o uso do Application Default Credentials (ADC) se o código estiver em execução no Google Cloud ou usando a federação de identidade da carga de trabalho.
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
Chave da conta de serviço
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
Depois de executar esse código, você poderá começar a fazer chamadas para a API User Invitation.