Configure a federação de identidade da força de trabalho com o Microsoft Entra ID e inicie sessão nos utilizadores

Este documento mostra como configurar a federação de identidades da força de trabalho com o fornecedor de identidade (IdP) do Microsoft Entra ID e gerir o acesso aoGoogle Cloud. Os utilizadores federados podem, em seguida, aceder aos serviços Google Cloud que suportam a federação de identidade da força de trabalho. Pode usar o protocolo OIDC ou o protocolo SAML 2.0 para federar identidades.

Antes de começar

  1. Certifique-se de que tem uma organização do Google Cloud configurada.
  2. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

    gcloud init

    Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  3. No Microsoft Entra ID, certifique-se de que os tokens de ID estão ativados para o fluxo implícito. Para mais informações, consulte o artigo Ative a concessão implícita do token de ID.
  4. Para iniciar sessão, o seu IDP tem de fornecer informações de autenticação assinadas: os IDPs OIDC têm de fornecer um JWT e as respostas do IDP SAML têm de ser assinadas.
  5. Para receber informações importantes sobre alterações à sua organização ou aos seus Google Cloud produtos, tem de indicar contactos essenciais. Para mais informações, consulte a vista geral da federação de identidades da força de trabalho.

Custos

A federação de identidade da força de trabalho está disponível como uma funcionalidade sem custos. No entanto, o registo de auditoria detalhado da federação de identidades da força de trabalho usa o Cloud Logging. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.

Funções necessárias

Para receber as autorizações de que precisa para configurar a Workforce Identity Federation, peça ao seu administrador para lhe conceder a função de administrador do Workforce Pool da IAM (roles/iam.workforcePoolAdmin) na organização. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Se estiver a configurar autorizações num ambiente de desenvolvimento ou de teste, mas não num ambiente de produção, pode conceder a função básica de proprietário do IAM (roles/owner), que também inclui autorizações para a Federação de identidades da força de trabalho.

Crie uma aplicação do Microsoft Entra ID

Esta secção mostra como criar uma aplicação do Microsoft Entra ID através do portal de administração do Microsoft Entra. Em alternativa, pode atualizar a sua aplicação existente. Para mais detalhes, consulte o artigo Estabeleça aplicações no ecossistema do Microsoft Entra ID.

Os Workforce Identity Pools suportam a federação através dos protocolos OIDC e SAML.

OIDC

Para criar um registo de aplicação do Microsoft Entra ID que use o protocolo OIDC, faça o seguinte:

  1. Inicie sessão no portal do administrador do Microsoft Entra.

  2. Aceda a Identidade > Aplicações > Registos de apps.

  3. Para começar a configurar o registo da aplicação, faça o seguinte:

    1. Clique em Novo registo.

    2. Introduza um nome para a sua aplicação.

    3. Em Tipos de contas suportados, selecione uma opção.

    4. Na secção URI de redirecionamento, na lista pendente Selecionar uma plataforma, selecione Web.

    5. No campo de texto, introduza um URL de redirecionamento. Os seus utilizadores são redirecionados para este URL depois de iniciarem sessão com êxito. Se estiver a configurar o acesso à consola (federada), use o seguinte formato de URL:

      https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      

      Substitua o seguinte:

      • WORKFORCE_POOL_ID: um ID do conjunto de identidades de trabalhadores que vai usar quando criar o conjunto de identidades de trabalhadores mais adiante neste documento. Por exemplo: entra-id-oidc-pool

      • WORKFORCE_PROVIDER_ID: um ID do fornecedor do Workload Identity Pool que vai usar quando criar o fornecedor do Workload Identity Pool mais tarde neste documento. Por exemplo: entra-id-oidc-pool-provider

        Para obter informações sobre a formatação do ID, consulte a secção Parâmetros de consulta na documentação da API.

    6. Para criar o registo da aplicação, clique em Registar.

    7. Para usar o mapeamento de atributos de exemplo fornecido mais adiante neste documento, tem de criar um atributo department personalizado.

Recomendado: como prática recomendada de segurança, recomendamos que configure uma reivindicação de grupo da seguinte forma:

  1. Aceda ao registo da aplicação do Microsoft Entra ID.

  2. Clique em Configuração do token.

  3. Clique em Adicionar reivindicação de grupos.

  4. Selecione os tipos de grupos a devolver. Para mais detalhes, consulte o artigo Configurar reivindicações opcionais de grupos.

SAML

Para criar um registo de aplicação do Microsoft Entra ID que use o protocolo SAML, faça o seguinte:

  1. Inicie sessão no portal do administrador do Microsoft Entra.

  2. No menu de navegação do lado esquerdo, aceda a Entra ID > Apps empresariais.

  3. Para começar a configurar a aplicação empresarial, faça o seguinte:

    1. Clique em Nova aplicação > Criar a sua própria aplicação.

    2. No painel Crie a sua própria aplicação apresentado, introduza um nome para a aplicação.

    3. Clique em Criar.

    4. Aceda a Início de sessão único > SAML.

    5. Atualize a configuração básica de SAML da seguinte forma:

      1. No campo Identificador (ID da entidade), introduza o seguinte valor:

        https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
        

        Substitua o seguinte:

        • WORKFORCE_POOL_ID: um ID do Workload Identity Pool que vai usar quando criar o Workload Identity Pool mais adiante neste documento. Por exemplo: entra-id-saml-pool
        • WORKFORCE_PROVIDER_ID: um ID do fornecedor do Workload Identity Pool que vai usar quando criar o fornecedor do Workload Identity Pool mais tarde neste documento, por exemplo: entra-id-saml-pool-provider

          Para obter informações sobre a formatação do ID, consulte a secção Parâmetros de consulta na documentação da API.

      2. No campo URL de resposta (URL do serviço de consumidor de afirmações), introduza um URL de redirecionamento. Os seus utilizadores são redirecionados para este URL depois de iniciarem sessão com êxito. Se estiver a configurar o acesso à consola (federada), use o seguinte formato de URL:

        https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
        

        Substitua o seguinte:

        • WORKFORCE_POOL_ID: o ID do Workload Identity Pool
        • WORKFORCE_PROVIDER_ID: o ID do fornecedor de identidade da força de trabalho
      3. Para ativar o início de sessão iniciado pelo IdP, defina o campo Relay State com o seguinte valor:

        https://console.cloud.google/
        
      4. Para guardar a configuração da aplicação SAML, clique em Guardar.

    6. Para usar o mapeamento de atributos de exemplo fornecido mais adiante neste documento, tem de criar um atributo department personalizado.

Recomendado: como prática recomendada de segurança, recomendamos que configure uma reivindicação de grupo da seguinte forma:

  1. Aceda à sua aplicação Microsoft Entra ID.

  2. Clique em Início de sessão único.

  3. Na secção Atributos e reivindicações, clique em Editar.

  4. Clique em Adicionar uma reivindicação de grupo.

  5. Selecione o tipo de grupo a devolver. Para mais detalhes, consulte o artigo Adicione reivindicações de grupos a tokens para aplicações SAML através da configuração do SSO.

Crie um Workforce Identity Pool

gcloud

Para criar o Workforce Identity Pool, execute o seguinte comando:

gcloud iam workforce-pools create WORKFORCE_POOL_ID \
    --organization=ORGANIZATION_ID \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --session-duration=SESSION_DURATION \
    --location=global

Substitua o seguinte:

Consola

Para criar o Workforce Identity Pool, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Workforce Identity Pools:

    Aceda aos Workforce Identity Pools

  2. Selecione a organização para o seu conjunto de identidades de pessoal. Os conjuntos de identidades da força de trabalho estão disponíveis em todos os projetos e pastas de uma organização.

  3. Clique em Criar conjunto e faça o seguinte:

    1. No campo Nome, introduza o nome a apresentar do conjunto. O ID do conjunto é derivado automaticamente do nome à medida que escreve e é apresentado no campo Nome. Pode atualizar o ID do conjunto clicando em Editar junto ao ID do conjunto.

    2. Opcional: em Descrição, introduza uma descrição do conjunto.

    3. Para criar o Workforce Identity Pool, clique em Seguinte.

A duração da sessão do Workload Identity Pool é de uma hora (3600 s) por predefinição. A duração da sessão determina durante quanto tempo os Google Cloud tokens de acesso, a consola (federada) e as sessões de início de sessão da CLI gcloud deste conjunto de trabalhadores são válidos. Depois de criar o conjunto, pode atualizar o conjunto para definir uma duração da sessão personalizada. A duração da sessão tem de ser entre 15 minutos (900 s) e 12 horas (43 200 s).

Crie o fornecedor do Workload Identity Pool do Microsoft Entra ID

Esta secção descreve como criar um fornecedor do pool de identidades da força de trabalho para permitir que os utilizadores do IdP acedam ao Google Cloud. Pode configurar o fornecedor para usar o protocolo OIDC ou SAML.

Crie um fornecedor do Workload Identity Pool OIDC

Para criar um fornecedor do Workload Identity Pool para a integração da aplicação do Microsoft Entra ID, através do protocolo OIDC, faça o seguinte:

  1. Para obter o URI do emissor da sua aplicação do Microsoft Entra ID, faça o seguinte:

    1. Aceda ao registo da aplicação do Microsoft Entra ID.
    2. Clique em Pontos finais.
    3. Abra o documento de metadados do OpenID Connect num novo separador.
    4. No JSON, copie o valor de issuer.
  2. Para obter o ID de cliente da sua aplicação do Microsoft Entra ID, faça o seguinte:

    1. Aceda ao registo da aplicação do Microsoft Entra ID.
    2. Em ID (de cliente) da aplicação, copie o valor.
  3. Para criar um fornecedor do Workload Identity Pool de OIDC para início de sessão baseado na Web, faça o seguinte:

    gcloud

    Para criar um fornecedor que suporte o protocolo OIDC, faça o seguinte:

    Fluxo de código

    Para criar um fornecedor OIDC que use o fluxo de código de autorização para início de sessão baseado na Web, faça o seguinte:

    1. Na sua aplicação do Microsoft Entra ID, para obter o segredo do cliente, faça o seguinte:

      1. Aceda ao registo da app do Microsoft Entra ID.

      2. Em Certificados e segredos, clique no separador Segredos do cliente.

      3. Para adicionar um segredo do cliente, clique em + Novo segredo do cliente.

      4. Na caixa de diálogo Adicionar um segredo do cliente, introduza as informações necessárias.

      5. Para criar o segredo do cliente, clique em Adicionar.

      6. No separador Segredos do cliente, encontre o seu novo segredo do cliente.

      7. Na coluna Valor do novo segredo do cliente, clique em Copiar.

    2. Na Google Cloud consola, para criar um fornecedor OIDC que use o fluxo de código, faça o seguinte:

      gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --display-name="DISPLAY_NAME" \
          --description="DESCRIPTION" \
          --issuer-uri="ISSUER_URI" \
          --client-id="OIDC_CLIENT_ID" \
      --client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --detailed-audit-logging \ --location=global

      Substitua o seguinte:

      • WORKFORCE_PROVIDER_ID: um ID exclusivo do fornecedor do Workload Identity Pool. O prefixo gcp- está reservado e não pode ser usado num Workload Identity Pool nem num ID do fornecedor do Workload Identity Pool.
      • WORKFORCE_POOL_ID: o ID do conjunto de identidades de trabalhadores para associar o seu IdP.
      • DISPLAY_NAME: um nome a apresentar opcional e fácil de usar para o fornecedor; por exemplo, idp-eu-employees.
      • DESCRIPTION: uma descrição opcional do fornecedor de mão de obra; por exemplo, IdP for Partner Example Organization employees.
      • ISSUER_URI: O URI do emissor OIDC, num formato de URI válido, que começa com https; por exemplo, https://example.com/oidc. Nota: por motivos de segurança, ISSUER_URI tem de usar o esquema HTTPS.
      • OIDC_CLIENT_ID: O ID de cliente do OIDC que está registado no seu IDP do OIDC; o ID tem de corresponder à reivindicação aud do JWT emitido pelo seu IDP.
      • OIDC_CLIENT_SECRET: O segredo do cliente OIDC.
      • WEB_SSO_ADDITIONAL_SCOPES: Âmbitos adicionais opcionais a enviar para o IdP do OIDC para início de sessão baseado no navegador da consola (federado) ou da CLI gcloud.
      • ATTRIBUTE_MAPPING: um mapeamento de atributos. Para o Microsoft Entra ID com autenticação OIDC, recomendamos os seguintes mapeamentos de atributos:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        Este exemplo mapeia os atributos do IdP subject, groups e preferred_username para os atributos Google Cloud google.subject, google.groups e google.display_name, respetivamente.

      • ATTRIBUTE_CONDITION: Uma condição de atributo; por exemplo, para limitar o atributo ipaddr a um determinado intervalo de IP, pode definir a condição assertion.ipaddr.startsWith('98.11.12.') .
      • JWK_JSON_PATH: um caminho opcional para um JWKs OIDC carregado localmente. Se este parâmetro não for fornecido, Google Cloud usa o caminho do seu IdP para obter os JWKs que contêm as chaves públicas./.well-known/openid-configuration Para mais informações sobre os JWKs OIDC carregados localmente, consulte o artigo Faça a gestão dos JWKs OIDC.
      • A federação de identidades da força de trabalho registos de auditoria detalhados regista informações recebidas do seu IdP no Logging. O registo de auditoria detalhado pode ajudar a resolver problemas de configuração do fornecedor do Workload Identity Pool. Para saber como resolver problemas de erros de mapeamento de atributos com registo de auditoria detalhado, consulte o artigo Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.

        Para desativar o registo de auditoria detalhado para um fornecedor do Workload Identity Pool, omita a flag --detailed-audit-logging quando executar gcloud iam workforce-pools providers create. Para desativar o registo de auditoria detalhado, também pode atualizar o fornecedor.

      Na resposta ao comando, POOL_RESOURCE_NAME é o nome do conjunto; por exemplo, locations/global/workforcePools/enterprise-example-organization-employees.

    Fluxo implícito

    Para criar um fornecedor OIDC que use o fluxo implícito para o início de sessão na Web, faça o seguinte:

    1. Para ativar o token de ID na sua aplicação do Microsoft Entra ID, faça o seguinte:

      1. Aceda ao registo da aplicação do Microsoft Entra ID.
      2. Em Autenticação, selecione a caixa de verificação Token de ID.
      3. Clique em Guardar.
    2. Para criar o fornecedor, execute o seguinte comando:

      gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --display-name="DISPLAY_NAME" \
          --description="DESCRIPTION" \
          --issuer-uri="ISSUER_URI" \
          --client-id="OIDC_CLIENT_ID" \
          --web-sso-response-type="id-token" \
          --web-sso-assertion-claims-behavior="only-id-token-claims" \
          --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \
          --attribute-mapping="ATTRIBUTE_MAPPING" \
          --attribute-condition="ATTRIBUTE_CONDITION" \
          --jwk-json-path="JWK_JSON_PATH" \
          --detailed-audit-logging \
          --location=global
      

      Substitua o seguinte:

      • WORKFORCE_PROVIDER_ID: um ID exclusivo do fornecedor do Workload Identity Pool. O prefixo gcp- está reservado e não pode ser usado num Workload Identity Pool nem num ID do fornecedor do Workload Identity Pool.
      • WORKFORCE_POOL_ID: o ID do conjunto de identidades de trabalhadores para associar o seu IdP.
      • DISPLAY_NAME: um nome a apresentar opcional e fácil de usar para o fornecedor; por exemplo, idp-eu-employees.
      • DESCRIPTION: uma descrição opcional do fornecedor de mão de obra; por exemplo, IdP for Partner Example Organization employees.
      • ISSUER_URI: O URI do emissor OIDC, num formato de URI válido, que começa com https; por exemplo, https://example.com/oidc. Nota: por motivos de segurança, ISSUER_URI tem de usar o esquema HTTPS.
      • OIDC_CLIENT_ID: O ID de cliente do OIDC que está registado no seu IDP do OIDC; o ID tem de corresponder à reivindicação aud do JWT emitido pelo seu IDP.
      • WEB_SSO_ADDITIONAL_SCOPES: Âmbitos adicionais opcionais a enviar para o IdP do OIDC para início de sessão baseado no navegador da consola (federado) ou da CLI gcloud.
      • ATTRIBUTE_MAPPING: um mapeamento de atributos. Para o Microsoft Entra ID com autenticação OIDC, recomendamos os seguintes mapeamentos de atributos:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        Este exemplo mapeia os atributos do IdP subject, groups e preferred_username para os atributos Google Cloud google.subject, google.groups e google.display_name, respetivamente.

      • ATTRIBUTE_CONDITION: Uma condição de atributo; por exemplo, para limitar o atributo ipaddr a um determinado intervalo de IP, pode definir a condição assertion.ipaddr.startsWith('98.11.12.') .
      • JWK_JSON_PATH: um caminho opcional para um JWKs OIDC carregado localmente. Se este parâmetro não for fornecido, Google Cloud usa o caminho do seu IdP para obter os JWKs que contêm as chaves públicas./.well-known/openid-configuration Para mais informações sobre os JWKs OIDC carregados localmente, consulte o artigo Faça a gestão dos JWKs OIDC.
      • A federação de identidades da força de trabalho registos de auditoria detalhados regista informações recebidas do seu IdP no Logging. O registo de auditoria detalhado pode ajudar a resolver problemas de configuração do fornecedor do Workload Identity Pool. Para saber como resolver problemas de erros de mapeamento de atributos com registo de auditoria detalhado, consulte o artigo Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.

        Para desativar o registo de auditoria detalhado para um fornecedor do Workload Identity Pool, omita a flag --detailed-audit-logging quando executar gcloud iam workforce-pools providers create. Para desativar o registo de auditoria detalhado, também pode atualizar o fornecedor.

      Na resposta ao comando, POOL_RESOURCE_NAME é o nome do conjunto; por exemplo, locations/global/workforcePools/enterprise-example-organization-employees.

    Consola

    Fluxo de código

    Para criar um fornecedor OIDC que use o fluxo de código de autorização para início de sessão baseado na Web, faça o seguinte:

    1. Para obter o segredo do cliente do Microsoft Entra ID, faça o seguinte:

      1. Aceda ao registo da app do Microsoft Entra ID.

      2. Em Certificados e segredos, clique no separador Segredos do cliente.

      3. Para adicionar um segredo do cliente, clique em + Novo segredo do cliente.

      4. Na caixa de diálogo Adicionar um segredo do cliente, introduza as informações necessárias.

      5. Para criar o segredo do cliente, clique em Adicionar.

      6. No separador Segredos do cliente, encontre o seu novo segredo do cliente.

      7. Na coluna Valor do novo segredo do cliente, clique em Copiar.

    2. Na Google Cloud consola, para criar um fornecedor OIDC que use o fluxo de código de autorização, faça o seguinte:

      1. Na Google Cloud consola, aceda à página Workforce Identity Pools:

        Aceda aos Workforce Identity Pools

      2. Na tabela Workforce Identity Pools, selecione o pool para o qual quer criar o fornecedor.

      3. Na secção Fornecedores, clique em Adicionar fornecedor.

      4. Na lista Selecionar um fornecedor do fornecedor, selecione o seu IdP.

        Se o seu IdP não estiver listado, selecione Fornecedor de identidade genérico.

      5. Em Selecione um protocolo de autenticação, selecione OpenID Connect (OIDC).

      6. Na secção Crie um fornecedor, faça o seguinte:

        1. Em Nome, introduza o nome do fornecedor.
        2. Em Descrição, introduza a descrição do fornecedor.
        3. Em Emissor (URL), introduza o URI do emissor. O URI do emissor do OIDC tem de estar num formato de URI válido e começar por https; por exemplo, https://example.com/oidc.
        4. Em ID de cliente, introduza o ID de cliente OIDC registado no seu IdP OIDC. O ID tem de corresponder à reivindicação aud do JWT emitido pelo seu IdP.
        5. Para criar um fornecedor ativado, certifique-se de que a opção Ativar fornecedor está ativada.

        6. Clique em Continuar.
      7. Na secção Partilhe as informações do seu fornecedor com o IdP, copie o URL. No IdP, configure este URL como o URI de redirecionamento, que informa o IdP para onde enviar o token de afirmação após iniciar sessão.

      8. Clique em Continuar.

      9. Na secção Configurar início de sessão na Web OIDC, faça o seguinte:

        1. Na lista Tipo de fluxo, selecione Código.
        2. Na lista Comportamento das reivindicações de declaração, selecione uma das seguintes opções:

          • Informações do utilizador e token de ID
          • Apenas token de ID
        3. No campo Segredo do cliente, introduza o segredo do cliente do seu IdP.

        4. Opcional: se selecionou Okta como o seu IdP, adicione quaisquer âmbitos OIDC adicionais no campo Âmbitos adicionais além de openid, profile e email.

      10. Clique em Continuar.

      11. Em Configurar fornecedor, pode configurar um mapeamento de atributos e uma condição de atributo. Para criar um mapeamento de atributos, faça o seguinte. Pode indicar o nome do campo do IdP ou uma expressão formatada em CEL que devolva uma string.

        1. Obrigatório: no OIDC 1, introduza o assunto do IdP, por exemplo, assertion.sub.

          Para o Microsoft Entra ID com autenticação OIDC, recomendamos os seguintes mapeamentos de atributos:

          google.subject=assertion.sub,
          google.groups=assertion.groups,
          google.display_name=assertion.preferred_username
          

          Este exemplo mapeia os atributos do IdP subject, groups e preferred_username para os atributos Google Cloud google.subject, google.groups e google.display_name, respetivamente.

        2. Opcional: para adicionar mapeamentos de atributos adicionais, faça o seguinte:

          1. Clique em Adicionar mapeamento.
          2. No Google n, onde n é um número, introduza uma das teclas suportadas.Google Cloud
          3. No campo OIDC n correspondente, introduza o nome do campo específico do IdP a mapear, no formato CEL.
        3. Se selecionou o Microsoft Entra ID como IdP, pode aumentar o número de grupos.

          1. Selecione Usar atributos adicionais.
          2. No campo URI do emissor de atributos adicionais, introduza o URL do emissor.
          3. No campo ID de cliente de atributos adicionais, introduza o ID de cliente.
          4. No campo Segredo do cliente de atributos adicionais, introduza o segredo do cliente.
          5. Na lista Tipo de atributos adicionais, selecione um tipo de atributo para atributos adicionais.
          6. No campo Filtro de atributos adicionais, introduza uma expressão de filtro que é usada quando consulta a API Microsoft Graph para grupos.
        4. Para criar uma condição de atributo, faça o seguinte:

          1. Clique em Adicionar condição.
          2. No campo Condições de atributos, introduza uma condição no formato CEL; por exemplo, para limitar o atributo ipaddr a um determinado intervalo de IPs, pode definir a condição assertion.ipaddr.startsWith('98.11.12.') .
        5. Para ativar o registo de auditoria detalhado, em Registo detalhado, clique no botão para ativar/desativar Ativar registo de auditoria de valores de atributos.

          A federação de identidades da força de trabalho registos de auditoria detalhados regista informações recebidas do seu IdP no Logging. O registo de auditoria detalhado pode ajudar a resolver problemas de configuração do fornecedor do Workload Identity Pool. Para saber como resolver problemas de erros de mapeamento de atributos com registo de auditoria detalhado, consulte o artigo Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.

          Para desativar o registo de auditoria detalhado para um fornecedor do Workload Identity Pool, omita a flag --detailed-audit-logging quando executar gcloud iam workforce-pools providers create. Para desativar o registo de auditoria detalhado, também pode atualizar o fornecedor.

      12. Para criar o fornecedor, clique em Enviar.

    Fluxo implícito

    Para criar um fornecedor OIDC que use o fluxo implícito para o início de sessão baseado na Web, faça o seguinte:

    1. Para ativar o token de ID na sua aplicação do Microsoft Entra ID, faça o seguinte:

      1. Aceda ao registo da aplicação do Microsoft Entra ID.
      2. Em Autenticação, selecione a caixa de verificação Token de ID.
      3. Clique em Guardar.

    1. Na Google Cloud consola, aceda à página Workforce Identity Pools:

      Aceda aos Workforce Identity Pools

    2. Na tabela Workforce Identity Pools, selecione o pool para o qual quer criar o fornecedor.

    3. Na secção Fornecedores, clique em Adicionar fornecedor.

    4. Na lista Selecionar um fornecedor do fornecedor, selecione o seu IdP.

      Se o seu IdP não estiver listado, selecione Fornecedor de identidade genérico.

    5. Em Selecione um protocolo de autenticação, selecione OpenID Connect (OIDC).

    6. Na secção Crie um fornecedor, faça o seguinte:

      1. Em Nome, introduza o nome do fornecedor.
      2. Em Descrição, introduza a descrição do fornecedor.
      3. Em Emissor (URL), introduza o URI do emissor. O URI do emissor do OIDC tem de estar num formato de URI válido e começar por https; por exemplo, https://example.com/oidc.
      4. Em ID de cliente, introduza o ID de cliente OIDC registado no seu IdP OIDC. O ID tem de corresponder à reivindicação aud do JWT emitido pelo seu IdP.
      5. Para criar um fornecedor ativado, certifique-se de que a opção Ativar fornecedor está ativada.
      6. Clique em Continuar.
    7. Na secção Partilhe as informações do seu fornecedor com o IdP, copie o URL. No IdP, configure este URL como o URI de redirecionamento, que informa o IdP para onde enviar o token de afirmação após iniciar sessão.

    8. Clique em Continuar.

    9. Na secção Configurar início de sessão na Web OIDC, faça o seguinte:

      1. Na lista Tipo de fluxo, selecione Token de ID.

      2. Na lista Comportamento das reivindicações de asserção, a opção Token de ID está selecionada.

      3. Opcional: se selecionou Okta como o seu IdP, adicione quaisquer âmbitos OIDC adicionais no campo Âmbitos adicionais além de openid, profile e email.

    10. Clique em Continuar.

    11. Em Configurar fornecedor, pode configurar um mapeamento de atributos e uma condição de atributo. Para criar um mapeamento de atributos, faça o seguinte. Pode indicar o nome do campo do IdP ou uma expressão formatada em CEL que devolva uma string.

      1. Obrigatório: no OIDC 1, introduza o assunto do IdP; por exemplo, assertion.sub.

        Para o Microsoft Entra ID com autenticação OIDC, recomendamos os seguintes mapeamentos de atributos:

        google.subject=assertion.sub,
        google.groups=assertion.groups,
        google.display_name=assertion.preferred_username
        

        Este exemplo mapeia os atributos do IdP subject, groups e preferred_username para os atributos Google Cloud google.subject, google.groups e google.display_name, respetivamente.

      2. Opcional: para adicionar mapeamentos de atributos adicionais, faça o seguinte:

        1. Clique em Adicionar mapeamento.
        2. No Google n, onde n é um número, introduza uma das teclas suportadas.Google Cloud
        3. No campo OIDC n correspondente, introduza o nome do campo específico do IdP a mapear, no formato CEL.
      3. Se selecionou o Microsoft Entra ID como IdP, pode aumentar o número de grupos.

        1. Selecione Usar atributos adicionais.
        2. No campo URI do emissor de atributos adicionais, introduza o URL do emissor.
        3. No campo ID de cliente de atributos adicionais, introduza o ID de cliente.
        4. No campo Segredo do cliente de atributos adicionais, introduza o segredo do cliente.
        5. Na lista Tipo de atributos adicionais, selecione um tipo de atributo para atributos adicionais.
        6. No campo Filtro de atributos adicionais, introduza uma expressão de filtro que é usada quando consulta a API Microsoft Graph para grupos.
      4. Para criar uma condição de atributo, faça o seguinte:

        1. Clique em Adicionar condição.
        2. No campo Condições de atributos, introduza uma condição no formato CEL; por exemplo, para limitar o atributo ipaddr a um determinado intervalo de IPs, pode definir a condição assertion.ipaddr.startsWith('98.11.12.') .
      5. Para ativar o registo de auditoria detalhado, em Registo detalhado, clique no botão para ativar/desativar Ativar registo de auditoria de valores de atributos.

        A federação de identidades da força de trabalho registos de auditoria detalhados regista informações recebidas do seu IdP no Logging. O registo de auditoria detalhado pode ajudar a resolver problemas de configuração do fornecedor do Workload Identity Pool. Para saber como resolver problemas de erros de mapeamento de atributos com registo de auditoria detalhado, consulte o artigo Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.

        Para desativar o registo de auditoria detalhado para um fornecedor do Workload Identity Pool, omita a flag --detailed-audit-logging quando executar gcloud iam workforce-pools providers create. Para desativar o registo de auditoria detalhado, também pode atualizar o fornecedor.

    12. Para criar o fornecedor, clique em Enviar.

Crie um fornecedor do Workforce Identity Pool SAML 2.0

  1. No seu IdP SAML, registe uma nova aplicação para a Google Cloud federação de identidade da força de trabalho.

  2. Defina o público-alvo para as afirmações SAML. Normalmente, é o campo SP Entity ID na configuração do IdP. Tem de definir o URL seguinte:

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    
  3. Defina o URL de redirecionamento, também conhecido como URL do serviço de consumo de declarações (ACS). Para definir o URL de redirecionamento, localize o campo do URL de redirecionamento no seu IdP de SAML e faça uma das seguintes ações:

    • Para configurar o início de sessão baseado no navegador através da Google Cloud consola ou de outro método de início de sessão baseado no navegador, introduza o seguinte URL:

      https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      

      Substitua o seguinte:

      • WORKFORCE_POOL_ID: o ID do Workforce Identity Pool

      • WORKFORCE_PROVIDER_ID: o ID do fornecedor do Workload Identity Pool que cria mais tarde neste documento.

    • Para configurar o início de sessão programático através do seu IdP, introduza o seguinte URL:

      localhost
      

    Consulte o artigo Configure o acesso dos utilizadores à consola para ver mais detalhes sobre a configuração do início de sessão na consola.

  4. No Google Cloud, crie um fornecedor do Workload Identity Pool SAML com o documento de metadados SAML do seu IdP. Pode transferir o documento XML de metadados SAML do seu IdP. O documento tem de incluir, pelo menos, o seguinte:

    • Um ID da entidade SAML para o seu IdP.
    • O URL de Início de sessão único do seu IdP.
    • Pelo menos, uma chave pública de assinatura. Consulte os requisitos principais mais adiante neste guia para ver detalhes sobre as chaves de assinatura.

gcloud

Para guardar os metadados SAML da sua aplicação Microsoft Entra ID, faça o seguinte:

  1. Aceda à sua aplicação Microsoft Entra ID.
  2. Clique em Início de sessão único.
  3. Na secção Certificados SAML, transfira o XML de metadados de federação.
  4. Guarde os metadados como um ficheiro XML local.

Para criar o fornecedor do Workload Identity Pool de força de trabalho SAML, execute o seguinte comando:

gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool="WORKFORCE_POOL_ID" \
    --display-name="DISPLAY_NAME" \
    --description="DESCRIPTION" \
    --idp-metadata-path="XML_METADATA_PATH" \
    --attribute-mapping="ATTRIBUTE_MAPPING" \
    --attribute-condition="ATTRIBUTE_CONDITION" \
    --detailed-audit-logging \
    --location=global

Substitua o seguinte:

  • WORKFORCE_PROVIDER_ID: um ID do fornecedor.
  • WORKFORCE_POOL_ID: o ID do conjunto de identidades de trabalhadores.
  • DISPLAY_NAME: um nome a apresentar.
  • DESCRIPTION: uma descrição.
  • XML_METADATA_PATH: o caminho para o ficheiro de metadados formatado em XML com metadados de configuração para o fornecedor de identidade SAML.
  • ATTRIBUTE_MAPPING: o mapeamento de atributos, por exemplo:

    google.subject=assertion.subject,
    google.groups=assertion.attributes['https://example.com/aliases'],
    attribute.costcenter=assertion.attributes.costcenter[0]
    Este exemplo mapeia os atributos do IdP assertion.subject, assertion.attributes['https://example.com/aliases'] e assertion.attributes.costcenter[0] para os atributos Google Cloud google.subject, google.groups e google.costcenter, respetivamente.

    Para mais informações, consulte o artigo Mapeamento de atributos.

  • ATTRIBUTE_CONDITION: uma condição de atributo opcional. Por exemplo, para limitar o atributo ipaddr a um determinado intervalo de IPs, pode definir a condição assertion.attributes.ipaddr.startsWith('98.11.12.'). Esta condição de exemplo garante que apenas os utilizadores com um endereço IP que comece por 98.11.12. podem iniciar sessão através deste fornecedor de força de trabalho.

  • A federação de identidades da força de trabalho registos de auditoria detalhados regista informações recebidas do seu IdP no Logging. O registo de auditoria detalhado pode ajudar a resolver problemas de configuração do fornecedor do Workload Identity Pool. Para saber como resolver problemas de erros de mapeamento de atributos com registo de auditoria detalhado, consulte o artigo Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.

    Para desativar o registo de auditoria detalhado para um fornecedor do Workload Identity Pool, omita a flag --detailed-audit-logging quando executar gcloud iam workforce-pools providers create. Para desativar o registo de auditoria detalhado, também pode atualizar o fornecedor.

Opcional: aceite afirmações SAML encriptadas do seu IdP

Para permitir que o seu IdP SAML 2.0 produza afirmações SAML encriptadas que podem ser aceites pela federação de identidade da força de trabalho, faça o seguinte:

  • Na federação de identidade da força de trabalho, faça o seguinte:
    • Crie um par de chaves assimétricas para o fornecedor do Workforce Identity Pool.
    • Transfira um ficheiro de certificado que contém a chave pública.
    • Configure o seu IdP SAML para usar a chave pública para encriptar as afirmações SAML que emite.
  • No IdP, faça o seguinte:
    • Ative a encriptação de afirmações, também conhecida como encriptação de tokens.
    • Carregue a chave pública que criou na federação de identidade da força de trabalho.
    • Confirme que o seu IdP produz afirmações SAML encriptadas.
Tenha em atenção que, mesmo com as chaves do fornecedor de encriptação SAML configuradas, a federação de identidade da força de trabalho ainda pode processar uma afirmação de texto simples.

Crie chaves de encriptação de afirmações SAML de federação de identidade da força de trabalho

Esta secção explica como criar um par de chaves assimétricas que permite à federação de identidade da força de trabalho aceitar afirmações SAML encriptadas.

Google Cloud usa a chave privada para desencriptar as afirmações SAML que o seu IdP emite. Para criar um par de chaves assimétricas para utilização com a encriptação SAML, execute o seguinte comando. Para saber mais, consulte o artigo Algoritmos de encriptação SAML suportados.

gcloud iam workforce-pools providers keys create KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider WORKFORCE_PROVIDER_ID \
    --location global \
    --use encryption \
    --spec KEY_SPECIFICATION

Substitua o seguinte:

  • KEY_ID: um nome de chave à sua escolha
  • WORKFORCE_POOL_ID: o ID do conjunto
  • WORKFORCE_PROVIDER_ID: o ID do fornecedor do Workforce Identity Pool
  • KEY_SPECIFICATION: a especificação principal, que pode ser uma das seguintes: rsa-2048, rsa-3072 e rsa-4096.

Depois de criar o par de chaves, para transferir a chave pública para um ficheiro de certificado, execute o seguinte comando. Apenas a federação de identidade da força de trabalho tem acesso à chave privada.

gcloud iam workforce-pools providers keys describe KEY_ID \
    --workforce-pool WORKFORCE_POOL_ID \
    --provider WORKFORCE_PROVIDER_ID \
    --location global \
    --format "value(keyData.key)" \
    > CERTIFICATE_PATH

Substitua o seguinte:

  • KEY_ID: o nome da chave
  • WORKFORCE_POOL_ID: o ID do conjunto
  • WORKFORCE_PROVIDER_ID: o ID do fornecedor do Workforce Identity Pool
  • CERTIFICATE_PATH: o caminho para escrever o certificado, por exemplo, saml-certificate.cer ou saml-certificate.pem

Configure o seu IdP compatível com SAML 2.0 para emitir afirmações SAML encriptadas

Para configurar o Microsoft Entra ID para encriptar tokens SAML, consulte o artigo Configure a encriptação de tokens SAML do Azure Active Directory.

Depois de configurar o IdP para encriptar as afirmações SAML, recomendamos que verifique se as afirmações que gera estão realmente encriptadas. Mesmo com a encriptação de afirmações SAML configurada, a federação de identidade da força de trabalho pode continuar a processar afirmações de texto simples.

Elimine as chaves de encriptação da federação de identidade da força de trabalho

Para eliminar chaves de encriptação SAML, execute o seguinte comando:
  gcloud iam workforce-pools providers keys delete KEY_ID \
      --workforce-pool WORKFORCE_POOL_ID \
      --provider WORKFORCE_PROVIDER_ID \
      --location global

Substitua o seguinte:

  • KEY_ID: o nome da chave
  • WORKFORCE_POOL_ID: o ID do conjunto
  • WORKFORCE_PROVIDER_ID: o ID do fornecedor do Workforce Identity Pool

Algoritmos de encriptação SAML suportados

A federação de identidade da força de trabalho suporta os seguintes algoritmos de transporte de chaves:

A federação de identidade da força de trabalho suporta os seguintes algoritmos de encriptação de blocos:

Consola

Para configurar o fornecedor de SAML através da Google Cloud consola, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Workforce Identity Pools:

    Aceda aos Workforce Identity Pools

  2. Na tabela Workforce Identity Pools, selecione o pool para o qual quer criar o fornecedor.

  3. Na secção Fornecedores, clique em Adicionar fornecedor.

  4. Na lista Selecionar um fornecedor do fornecedor, selecione o seu IdP.

    Se o seu IdP não estiver listado, selecione Fornecedor de identidade genérico.

  5. Em Selecionar um protocolo de autenticação, selecione SAML.

  6. Na secção Crie um fornecedor, faça o seguinte:

    1. Em Nome, introduza um nome para o fornecedor.

    2. Opcional: em Descrição, introduza uma descrição do fornecedor.

    3. Em Ficheiro de metadados do IDP (XML), selecione o ficheiro XML de metadados que gerou anteriormente neste guia.

    4. Para criar um fornecedor ativado, certifique-se de que a opção Ativar fornecedor está ativada.

    5. Clique em Continuar.

  7. Na secção Partilhe as informações do seu fornecedor, copie os URLs. No seu IdP, configure o primeiro URL como o ID da entidade, que identifica a sua aplicação ao IdP. Configure o outro URL como o URI de redirecionamento, que informa o IdP para onde enviar o token de afirmação após iniciar sessão.

  8. Clique em Continuar.

  9. Na secção Configurar fornecedor, faça o seguinte:

    1. Em Mapeamento de atributos, introduza uma expressão CEL para google.subject.

    2. Opcional: para introduzir outros mapeamentos, clique em Adicionar mapeamento e introduza outros mapeamentos, por exemplo:

      google.subject=assertion.subject,
      google.groups=assertion.attributes['https://example.com/aliases'],
      attribute.costcenter=assertion.attributes.costcenter[0]
      Este exemplo mapeia os atributos do IdP assertion.subject, assertion.attributes['https://example.com/aliases'] e assertion.attributes.costcenter[0] para os atributos Google Cloud google.subject, google.groups e google.costcenter, respetivamente.

    3. Se selecionou o Microsoft Entra ID como o seu IdP, pode aumentar o número de grupos fazendo o seguinte:

      1. Selecione Usar atributos adicionais.
      2. No campo URI do emissor de atributos adicionais, introduza o URL do emissor.
      3. No campo ID de cliente de atributos adicionais, introduza o ID de cliente.
      4. No campo Segredo do cliente de atributos adicionais, introduza o segredo do cliente.
      5. Na lista Tipo de atributos adicionais, selecione um tipo de atributo para atributos adicionais.
      6. No campo Filtro de atributos adicionais, introduza uma expressão de filtro que é usada quando consulta a API Microsoft Graph para grupos.
    4. Opcional: para adicionar uma condição de atributo, clique em Adicionar condição e introduza uma expressão CEL que represente uma condição de atributo. Por exemplo, para limitar o atributo ipaddr a um determinado intervalo de IPs, pode definir a condição assertion.attributes.ipaddr.startsWith('98.11.12.'). Esta condição de exemplo garante que apenas os utilizadores com um endereço IP que comece por 98.11.12. podem iniciar sessão através deste fornecedor de força de trabalho.

    5. Clique em Continuar.

    6. Para ativar o registo de auditoria detalhado, em Registo detalhado, clique no botão para ativar/desativar Ativar registo de auditoria de valores de atributos.

      A federação de identidades da força de trabalho registos de auditoria detalhados regista informações recebidas do seu IdP no Logging. O registo de auditoria detalhado pode ajudar a resolver problemas de configuração do fornecedor do Workload Identity Pool. Para saber como resolver problemas de erros de mapeamento de atributos com registo de auditoria detalhado, consulte o artigo Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte os preços da observabilidade do Google Cloud.

      Para desativar o registo de auditoria detalhado para um fornecedor do Workload Identity Pool, omita a flag --detailed-audit-logging quando executar gcloud iam workforce-pools providers create. Para desativar o registo de auditoria detalhado, também pode atualizar o fornecedor.

  10. Para criar o fornecedor, clique em Enviar.

Faça a gestão do acesso aos recursos do Google Cloud

Esta secção fornece um exemplo que mostra como gerir o acesso aos recursos por parte dos utilizadores da Workforce Identity Federation.Google Cloud

Neste exemplo, concede uma função de gestão de identidade e de acesso (IAM) num projeto de exemplo. Em seguida, os utilizadores podem iniciar sessão e usar este projeto para aceder Google Cloud a produtos.

Pode gerir funções da IAM para identidades únicas, um grupo de identidades ou um conjunto completo. Para mais informações, consulte o artigo Represente utilizadores do Workforce Identity Pool em políticas do IAM.

Usar grupos mapeados

Para conceder a função de administrador de armazenamento (roles/storage.admin) a todas as identidades no grupo GROUP_ID para o projeto TEST_PROJECT_ID, execute o seguinte comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"

Substitua o seguinte:

  • TEST_PROJECT_ID: o ID do projeto de teste
  • WORKFORCE_POOL_ID: o ID do conjunto de identidades dos trabalhadores
  • GROUP_ID: um grupo na reivindicação google.groups mapeada.

Para uma única identidade

Para conceder a função de administrador do armazenamento (roles/storage.admin) a uma única identidade para o projeto TEST_PROJECT_ID, execute o seguinte comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"

Substitua o seguinte:

  • TEST_PROJECT_ID: o ID do projeto de teste
  • WORKFORCE_POOL_ID: o ID do Workload Identity Pool
  • SUBJECT_VALUE: a identidade do utilizador

Usar o atributo de departamento mapeado

Para conceder a função de administrador do armazenamento (roles/storage.admin) a todas as identidades num departamento específico para o projeto TEST_PROJECT_ID, execute o seguinte comando:

gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
    --role="roles/storage.admin" \
    --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"

Substitua o seguinte:

  • TEST_PROJECT_ID: o ID do projeto de teste
  • WORKFORCE_POOL_ID: o ID do conjunto de identidades de trabalhadores
  • DEPARTMENT_VALUE: o valor attribute.department mapeado

Inicie sessão e teste o acesso

Nesta secção, inicia sessão como utilizador do Workload Identity Pool e testa se tem acesso aos recursos Google Cloud .

Iniciar sessão

Esta secção mostra-lhe como iniciar sessão como utilizador federado e aceder a Google Cloud recursos.

Início de sessão na consola (federado)

Para iniciar sessão na Google Cloud consola da federação de identidade da força de trabalho, também conhecida como consola (federada), faça o seguinte:

  1. Aceda à página de início de sessão da consola (federada).

    Aceda à consola (federada)

  2. Introduza o nome do fornecedor, que está formatado da seguinte forma:
    locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
  3. Se lhe for pedido, introduza as credenciais do utilizador no Microsoft Entra ID.

    Se iniciar um início de sessão iniciado pelo IdP, use o seguinte para o URL de retransmissão: https://console.cloud.google/.

Início de sessão baseado no navegador da CLI gcloud

Para iniciar sessão na gcloud CLI através de um fluxo de início de sessão baseado no navegador, faça o seguinte:

Crie um ficheiro de configuração

Para criar o ficheiro de configuração de início de sessão, execute o seguinte comando. Opcionalmente, pode ativar o ficheiro como predefinição para a CLI gcloud adicionando a flag --activate. Em seguida, pode executar o comando gcloud auth login sem especificar o caminho do ficheiro de configuração de cada vez.

gcloud iam workforce-pools create-login-config \
    locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
    --output-file=LOGIN_CONFIG_FILE_PATH

Substitua o seguinte:

  • WORKFORCE_POOL_ID: o ID do conjunto de trabalhadores
  • PROVIDER_ID: o ID do fornecedor
  • LOGIN_CONFIG_FILE_PATH: o caminho para um ficheiro de configuração que especifica, por exemplo, login.json

O ficheiro contém os pontos finais usados pela CLI gcloud para ativar o fluxo de autenticação baseado no navegador e definir o público-alvo para o IdP que foi configurado no fornecedor do Workload Identity Pool. O ficheiro não contém informações confidenciais.

O resultado tem um aspeto semelhante ao seguinte:

{
  "type": "external_account_authorized_user_login_config",
  "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
  "auth_url": "https://auth.cloud.google/authorize",
  "token_url": "https://sts.googleapis.com/v1/oauthtoken",
  "token_info_url": "https://sts.googleapis.com/v1/introspect"
}

Para impedir que o gcloud auth login use este ficheiro de configuração automaticamente, pode anular a definição executando o comando gcloud config unset auth/login_config_file.

Inicie sessão através da autenticação baseada no navegador

Para autenticar através da autenticação de início de sessão baseada no navegador, pode usar um dos seguintes métodos:

  • Se usou a flag --activate quando criou o ficheiro de configuração ou se ativou o ficheiro de configuração com gcloud config set auth/login_config_file, a CLI gcloud usa o ficheiro de configuração automaticamente:

    gcloud auth login
  • Para iniciar sessão especificando a localização do ficheiro de configuração, execute o seguinte comando:

    gcloud auth login --login-config=LOGIN_CONFIG_FILE_PATH
  • Para usar uma variável de ambiente para especificar a localização do ficheiro de configuração, defina CLOUDSDK_AUTH_LOGIN_CONFIG_FILE para o caminho de configuração.

Desative o início de sessão baseado no navegador

Para descontinuar a utilização do ficheiro de configuração de início de sessão, faça o seguinte:

  • Se usou a flag --activate quando criou o ficheiro de configuração ou se ativou o ficheiro de configuração com gcloud config set auth/login_config_file, tem de executar o seguinte comando para anular a definição:

    gcloud config unset auth/login_config_file
  • Limpe a variável de ambiente CLOUDSDK_AUTH_LOGIN_CONFIG_FILE, se estiver definida.

Início de sessão sem interface da CLI gcloud

Para iniciar sessão no Microsoft Entra ID com a CLI gcloud, faça o seguinte:

OIDC

  1. Siga os passos em Envie o pedido de início de sessão. Inicie sessão do utilizador na sua aplicação com o Microsoft Entra ID através do OIDC.

  2. Copie o token de ID do parâmetro id_token do URL de redirecionamento e guarde-o num ficheiro numa localização segura no seu computador local. Num passo posterior, define PATH_TO_OIDC_ID_TOKEN para o caminho deste ficheiro.

  3. Gere um ficheiro de configuração semelhante ao exemplo mais adiante neste passo executando o seguinte comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type=urn:ietf:params:oauth:token-type:id_token \
        --credential-source-file=PATH_TO_OIDC_ID_TOKEN \
        --workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
        --output-file=config.json
    

    Substitua o seguinte:

    • WORKFORCE_POOL_ID: o ID do conjunto de identidades de trabalhadores.
    • WORKFORCE_PROVIDER_ID: o ID do fornecedor do Workload Identity Pool.
    • PATH_TO_OIDC_ID_TOKEN: o caminho para a localização do ficheiro onde o token do IdP está armazenado.
    • WORKFORCE_POOL_USER_PROJECT: o número ou o ID do projeto usado para a quota e a faturação. O principal tem de ter autorização serviceusage.services.use neste projeto.

    Quando o comando estiver concluído, o Microsoft Entra ID cria o seguinte ficheiro de configuração:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
      "token_url": "https://sts.googleapis.com/v1/token",
      "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
      "credential_source": {
        "file": "PATH_TO_OIDC_CREDENTIALS"
      }
    }
    
  4. Abra a CLI gcloud e execute o seguinte comando:

    gcloud auth login --cred-file=PATH_TO_OIDC_CREDENTIALS
    

    Substitua PATH_TO_OIDC_CREDENTIALS pelo caminho para o ficheiro de saída de um passo anterior.

    A CLI gcloud publica de forma transparente as suas credenciais no ponto final do serviço de tokens de segurança. No ponto final, é trocado por tokens de acesso Google Cloud temporários.

    Já pode executar comandos da CLI gcloud para Google Cloud.

SAML

  1. Inicie sessão de um utilizador na sua aplicação do Microsoft Entra ID e obtenha a resposta SAML.

  2. Guarde a resposta SAML devolvida pelo Microsoft Entra ID numa localização segura na sua máquina local e, em seguida, armazene o caminho da seguinte forma:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Para gerar um ficheiro de configuração de credenciais, execute o seguinte comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type=urn:ietf:params:oauth:token-type:saml2 \
        --credential-source-file=SAML_ASSERTION_PATH  \
        --workforce-pool-user-project=PROJECT_ID  \
        --output-file=config.json
    

    Substitua o seguinte:

    • WORKFORCE_PROVIDER_ID: o ID do fornecedor do Workload Identity Pool que criou anteriormente neste guia
    • WORKFORCE_POOL_ID: o ID do Workload Identity Pool que criou anteriormente neste guia
    • SAML_ASSERTION_PATH: o caminho do ficheiro de declaração SAML
    • PROJECT_ID: o ID do projeto

    O ficheiro de configuração gerado tem um aspeto semelhante ao seguinte:

    {
       "type": "external_account",
       "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
       "subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
       "token_url": "https://sts.googleapis.com/v1/token",
       "credential_source": {
         "file": "SAML_ASSERTION_PATH"
       },
       "workforce_pool_user_project": "PROJECT_ID"
    }
    
  4. Para iniciar sessão na CLI gcloud através da troca de tokens da Workforce Identity Federation, execute o seguinte comando:

    gcloud auth login --cred-file=config.json
    

    Em seguida, a CLI gcloud troca de forma transparente as suas credenciais do Microsoft Entra ID por Google Cloud tokens de acesso temporários. Os tokens de acesso permitem-lhe aceder a Google Cloud.

    Vê um resultado semelhante ao seguinte:

    Authenticated with external account user credentials for:
    [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].
  5. Para listar as contas com credenciais e a sua conta ativa, execute o seguinte comando:

    gcloud auth list
    

Teste o acesso

Agora, tem acesso aos Google Cloud produtos que suportam a federação de identidade da força de trabalho e aos quais lhe é concedido acesso. Anteriormente, neste documento, concedeu a função de administrador de armazenamento (roles/storage.admin) a todas as identidades no identificador de grupo que especificou no gcloud projects add-iam-policy-binding para o projeto TEST_PROJECT_ID.

Agora, pode testar se tem acesso listando os contentores do Cloud Storage.

Consola (federada)

Para testar se tem acesso através da consola (federada), faça o seguinte:

  • Aceda à página de armazenamento na nuvem.

    Aceda ao Cloud Storage

  • Verifique se consegue ver uma lista dos contentores existentes para o TEST_PROJECT_ID.

CLI gcloud

Para testar se tem acesso através da CLI gcloud, pode listar os contentores e os objetos do Cloud Storage para o projeto ao qual tem acesso. Para o fazer, execute o seguinte comando. O principal tem de ter a autorização serviceusage.services.use no projeto especificado.

gcloud storage ls --project="TEST_PROJECT_ID"

Eliminar utilizadores

A federação de identidade da força de trabalho cria metadados e recursos do utilizador para identidades de utilizadores federadas. Se optar por eliminar utilizadores no seu IdP, também tem de eliminar explicitamente estes recursos no Google Cloud. Para o fazer, consulte o artigo Elimine utilizadores da Federação de identidades da força de trabalho e os respetivos dados.

Pode ver que os recursos continuam associados a um utilizador que foi eliminado. Isto deve-se ao facto de a eliminação dos metadados e dos recursos do utilizador exigir uma operação de longa duração. Depois de iniciar a eliminação da identidade de um utilizador, os processos que o utilizador iniciou antes da eliminação podem continuar a ser executados até que os processos sejam concluídos ou cancelados.

Configure o SCIM

Esta secção descreve como configurar um inquilino SCIM num conjunto de identidades da força de trabalho.

Cada Workforce Identity Pool suporta apenas um inquilino SCIM. Para configurar um novo inquilino SCIM num conjunto que já tenha um, primeiro tem de eliminar permanentemente o inquilino existente.

A flag --claim-mapping para um inquilino SCIM só pode conter expressões específicas do Idioma de expressão comum (IEC). Para saber que expressões são suportadas, consulte o artigo Mapeie atributos SCIM e tokens.

Para configurar o System for Cross-domain Identity Management (SCIM), tem de fazer o seguinte:

Configure um inquilino e um token SCIM em Google Cloud

Para configurar um inquilino SCIM em Google Cloud, faça o seguinte:

  1. Crie um inquilino SCIM.

        gcloud iam workforce-pools providers scim-tenants create SCIM_TENANT_ID \
            --workforce-pool="WORKFORCE_POOL_ID" \
            --provider="PROVIDER_ID" \
            --display-name="SCIM_TENANT_DISPLAY_NAME" \
            --description="SCIM_TENANT_DESCRIPTION" \
            --claim-mapping="CLAIM_MAPPING" \
            --location="global"
        

    Substitua o seguinte:

    • SCIM_TENANT_ID: um ID para o seu inquilino SCIM.
    • WORKFORCE_POOL_ID: o ID do conjunto de trabalhadores que criou anteriormente neste documento.
    • PROVIDER_ID: o ID do fornecedor do Workforce Identity Pool que criou anteriormente neste documento.
    • SCIM_TENANT_DISPLAY_NAME: um nome a apresentar para o seu inquilino SCIM.
    • SCIM_TENANT_DESCRIPTION: uma descrição para o seu inquilino SCIM.
    • CLAIM_MAPPING: uma lista separada por vírgulas de mapeamentos de atributos. Recomendamos que use o seguinte mapeamento de atributos:
      google.subject=user.externalId,google.group=group.externalId
      O atributo google.subject que mapeia no inquilino SCIM tem de se referir exclusivamente às mesmas identidades mapeadas no atributo google.subject no fornecedor do conjunto de identidades da força de trabalho através da flag --attribute-mapping. Depois de criar o inquilino SCIM, não pode atualizar o mapeamento de reivindicações. Para o substituir, pode eliminar permanentemente o inquilino SCIM e criar imediatamente um novo. Para saber mais sobre as considerações para usar o SCIM, consulte o artigo Compatibilidade com o SCIM.
  2. Quando o comando for concluído, faça o seguinte:

    1. No campo baseUri no resultado, guarde o URI completo, que está formatado como https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID. Tem de fornecer este URI ao seu IdP.
    2. Além disso, a partir do URI, guarde apenas o SCIM_TENANT_UID. Precisa deste UID para definir políticas IAM no inquilino SCIM, mais tarde neste documento.
  3. Crie um token SCIM:

        gcloud iam workforce-pools providers scim-tenants tokens create SCIM_TOKEN_ID \
            --display-name DISPLAY_NAME \
            --scim-tenant SCIM_TENANT_ID \
            --workforce-pool WORKFORCE_POOL_ID \
            --provider PROVIDER_ID \
            --location global
        

    Substitua o seguinte:

    • SCIM_TOKEN_ID: um ID para o token SCIM
    • DISPLAY_NAME: o nome a apresentar do token SCIM
    • WORKFORCE_POOL_ID: o ID do conjunto de trabalhadores
    • SCIM_TENANT_ID: o ID do inquilino SCIM
    • PROVIDER_ID: o ID do fornecedor do Workload Identity Pool
  4. Quando o comando gcloud iam workforce-pools providers scim-tenants tokens create estiver concluído, faça o seguinte:

    1. No resultado, guarde o valor de SCIM_TOKEN no campo securityToken. Tem de fornecer este token de segurança ao seu IdP. O token de segurança é apresentado apenas neste resultado e, se o perder, tem de criar um novo token SCIM.
    2. Para verificar se SCIM_TOKEN é rejeitado pela política da sua organização, execute o seguinte comando:
      curl -v -H "Authorization: Bearer SCIM_TOKEN"  https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users
      Se o comando falhar com um erro relacionado com autorizações, execute gcloud organizations add-iam-policy-binding, descrito num passo posterior. Se o comando for bem-sucedido, pode ignorar esse passo.
  5. Defina políticas IAM no inquilino e token SCIM. Se o curl comando num passo anterior falhou com um erro relacionado com autorizações, tem de executar o seguinte comando:

        gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
            --member=serviceAccount:SERVICE_AGENT_EMAIL \
            --role roles/iam.scimSyncer
        

    Substitua o seguinte:

    • ORGANIZATION_ID: o ID da organização.
    • SERVICE_AGENT_EMAIL: o endereço de email do agente do serviço. O endereço de email está no seguinte formato: o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.com. SCIM_TENANT_UID é devolvido quando cria o inquilino SCIM.

Quando aprovisiona grupos no seu IdP, certifique-se de que o nome a apresentar de cada grupo, conforme indicado no campo displayName, é exclusivo num inquilino SCIM. Para saber mais acerca dos grupos e do SCIM no Microsoft Entra ID, consulte Grupos.

Configure o SCIM no Microsoft Entra ID

Para configurar o SCIM no Microsoft Entra ID, faça o seguinte:

  1. Abra o portal do Azure e inicie sessão como um utilizador com privilégios de administrador global.
  2. Selecione Microsoft Entra ID > Apps empresariais.
  3. Clique em Nova aplicação.
  4. Em Procurar na galeria de apps do Microsoft Entra, clique em Criar a sua própria aplicação.
  5. No painel Crie a sua própria aplicação apresentado, faça o seguinte:
    1. Em Qual é o nome da sua app, introduza o nome da app.
    2. Selecione Integrar qualquer outra aplicação que não encontre na galeria (não galeria).
    3. Para criar a app, clique em Criar.
  6. Na sua candidatura, faça o seguinte:
    1. Na secção Gerir, clique em Aprovisionamento.
    2. No painel direito apresentado, clique em Nova configuração.
    3. Em Credenciais de administrador, no URL do inquilino, introduza o URL SCIM que obteve quando criou o inquilino SCIM, anexado com ?aadOptscim062020. Tem de acrescentar ?aadOptscim062020 ao final do URI base.

      Este parâmetro de consulta é exigido pelo Microsoft Entra ID para garantir que os pedidos SCIM PATCH estão em conformidade com as normas SCIM RFC. Para mais detalhes, consulte a documentação da Microsoft.

      O URL final do inquilino no Microsoft Entra ID deve estar no seguinte formato:

      https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID?aadOptscim062020

      Substitua SCIM_TENANT_UID pelo UID do inquilino do SCIM.

    4. Em Token secreto, introduza o token secreto que obteve quando criou o inquilino SCIM.
    5. Para testar a configuração do SCIM com a federação de identidade da força de trabalho, clique em Testar associação.
    6. Para guardar a configuração, clique em Criar.
  7. Na secção Gerir, faça o seguinte:
    1. Clique em Mapeamento de atributos.
    2. Clique em Aprovisionar utilizadores do Microsoft Entra ID.
    3. Na página Mapeamento de atributos, faça o seguinte:
      1. Na tabela Mapeamentos de atributos, encontre a linha de externalId e clique em Editar nessa linha. Na página Editar atributos, faça o seguinte:
        1. Em Fazer corresponder objetos através deste atributo, selecione Yes.
        2. Em Precedência de correspondência, introduza 2.
        3. Na lista pendente Atributo de origem, selecione objectId.
        4. Para guardar o mapeamento de atributos, clique em OK.
      2. Na tabela Mapeamentos de atributos, encontre a linha de userName e clique em Editar nessa linha. Na página Editar atributos, faça o seguinte:
        1. Em Fazer corresponder objetos através deste atributo, selecione No.
        2. Para guardar o mapeamento de atributos, clique em OK.
      3. Na tabela Mapeamentos de atributos, encontre a linha de externalId e clique em Editar nessa linha. Na página Editar atributos, faça o seguinte:
        1. Em Precedência de correspondência, introduza 1.
        2. Para guardar o mapeamento de atributos, clique em OK.
    4. Clique em Aprovisionar grupos do Microsoft Entra ID.
    5. Na página Mapeamento de atributos, faça o seguinte:
      1. Na tabela Mapeamentos de atributos, encontre a linha de externalId e clique em Editar nessa linha. Na página Editar atributos, faça o seguinte:
        1. Em Fazer corresponder objetos através deste atributo, selecione Yes.
        2. Em Precedência de correspondência, introduza 2.
        3. Na lista pendente Atributo de origem, selecione objectId.
        4. Para guardar o mapeamento de atributos, clique em OK.
      2. Na tabela Mapeamentos de atributos, encontre a linha de displayName e clique em Editar nessa linha. Na página Editar atributos, faça o seguinte:
        1. Em Fazer corresponder objetos através deste atributo, selecione No.
        2. Para guardar o mapeamento de atributos, clique em OK.
      3. Na tabela Mapeamentos de atributos, encontre a linha de externalId e clique em Editar nessa linha. Na página Editar atributos, faça o seguinte:
        1. Em Precedência de correspondência, introduza 1.
        2. Para guardar o mapeamento de atributos, clique em OK.

Atualize o fornecedor para ativar o SCIM

Para ativar o SCIM para um fornecedor, faça o seguinte:

OIDC

      gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --location=LOCATION \
          --scim-usage=enabled-for-groups
    

Substitua o seguinte:

  • PROVIDER_ID: o ID do fornecedor do Workload Identity Pool
  • WORKFORCE_POOL_ID: o ID do conjunto de trabalhadores
  • LOCATION: a localização do conjunto de trabalhadores

SAML

      gcloud iam workforce-pools providers update-saml PROVIDER_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --location=LOCATION \
          --scim-usage=enabled-for-groups
    

Substitua o seguinte:

  • PROVIDER_ID: o ID do fornecedor do Workload Identity Pool
  • WORKFORCE_POOL_ID: o ID do conjunto de trabalhadores
  • LOCATION: a localização do conjunto de trabalhadores

Mapeie atributos de SCIM e tokens

Tem de mapear os atributos de forma consistente, tanto no fornecedor do Workforce Identity Pool como no inquilino SCIM configurado para o fornecedor. Para o fornecedor do Workload Identity Pool, usa a flag --attribute-mapping e, para o inquilino SCIM, usa a flag --claim-mapping. O atributo do IdP mapeado para google.subject para os utilizadores tem de referir-se exclusivamente à mesma identidade, quer esteja definido num token ou num mapeamento SCIM. Para saber mais sobre o mapeamento de atributos quando usa o SCIM, consulte a secção Suporte do SCIM. A tabela seguinte mostra como mapear atributos em reivindicações de tokens e atributos SCIM:

Atributo Google Mapeamento do fornecedor do Workforce Identity Pool Mapeamento de inquilinos SCIM
google.subject assertion.oid user.externalId
google.subject assertion.email user.emails[0].value
google.subject assertion.email.lowerAscii() user.emails[0].value.lowerAscii()
google.subject assertion.preferred_username user.userName
google.group certifique-se de que atualiza o seu fornecedor com --scim-usage=enabled-for-groups N/A group.externalId

Force a eliminação de um inquilino SCIM

Para forçar a eliminação de um inquilino SCIM, faça o seguinte:

  1. Se a opção --scim-usage=enabled-for-groups estiver definida para o seu fornecedor, desative-a na configuração do fornecedor:
              gcloud iam workforce-pools providers update-oidc
              --provider=PROVIDER_ID \
              --workforce-pool=WORKFORCE_POOL_ID \
              --location= global
              --scim-usage=SCIM_USAGE_UNSPECIFIED
            

    Substitua o seguinte:

    • PROVIDER_ID: o ID do fornecedor do Workload Identity Pool
    • WORKFORCE_POOL_ID: o ID do conjunto de trabalhadores

  2. Elimine o inquilino SCIM:
      gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \
          --workforce-pool=WORKFORCE_POOL_ID \
          --provider=PROVIDER_ID \
          --hard-delete \
          --location=global
    

    Substitua o seguinte:

    • SCIM_TENANT_ID: o ID do inquilino SCIM a eliminar
    • WORKFORCE_POOL_ID: o ID do conjunto de trabalhadores
    • PROVIDER_ID: o ID do fornecedor do Workload Identity Pool
    Para saber mais sobre o SCIM, incluindo a eliminação de inquilinos SCIM, consulte o artigo Suporte do SCIM.

O que se segue?