Exemplos de federação de identidade de carga de trabalho
A federação de identidades de cargas de trabalho para as conexões Google BigQuery, Google Cloud Pub/Sub e Google Cloud Storage é compatível com qualquer provedor de identidade que suporte o OpenID Connect (OIDC) ou o SAML 2.0.
Estes exemplos são para AWS com o Amazon Cognito e para Microsoft Azure.
AWS
Configurar federação de identidade de carga de trabalho no Amazon Cognito
Crie um provedor de identidade OIDC (IdP) com o Cognito seguindo as instruções na documentação do Amazon:
Para obter mais informações, consulte Introdução ao Amazon Cognito.
Crie um grupo e usuário no IdP com o console do AWS . Ou é possível usar a CLI do AWS :
CLIENT_ID=YourClientId ISSUER_URL=https://cognito-idp.YourRegion.amazonaws.com/YourPoolId POOL_ID=YourPoolId USERNAME=YourUsername PASSWORD=YourPassword GROUPNAME=YourGroupName aws cognito-idp admin-create-user --user-pool-id $POOL_ID --username $USERNAME --temporary-password Temp-Pass1 aws cognito-idp admin-set-user-password --user-pool-id $POOL_ID --username $USERNAME --password $PASSWORD --permanent aws cognito-idp create-group --group-name $GROUPNAME --user-pool-id $POOL_ID aws cognito-idp admin-add-user-to-group --user-pool-id $POOL_ID --username $USERNAME --group-name $GROUPNAMENo console do AWS , clique em Visualizar IU hospedada e efetue login na IU do IDP em um navegador para assegurar que qualquer novo desafio de senha seja resolvido.
Obtenha um IdToken com a CLI do AWS :
aws cognito-idp admin-initiate-auth --auth-flow ADMIN_USER_PASSWORD_AUTH --client-id $CLIENT_ID --auth-parameters USERNAME=$USERNAME,PASSWORD=$PASSWORD --user-pool-id $POOL_IDPara obter mais informações sobre o fluxo de autenticação do Amazon Cognito User Pools, consulte AdminInitiateAuth.
Configure o Google Cloud para Amazon Cognito
Ao criar o provedor no Google Cloud, use estas configurações:
- Defina o URL como
https://cognito-idp.YourRegion.amazonaws.com/YourPoolId. - Configure Público permitido para seu ID de cliente.
- Em Mapeamento de atributo, mapeie
google.subjectparaassertion.sub
Crie a conexão com a federação de identidade de carga de trabalho do Amazon Cognito..
Escolha o método de autenticação Workload Identity Federation com token de acesso .
Para o campo Público do Security Token Service , use este formato:
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_IDPara o E-mail da conta de serviço, insira o endereço de e-mail da conta de serviço do Google a ser personificado Para obter mais informações, consulte Criar uma conta de serviço para a carga de trabalho externa.
(Opcional) Especifique um valor para o Tempo de vida do token da conta de serviço em segundos.. O tempo de vida padrão de um token de acesso da conta do serviço é de uma hora Para obter mais informações, consulte URL -sourced credentials.
Configure Formato do Token como
TextConfigure Tipo de Token para
ID token
Azure
Configure a federação de identidade de carga de trabalho no Azure ...
Configure um URI do ID do Aplicativo para o aplicativo.. É possível usar o URI do ID do Aplicativo padrão (
api://APPID) ou especificar um URI customizado..
É possível ignorar as instruções para criar uma identidade gerenciada.Siga as instruções para criar um novo segredo de aplicativo para obter um token de acesso com a API REST.
Para obter mais informações, consulte Configurar a federação de identidade de carga de trabalho com o Azure.
Configure o Google Cloud para Azure
- Siga as instruções: Configurar a federação de identidade da carga de trabalho.
- Siga as instruções: Crie o pool de identidades e o provedor de carga de trabalho. Ao configurar o provedor, use estas configurações:
- Defina o campo “Emissor” ( URL ) como
https://sts.windows.net/TENANTID/, ondeTENANTIDé o ID do locatário que você recebeu ao configurar Azure Active Directory. - Configure o Público permitido para o ID do cliente que você recebeu ao configurar o registro do aplicativo. Ou especifique outro URI do ID do aplicativo que você usou ao configurar a identidade do aplicativo no Azure.
- Em Mapeamento de atributo, mapeie
google.subjectparaassertion.sub
- Defina o campo “Emissor” ( URL ) como
Crie a conexão com a federação de identidade de carga do Azure
Escolha um desses métodos de autenticação:
- Federação de identidade de carga de trabalho com token de acesso
- Federação de identidade de carga de trabalho com URL de token
Para o campo Audiência do serviço de token de segurança, use o formato descrito em Autenticar uma carga de trabalho que usa a API REST. Por exemplo:
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_IDPara o E-mail da conta de serviço, insira o endereço de e-mail da conta de serviço do Google a ser personificado Para obter mais informações, consulte Criar uma conta de serviço para a carga de trabalho externa.
(Opcional) Especifique um valor para o Tempo de vida do token da conta de serviço em segundos.. O tempo de vida padrão de um token de acesso da conta do serviço é de uma hora Para obter mais informações, consulte URL -sourced credentials.
Se você especificou a Federação de Identidades de Carga de Trabalho com o token URL, use estes valores:
- URL do token :
https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token. Este endereço URL irá obter um token do site Azure. - HTTP método :
POST - HTTP cabeçalhos :
"Content-Type"="application/x-www-form-urlencoded;charset=UTF-8","Accept"="application/json" - Corpo da solicitação:
grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=APPLICATION_ID_URI/.default
- URL do token :
Para Tipo de token, selecione Token de ID para um provedor de identidade que esteja em conformidade com a especificação OpenID Connect (OIDC). Para obter informações, consulte Tipos de token.
A opção Formato do token depende dessa seleção de autenticação:
- Workload Identity Federation com token de acesso: selecione Texto se você tiver fornecido o valor do token bruto no campo Token de acesso .
- Federação de identidades de carga de trabalho com o token URL : Para obter uma resposta do token URL em formato JSON com o token de acesso retornado em um campo chamado
access_token, utilize estas configurações:- Formato do token:
JSON - Nome do campo de token:
access_token
- Formato do token: