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

  1. 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.

  2. 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 $GROUPNAME
    
  3. No 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.

  4. 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_ID
    

    Para 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.subject para assertion.sub

Crie a conexão com a federação de identidade de carga de trabalho do Amazon Cognito..

  1. Escolha o método de autenticação Workload Identity Federation com token de acesso .

  2. 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_ID
    
  3. Para 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.

  4. (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.

  5. Configure Formato do Token como Text

  6. Configure Tipo de Token para ID token

Azure

Configure a federação de identidade de carga de trabalho no Azure ...

  1. Crie um aplicativo e uma entidade de serviço Azure AD.

  2. 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.

  3. 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

  1. Siga as instruções: Configurar a federação de identidade da carga de trabalho.
  2. 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/, onde TENANTID é 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.subject para assertion.sub

Crie a conexão com a federação de identidade de carga do Azure

  1. 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
  2. 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_ID
    
  3. Para 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.

  4. (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.

  5. 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
  6. 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.

  7. 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

Saiba Mais