Neste guia, descrevemos como trocar credenciais externas, códigos de autorização
ou tokens de atualização por tokens de acesso Google Cloud usando a API Cloud OAuth
(cloudoauth.googleapis.com) em
integrações da federação de identidade da força de trabalho.
Antes de começar
- Configure um pool e um provedor de identidade da força de trabalho. Para mais informações, consulte Configurar a federação de identidade de colaboradores.
- Registre um cliente OAuth e crie credenciais de cliente. Para mais informações, consulte Gerenciar aplicativos OAuth.
-
Ative a API Cloud OAuth.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.
Métodos de autenticação
A API Cloud OAuth é compatível com dois métodos de autenticação de cliente:
Autenticação básica HTTP (recomendada): transmita o ID do cliente e a chave secreta do cliente codificados em Base64 no cabeçalho
Authorization:-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"
Parâmetros do corpo da solicitação: transmita os parâmetros
client_ideclient_secretno corpo da solicitação.
Trocar um código de autorização por tokens
Para trocar um código de autorização Google Cloud por um token de acesso e um
token de atualização, envie uma solicitação HTTP POST:
Endpoint com escopo de organização (de locatário único)
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Credenciais do corpo da solicitação
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET"
Substitua:
BASE64_ENCODED_CREDENTIALS: a string codificada em Base64 deCLIENT_ID:CLIENT_SECRET.AUTHORIZATION_CODE: o código de autorização emitido por Google Cloud.REDIRECT_URI: o URI de redirecionamento configurado no cliente OAuth.ORGANIZATION_ID: o ID da organização numérico da sua organização Google Cloud.CLIENT_ID: seu ID do cliente OAuth registrado.CLIENT_SECRET: sua chave secreta do cliente OAuth.
Atualizar um token de acesso
Quando um token de acesso expira, use o tipo de concessão refresh_token para conseguir um novo
token de acesso de curta duração:
Endpoint com escopo de organização (de locatário único)
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token=REFRESH_TOKEN" \ --data-urlencode "redirect_uri=REDIRECT_URI"
Substitua REFRESH_TOKEN pelo token de atualização que o endpoint
de token retornou anteriormente.
Campos de resposta de token
Quando uma troca de token é bem-sucedida, a API Cloud OAuth retorna um status HTTP 200 OK
que contém os seguintes campos:
| Campo | Tipo | Descrição |
|---|---|---|
access_token |
string |
O token de acesso do OAuth 2.0 emitido pela API Cloud OAuth para chamar as APIs Google Cloud . |
refresh_token |
string |
O token de atualização usado para receber novos tokens de acesso quando o token atual expira. |
expires_in |
integer |
O tempo restante de vida útil do token de acesso em segundos (normalmente 3599). |
token_type |
string |
O tipo de token (por exemplo, Bearer). |
scope |
string |
A lista de escopos associados ao token. |
id_token |
string |
O token de ID do OIDC que contém declarações de identidade autenticadas. |
Para informações sobre respostas de erro retornadas pela API Cloud OAuth, consulte Erros de troca de token da API Cloud OAuth.
A seguir
- Recuperar informações do usuário com a API Cloud OAuth
- Recuperar grupos empresariais com a API Cloud OAuth
- Visão geral da API Cloud OAuth
- Gerenciar aplicativos OAuth para a federação de identidade de colaboradores
- Referência da API REST do Cloud OAuth