Neste guia, mostramos como configurar a federação de identidade da força de trabalho com o Microsoft Entra ID e gerenciar o acesso ao Google Cloud. Os usuários da identidade do ID do Microsoft Entra podem acessar os serviços do Google Cloud que oferecem suporte à federação de identidade da força de trabalho.
Antes de começar
Você precisa ter uma organização do Google Cloud configurada.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
No Microsoft Entra ID, verifique se os tokens de ID estão ativados para fluxo implícito. Para mais informações, consulte Ativar o fluxo implícito.
Para fazer login, seu IdP precisa fornecer informações de autenticação assinadas. Os IdPs OIDC precisam fornecer um JWT, e as respostas do IdP SAML precisam ser assinadas.
Para receber informações importantes sobre mudanças na sua organização ou nos produtos do Google Cloud, forneça os Contatos essenciais. Para mais detalhes, consulte as informações gerais da federação de identidade de colaboradores.
Funções exigidas
Para receber as permissões necessárias para configurar a federação de identidade de colaboradores,
peça ao administrador para conceder a você o papel do IAM
Administrador de pool de colaboradores do IAM (roles/iam.workforcePoolAdmin
) na organização.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Como alternativa, o papel básico de Proprietário do IAM (roles/owner
) também inclui permissões para a federação de identidade de colaboradores.
Não conceda papéis básicos em um ambiente de produção, recomendamos que você faça isso em um
ambiente de desenvolvimento ou teste.
Criar um pool de identidades da força de trabalho
Console
Para criar o pool de identidades da força de trabalho, faça o seguinte:
No console do Google Cloud, acesse a página Pools de identidade da força de trabalho:
Clique em Criar pool e faça o seguinte:
No campo Nome, digite o nome de exibição do pool. O ID do pool é derivado automaticamente do nome à medida que você digita e é exibido no campo Nome. Para atualizar o ID do pool, clique em Editar ao lado dele.
Opcional: em Descrição, insira uma descrição do pool.
A duração da sessão é definida por padrão. Para inserir uma duração personalizada da sessão, clique em Editar. A duração da sessão, que determina por quanto tempo os tokens de acesso do Google Cloud, as sessões de login do console (federado) e o login da CLI gcloud deste pool de forças de trabalho são válidas. A duração precisa ser maior que 15 minutos (900s) e menor que 12 horas (43200s). Se a duração da sessão não for definida, o padrão será de uma hora (3.600 segundos).
Para criar o pool no estado ativado, verifique se a opção Pool ativado está ativada.
Para criar o pool de identidades da força de trabalho, clique em Próxima.
gcloud
Para criar o pool de identidade da força de trabalho, 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:
WORKFORCE_POOL_ID
: um ID que você quer representar no seu pool de forças de trabalho do Google Cloud. Para informações sobre como formatar o ID, consulte a seção Parâmetros de consulta na documentação da API.ORGANIZATION_ID
: o ID numérico da organização do Google Cloud.DISPLAY_NAME
: opcional. Um nome de exibição para o pool de identidade da força de trabalho.DESCRIPTION
: opcional. Uma descrição do pool de identidade da força de trabalho.SESSION_DURATION
: opcional. A duração da sessão, que determina por quanto tempo os tokens de acesso do Google Cloud, as sessões de login do, console (federado) e o login da gcloud CLI deste pool de força de trabalho são válidos. A duração precisa ser maior que 15 minutos (900s) e menor que 12 horas (43200s). Se a duração da sessão não for definida, o padrão será de uma hora (3.600 segundos).
Criar um app do Microsoft Entra ID
Esta seção mostra as etapas para criar um app do Microsoft Entra ID usando o portal de administrador do Microsoft Entra. Veja mais detalhes em O que é autenticação.
Os pools de identidade da força de trabalho aceitam a federação usando os protocolos OIDC e SAML.
OIDC
Para criar um registro de app da Microsoft que use o protocolo OIDC, siga estas etapas:
- Faça login no portal do administrador do Microsoft Entra.
- Acesse Identidade > Aplicativos > Registros de aplicativos.
Para começar a configurar o registro do app, faça o seguinte:
- Clique em New registration.
- Digite o nome do app.
- Em Tipos de contas compatíveis, selecione uma opção.
Na seção Redirecionar URI, na lista suspensa Selecione uma plataforma, selecione Web. No campo de texto, insira um URL de redirecionamento. Seus usuários serão redirecionados para esse URL após o login. Se você estiver configurando o acesso ao console (federado), use o seguinte formato de URL:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Substitua:
WORKFORCE_POOL_ID
: o ID do pool de força de trabalho criado anteriormente neste guia.WORKFORCE_PROVIDER_ID
: um ID de provedor de identidade de força de trabalho de sua escolha. Por exemplo:azure-ad-oidc-provider
Para informações sobre como formatar o ID, consulte a seção Parâmetros de consulta na documentação da API.
Para criar o registro do app, clique em Register.
Opcional: para configurar uma reivindicação de grupos, faça o seguinte:
- Acesse o registro do app Microsoft Entra ID.
- Clique em Configuração do token.
- Clique em Adicionar declaração de grupos. Para usar o mapeamento de atributo de exemplo que será
fornecido posteriormente neste guia, você precisa criar um atributo
department
personalizado. - Selecione os tipos de grupo a serem retornados. Veja mais detalhes em Como configurar declarações opcionais nos grupos.
SAML
Para criar um aplicativo da Microsoft que use o protocolo SAML, faça o seguinte:
- Faça login no Portal do Microsoft Azure.
- Acesse Azure Active Directory > Aplicativos empresariais.
Para começar a configurar o aplicativo empresarial, faça o seguinte:
- Clique em Novo aplicativo > Criar seu próprio aplicativo.
- Digite o nome do app.
- Clique em Criar.
- Acesse Logon único > SAML.
Atualize a Configuração básica de SAML da seguinte maneira:
No campo Identificador (ID da entidade), insira o seguinte valor:
https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
No campo URL de resposta (URL do serviço de declaração do consumidor), insira um URL de redirecionamento. Seus usuários serão redirecionados para esse URL após o login. Se você estiver configurando o acesso ao console (federado), use o seguinte formato de URL:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Substitua:
WORKFORCE_POOL_ID
: o ID do pool de identidade da força de trabalho que você criou anteriormente neste guia.WORKFORCE_PROVIDER_ID
: um ID de provedor de identidade de força de trabalho de sua escolha. Por exemplo:azure-ad-oidc-provider
Para informações sobre como formatar o ID, consulte a seção Parâmetros de consulta na documentação da API.
Se você quiser ativar o login iniciado pelo IdP, defina o campo Relay State com o seguinte valor:
https://console.cloud.google/
Para salvar a configuração do app SAML, clique em Save.
Opcional: para configurar uma declaração de grupos, faça o seguinte. Para usar o mapeamento de atributo de exemplo que será fornecido posteriormente neste guia, você precisa criar um atributo
department
personalizado.- Acesse o app Microsoft Entra ID.
- Clique em Single sign-on.
- Na seção Atributos e declarações, clique em Editar.
- Clique em Adicionar uma reivindicação de grupo.
- Selecione o tipo de grupo a ser retornado. Veja mais detalhes em Adicionar declarações de grupo a tokens de apps SAML que usam a configuração de SSO.
Criar o provedor de pool de identidade de colaboradores do Microsoft Entra ID
Nesta seção, descrevemos como criar um provedor de pool de identidade da força de trabalho para permitir que os usuários do IdP acessem o Google Cloud. É possível configurar o provedor para usar o protocolo OIDC ou SAML.
Criar um provedor de pool de força de trabalho OIDC
Para criar um provedor de pool de identidade da força de trabalho para a integração do app Microsoft Entra ID, usando o protocolo OIDC, faça o seguinte:
Para encontrar o URI do emissor do app Microsoft Entra ID, faça o seguinte:
- Acesse o registro do app Microsoft Entra ID.
- Clique em Endpoints.
- Abra o documento de metadados do OpenID Connect em uma nova guia.
- No JSON, copie o valor de
issuer
.
Para encontrar o ID do cliente do app Microsoft Entra ID, faça o seguinte:
- Acesse o registro do app Microsoft Entra ID.
- Em ID do aplicativo (cliente), copie o valor.
Para criar um provedor de pool de identidades de colaboradores do OIDC para login baseado na Web, siga estas etapas:
Console
Fluxo de códigos
Para criar um provedor do OIDC que usa o fluxo do código de autorização para login baseado na Web, siga estas etapas:
Para conseguir a chave secreta do cliente do Microsoft Entra ID, faça o seguinte:
Acesse o registro do app Microsoft Entra ID.
Em Certificados e chaves secretas, clique na guia Chaves secretas do cliente.
Para adicionar uma chave secreta do cliente, clique em + Nova chave secreta do cliente.
Na caixa de diálogo Adicionar uma chave secreta do cliente, insira as informações conforme necessário.
Para criar a chave secreta do cliente, clique em Adicionar.
Na guia Chaves secretas dos clientes, encontre a nova chave secreta do cliente.
Na coluna Valor da nova chave secreta do cliente, clique em content_copy Copiar.
No console do Google Cloud, para criar um provedor OIDC que usa o fluxo do código de autorização, faça o seguinte:
No console do Google Cloud, acesse a página Pools de identidade da força de trabalho:
Na tabela Pools de identidade da força de trabalho, selecione o pool em que você quer criar o provedor.
Na tabela Provedores, clique em Adicionar provedor.
Em Selecionar um protocolo, selecione Open ID Connect (OIDC).
Em Criar um provedor de pool, faça o seguinte:
- Em Nome, digite um nome para o provedor.
- Em Emissor (URL), insira o URI do emissor. O URI do emissor do OIDC precisa estar em um formato de URI válido e começar com
https
. por exemplo,https://example.com/oidc
. - Digite o ID do cliente, o ID do cliente OIDC registrado
no seu IdP OIDC. o ID precisa corresponder à declaração
aud
do JWT emitido pelo IdP. - Para criar um provedor ativado, verifique se Provedor ativado está ativado.
- Clique em Continuar.
Em Tipo de resposta, faça o seguinte. O tipo de resposta é usado apenas para um fluxo de Logon único baseado na Web.
- Em Tipo de resposta, selecione Código.
- Em Chave secreta do cliente, digite a chave secreta do cliente no IdP.
Em Comportamento das reivindicações de declaração, selecione uma das seguintes opções:
- Token de ID e informações do usuário
- Somente o token de ID
Clique em Continuar.
Em Configurar provedor, é possível configurar um mapeamento e uma condição de atributo. Para criar um mapeamento de atributo, faça o seguinte. É possível fornecer o nome do campo do IdP ou uma expressão formatada em CEL que retorne uma string.
Obrigatório: no OIDC 1, digite 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
epreferred_username
os atributos do Google Cloudgoogle.subject
,google.groups
egoogle.display_name
, respectivamente.Opcional: para adicionar outros mapeamentos de atributos, faça o seguinte:
- Clique em Adicionar mapeamento.
- No Google n, em que n é um número, insira uma das chaves compatíveis com o Google Cloud. de dois minutos.
- No campo OIDC n correspondente, insira o nome do campo específico do IdP a ser mapeado, no formato CEL.
Para criar uma condição de atributo, faça o seguinte:
- Clique em Adicionar condição.
- Em Condições do atributo, insira uma condição no formato CEL. Por exemplo, para limitar o atributo
ipaddr
a um determinado intervalo de IP que possa ser definido a condiçãoassertion.ipaddr.startsWith('98.11.12.')
.
Para criar o provedor, clique em Enviar.
Fluxo implícito
Para criar um provedor OIDC que usa um fluxo implícito para login baseado na Web, faça o seguinte:
No console do Google Cloud, acesse a página Pools de identidade da força de trabalho:
Na tabela Pools de identidade da força de trabalho, selecione o pool em que você quer criar o provedor.
Na tabela Provedores, clique em Adicionar provedor.
Em Selecionar um protocolo, selecione Open ID Connect (OIDC).
Em Criar um provedor de pool, faça o seguinte:
- Em Nome, digite um nome para o provedor.
- Em Emissor (URL), insira o URI do emissor. O URI do emissor do OIDC precisa estar em um formato de URI válido e começar com
https
. por exemplo,https://example.com/oidc
. - Digite o ID do cliente, o ID do cliente OIDC registrado
no seu IdP OIDC. o ID precisa corresponder à declaração
aud
do JWT emitido pelo IdP. - Para criar um provedor ativado, verifique se Provedor ativado está ativado.
- Clique em Continuar.
Em Tipo de resposta, faça o seguinte. O tipo de resposta é usado apenas para um fluxo de Logon único baseado na Web.
- Em Tipo de resposta, selecione Token de ID.
- Clique em Continuar.
Em Configurar provedor, é possível configurar um mapeamento e uma condição de atributo. Para criar um mapeamento de atributo, faça o seguinte. É possível fornecer o nome do campo do IdP ou uma expressão formatada em CEL que retorne uma string.
Obrigatório: no OIDC 1, digite 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
epreferred_username
os atributos do Google Cloudgoogle.subject
,google.groups
egoogle.display_name
, respectivamente.Opcional: para adicionar outros mapeamentos de atributos, faça o seguinte:
- Clique em Adicionar mapeamento.
- No Google n, em que n é um número, insira uma das chaves compatíveis com o Google Cloud. de dois minutos.
- No campo OIDC n correspondente, insira o nome do campo específico do IdP a ser mapeado, no formato CEL.
Para criar uma condição de atributo, faça o seguinte:
- Clique em Adicionar condição.
Em Condições do atributo, insira uma condição no formato CEL. Por exemplo, para limitar o atributo
ipaddr
a um determinado intervalo de IP que possa ser definido a condiçãoassertion.ipaddr.startsWith('98.11.12.')
.
Para criar o provedor, clique em Enviar.
gcloud
Para criar um provedor compatível com o protocolo OIDC, faça o seguinte:
Fluxo de códigos
Para criar um provedor do OIDC que usa o fluxo do código de autorização para login baseado na Web, siga estas etapas:
No app Microsoft Entra ID, para acessar a chave secreta do cliente, faça o seguinte:
Acesse o registro do app Microsoft Entra ID.
Em Certificados e chaves secretas, clique na guia Chaves secretas do cliente.
Para adicionar uma chave secreta do cliente, clique em + Nova chave secreta do cliente.
Na caixa de diálogo Adicionar uma chave secreta do cliente, insira as informações conforme necessário.
Para criar a chave secreta do cliente, clique em Adicionar.
Na guia Chaves secretas dos clientes, encontre a nova chave secreta do cliente.
Na coluna Valor da nova chave secreta do cliente, clique em content_copy Copiar.
No console do Google Cloud, para criar um provedor OIDC que usa o fluxo de código, faça o seguinte:
gcloud iam workforce-pools providers create-oidc 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" \ --location=globalSubstitua:
PROVIDER_ID
: um ID de provedor exclusivo. O prefixogcp-
é reservado e não pode ser usado em um ID de pool ou de provedor.WORKFORCE_POOL_ID
: o ID do pool de identidades de colaboradores para conectar seu IdP.DISPLAY_NAME
é um nome de exibição fácil de usar para o provedor. Por exemplo,idp-eu-employees
.DESCRIPTION
: uma descrição opcional do provedor de colaboradores. Por exemplo,IdP for Partner Example Organization employees
ISSUER_URI
: o URI do emissor do OIDC, em um formato de URI válido, que começa comhttps
, por exemplo,https://example.com/oidc
. Observação: por motivos de segurança,ISSUER_URI
precisa usar o esquema HTTPS.OIDC_CLIENT_ID
: o ID do cliente do OIDC registrado no IdP do OIDC; o ID precisa corresponder à declaraçãoaud
do JWT emitido pelo IdP.OIDC_CLIENT_SECRET
: a chave secreta do cliente do OIDCWEB_SSO_ADDITIONAL_SCOPES
: escopos extras opcionais a serem enviados ao IdP do OIDC para o console (federado) ou o login baseado no navegador da CLI da gcloudATTRIBUTE_MAPPING
: um mapeamento de atributo. 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
epreferred_username
os atributos do Google Cloudgoogle.subject
,google.groups
egoogle.display_name
, respectivamente.ATTRIBUTE_CONDITION
: uma condição de atributo opcional. Por exemplo, para limitar o atributoipaddr
a um determinado intervalo de IP, defina a condiçãoassertion.ipaddr.startsWith('98.11.12.')
JWK_JSON_PATH
: um caminho opcional para JWKs do OIDC de upload local. Se esse parâmetro não for fornecido, o Google Cloud usará o caminho/.well-known/openid-configuration
do IdP para gerar as JWKs que contêm as chaves públicas. Para mais informações sobre JWKs OIDC enviados localmente, consulte Gerenciar JWKs OIDC.
locations/global/workforcePools/enterprise-example-organization-employees
.
Fluxo implícito
Para criar um provedor do OIDC que usa o fluxo implícito para login na Web, siga estas etapas:
Para ativar o token de ID no app Microsoft Entra ID, siga estas etapas:
- Acesse o registro do app Microsoft Entra ID.
- Em Autenticação, marque a caixa de seleção Token de ID.
- Clique em Salvar.
Para criar o provedor, execute o seguinte comando:
gcloud iam workforce-pools providers create-oidc 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" \ --location=global
Substitua:
PROVIDER_ID
: um ID de provedor exclusivo. O prefixogcp-
é reservado e não pode ser usado em um ID de pool ou de provedor.WORKFORCE_POOL_ID
: o ID do pool de identidades de colaboradores para conectar seu IdP.DISPLAY_NAME
é um nome de exibição fácil de usar para o provedor. Por exemplo,idp-eu-employees
.DESCRIPTION
: uma descrição opcional do provedor de colaboradores. Por exemplo,IdP for Partner Example Organization employees
ISSUER_URI
: o URI do emissor do OIDC, em um formato de URI válido, que começa comhttps
, por exemplo,https://example.com/oidc
. Observação: por motivos de segurança,ISSUER_URI
precisa usar o esquema HTTPS.OIDC_CLIENT_ID
: o ID do cliente do OIDC registrado no IdP do OIDC; o ID precisa corresponder à declaraçãoaud
do JWT emitido pelo IdP.WEB_SSO_ADDITIONAL_SCOPES
: escopos extras opcionais a serem enviados ao IdP do OIDC para o console (federado) ou o login baseado no navegador da CLI da gcloudATTRIBUTE_MAPPING
: um mapeamento de atributo. 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
epreferred_username
os atributos do Google Cloudgoogle.subject
,google.groups
egoogle.display_name
, respectivamente.ATTRIBUTE_CONDITION
: uma condição de atributo opcional. Por exemplo, para limitar o atributoipaddr
a um determinado intervalo de IP, defina a condiçãoassertion.ipaddr.startsWith('98.11.12.')
JWK_JSON_PATH
: um caminho opcional para JWKs do OIDC de upload local. Se esse parâmetro não for fornecido, o Google Cloud usará o caminho/.well-known/openid-configuration
do IdP para gerar as JWKs que contêm as chaves públicas. Para mais informações sobre JWKs OIDC enviados localmente, consulte Gerenciar JWKs OIDC.
locations/global/workforcePools/enterprise-example-organization-employees
.
Criar um provedor de pool da força de trabalho SAML
No IdP SAML, registre um novo aplicativo para a federação de identidade da força de trabalho do Google Cloud.
Defina o público-alvo das declarações SAML. Geralmente, é o campo
SP Entity ID
na configuração do IdP. Defina-o para o seguinte URL:https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
Se você planeja configurar o acesso do usuário ao console, no IdP SAML, defina o URL de redirecionamento ou o campo do URL do serviço de declaração de consumidor (ACS) para o seguinte URL:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Consulte Configurar o acesso do usuário ao console para mais detalhes sobre como configurar o login do console.
No Google Cloud, crie um provedor de pool de identidade da força de trabalho SAML usando o documento de metadados SAML do IdP. É possível fazer o download do documento XML de metadados SAML no seu IdP. O documento precisa incluir pelo menos o seguinte:
- Um código de entidade SAML para seu IdP.
- O URL de Logon único do seu IdP.
- Pelo menos uma chave pública de assinatura. Consulte Requisitos de chave mais adiante neste guia para saber mais sobre chaves de assinatura.
Console
Para configurar o provedor SAML usando o console do Google Cloud, faça o seguinte:
No console do Google Cloud, acesse a página Pools de identidade da força de trabalho:
Na tabela Pools de identidade da força de trabalho, selecione o pool em que você quer criar o provedor.
Na tabela Provedores, clique em Adicionar provedor.
Em Selecionar um protocolo, escolha SAML.
Em Criar um provedor de pool, faça o seguinte:
Em Nome, digite um nome para o provedor.
Opcional: em Descrição, digite uma descrição para o provedor.
Em Arquivo de metadados do IdP (XML), selecione o arquivo XML de metadados gerado anteriormente neste guia.
Verifique se o Provedor ativado está ativado.
Clique em Continuar.
Em Configurar provedor, faça o seguinte:
Em Mapeamento de atributos, insira uma expressão CEL para
google.subject
.Opcional: para inserir outros mapeamentos, clique em Adicionar mapeamento e insira outros, por exemplo:
Este exemplo mapeia os atributos do IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
eassertion.attributes.costcenter[0]
os atributos do Google Cloudgoogle.subject
,google.groups
, egoogle.costcenter
, respectivamente.Opcional: para adicionar uma condição de atributo, clique em Adicionar condição e insira uma expressão CEL que represente uma condição de atributo. Por exemplo, para limitar o atributo
ipaddr
a um determinado intervalo de IP, defina a condiçãoassertion.attributes.ipaddr.startsWith('98.11.12.')
. Este exemplo de condição garante que apenas os usuários com um endereço IP que comece com98.11.12.
possam fazer login usando esse provedor de força de trabalho.Clique em Continuar.
Para criar o provedor, clique em Enviar.
gcloud
Para salvar os metadados SAML do app Microsoft Entra ID, faça o seguinte:
- Acesse o app Microsoft Entra ID.
- Clique em Single sign-on.
- Na seção Certificados SAML, faça o download do XML de metadados de federação.
- Salve os metadados como um arquivo XML local.
Para criar o provedor de pool de identidade da força de trabalho SAML, execute o seguinte comando:
gcloud iam workforce-pools providers create-saml 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" \
--location=global
Substitua:
PROVIDER_ID
: o ID do provedor.WORKFORCE_POOL_ID
: o ID do pool de identidade de colaboradores.DISPLAY_NAME
: o nome de exibiçãoDESCRIPTION
: uma descriçãoXML_METADATA_PATH
: o caminho para o arquivo de metadados formatado em XML com metadados de configuração para o provedor de identidade SAML.ATTRIBUTE_MAPPING
: o mapeamento de atributo. Por exemplo: Este exemplo mapeia os atributos do IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
eassertion.attributes.costcenter[0]
os atributos do Google Cloudgoogle.subject
,google.groups
, egoogle.costcenter
, respectivamente.ATTRIBUTE_CONDITION
: uma condição de atributo opcional. Por exemplo, para limitar o atributoipaddr
a um determinado intervalo de IP, defina a condiçãoassertion.attributes.ipaddr.startsWith('98.11.12.')
. Este exemplo de condição garante que apenas os usuários com um endereço IP que comece com98.11.12.
possam fazer login usando esse provedor de força de trabalho.
Opcional: aceitar declarações SAML criptografadas do seu IdP
Para permitir que o IdP do SAML 2.0 produza declarações SAML criptografadas que podem ser aceitas pela federação de identidade de colaboradores, faça isto:
- Na federação de identidade de colaboradores, faça isto:
- Crie um par de chaves assimétricas para seu provedor de pool de identidade de colaboradores.
- Faça o download de um arquivo de certificado que contém a chave pública.
- Configure o IdP do SAML para que use a chave pública para criptografar as declarações SAML emitidas.
- No IdP, faça isto:
- Ative a criptografia de declaração, também conhecida como criptografia de token.
- Faça upload da chave pública que você criou na federação de identidade de colaboradores.
- Confirme se o IdP produz declarações SAML criptografadas.
Criar chaves de criptografia de declaração SAML da federação de identidade de colaboradores
Nesta seção, mostramos como criar um par de chaves assimétricas que permite que a federação de identidade de colaboradores aceite declarações SAML criptografadas.
O Google Cloud usa a chave privada para descriptografar as declarações SAML emitidas pelo IdP. Para criar um par de chaves assimétricas para uso com criptografia SAML, execute o seguinte comando. Para saber mais, consulte Algoritmos de criptografia SAML compatíveis.
gcloud iam workforce-pools providers keys create KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
Substitua:
KEY_ID
: o nome da chave que você escolherWORKFORCE_POOL_ID
: o ID do poolPROVIDER_ID
: o ID do provedor-
KEY_SPECIFICATION
: a especificação da chave, que pode ser uma destas:rsa-2048
,rsa-3072
ersa-4096
.
Depois que o par de chaves for criado, execute o comando a seguir para fazer o download da chave pública em um arquivo de certificado. Somente a federação de identidade de colaboradores tem acesso à chave privada.
gcloud iam workforce-pools providers keys describe KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
Substitua:
KEY_ID
: o nome da chaveWORKFORCE_POOL_ID
: o ID do poolPROVIDER_ID
: o ID do provedorCERTIFICATE_PATH
: o caminho para gravar o certificado em, por exemplo,saml-certificate.cer
ousaml-certificate.pem
Configurar o IdP compatível com SAML 2.0 para emitir declarações SAML criptografadas
Para configurar o Microsoft Entra ID para criptografar tokens SAML, consulte Configurar a criptografia de tokens SAML do Azure Active Directory.
Depois de configurar o IdP para criptografar declarações SAML, recomendamos que você confira se as declarações geradas estão realmente criptografadas. Mesmo com a criptografia da declaração SAML configurada, a federação de identidade de colaboradores ainda pode processar declarações de texto simples.
Excluir chaves de criptografia da federação de identidade de colaboradores
Para excluir as chaves de criptografia SAML, execute o seguinte comando:gcloud iam workforce-pools providers keys delete KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location global
Substitua:
KEY_ID
: o nome da chaveWORKFORCE_POOL_ID
: o ID do poolPROVIDER_ID
: o ID do provedor
Algoritmos de criptografia SAML compatíveis
A federação de identidade de colaboradores é compatível com os seguintes algoritmos de transporte de chaves:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
A federação de identidade de colaboradores é compatível com os seguintes algoritmos de criptografia em blocos:
Gerenciar o acesso aos recursos do Google Cloud
Nesta seção, mostramos um exemplo que mostra como gerenciar o acesso aos recursos do Google Cloud pelos usuários da federação de identidade da força de trabalho.
Neste exemplo, você concede um papel do Identity and Access Management (IAM) em um projeto de amostra. Os usuários podem fazer login e usar esse projeto para acessar os produtos do Google Cloud.
É possível gerenciar papéis do IAM para identidades únicas, um grupo de identidades ou um pool inteiro. Para mais informações, consulte Representar usuários do pool de identidades de força de trabalho nas políticas do IAM.
Para identidade única
Para conceder o papel de Administrador do Storage (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:
TEST_PROJECT_ID
: ID do projetoWORKFORCE_POOL_ID
: o ID do pool de identidade da força de trabalhoSUBJECT_VALUE
: a identidade do usuário
Como usar o atributo de departamento mapeado
Para conceder o papel de administrador do Storage (roles/storage.admin
) a todas as identidades em
um departamento específico do 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:
TEST_PROJECT_ID
: ID do projetoWORKFORCE_POOL_ID
: o ID do pool de identidade de colaboradoresDEPARTMENT_VALUE
: o valor mapeado deattribute.department
Como usar grupos mapeados
Para conceder o papel 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:
TEST_PROJECT_ID
: ID do projetoWORKFORCE_POOL_ID
: o ID do pool de identidade de colaboradoresGROUP_ID
: um grupo na declaraçãogoogle.groups
mapeada.
Fazer login e testar o acesso
Nesta seção, faça login como usuário do pool de identidades de força de trabalho e testa se tem acesso a um produto do Google Cloud.
Fazer login
Nesta seção, mostramos como fazer login como um usuário federado e acessar os recursos do Google Cloud.
Login no console (federado)
Para fazer login no console de federação de identidade de colaboradores do Google Cloud, também conhecido como console (federado), faça o seguinte:
-
Acesse a página de login no console (federada).
-
Digite o nome do provedor no formato a seguir:
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
- Insira as credenciais do usuário no Microsoft Entra ID, se solicitado.
Login baseado no navegador da CLI gcloud
Para fazer login na CLI gcloud usando um fluxo de login baseado em navegador, faça o seguinte:
Criar um arquivo de configuração
Para criar o arquivo de configuração de login, execute o comando a seguir. Também é possível ativar o arquivo como padrão para a gcloud CLI usando a flag --activate
.
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE
Substitua:
WORKFORCE_POOL_ID
: o ID do pool da força de trabalhoPROVIDER_ID
: o ID do provedorLOGIN_CONFIG_FILE
: um caminho para o arquivo de configuração especificado. Por exemplo,login.json
.
O arquivo contém os endpoints usados pela CLI gcloud para ativar o fluxo de autenticação baseado em navegador e definir o público como o provedor criado anteriormente neste guia. O arquivo não contém informações confidenciais.
A saída será assim:
{ "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/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", }
Fazer login usando autenticação baseada no navegador
Para usar a autenticação de login baseada em navegador, use um dos seguintes métodos:
-
Se você usou a flag
--activate
ao criar o arquivo de configuração ou ativou esse arquivo comgcloud config set auth/LOGIN_CONFIG_FILE
, a gcloud CLI fará uso dele automaticamente:gcloud auth login
-
Para fazer login especificando o local do arquivo de configuração, execute o seguinte comando:
gcloud auth login --login-config=LOGIN_CONFIG_FILE
-
Para usar uma variável de ambiente para especificar o local do arquivo de
configuração, defina
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
como o caminho de configuração.
Desativar o login baseado no navegador
Para interromper o uso do arquivo de configuração de login, faça o seguinte:
-
Se você usou a flag
--activate
ao criar o arquivo de configuração ou ativou esse arquivo comgcloud config set auth/LOGIN_CONFIG_FILE
, execute o seguinte comando para cancelar a definição:gcloud config unset auth/login_config_file
-
Limpe a variável de ambiente
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
, se ela estiver definida.
Login headless da CLI gcloud
Para fazer login no Microsoft Entra ID com a CLI gcloud, faça o seguinte:
OIDC
Siga as etapas em Enviar a solicitação de login. Faça login do usuário no seu app com o ID do Microsoft Entra usando o OIDC.
Copie o token de ID do parâmetro
id_token
do URL de redirecionamento e salve-o em um arquivo em um local seguro da sua máquina local. Na etapa posterior, você define PATH_TO_OIDC_ID_TOKEN como o caminho para esse arquivo.Gere um arquivo de serviço de configuração semelhante ao abaixo executando o seguinte comando:
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/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:
WORKFORCE_POOL_ID
: o ID do pool da força de trabalho.PROVIDER_ID
: o ID do provedor.PATH_TO_OIDC_ID_TOKEN
: o caminho para o local do arquivo em que o token do IdP é armazenado.WORKFORCE_POOL_USER_PROJECT
: o número ou o ID do projeto usado para a cota e o faturamento. O principal precisa ter a permissãoserviceusage.services.use
neste projeto.
Quando o comando é concluído, o arquivo de configuração a seguir é criado pelo Microsoft Entra ID:
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/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" } }
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 do arquivo de saída de uma etapa anterior.
A CLI gcloud posta suas credenciais de forma transparente no endpoint do Serviço de token de segurança. No endpoint, ela é trocado por tokens temporários de acesso ao Google Cloud.
Agora é possível executar comandos da CLI do gcloud para o Google Cloud.
SAML
Faça login de um usuário no app Microsoft Entra ID e receba a resposta SAML.
Salve a resposta SAML retornada pelo Microsoft Entra ID em um local seguro da máquina local e armazene o caminho da seguinte maneira:
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
Gere um arquivo de configuração abaixo. Execute este 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:
WORKFORCE_PROVIDER_ID
: o ID do provedor de pool de identidade de colaboradores criado anteriormente neste guiaWORKFORCE_POOL_ID
: o ID do pool de identidade de colaboradores criado anteriormente neste guiaSAML_ASSERTION_PATH
: o caminho do arquivo de declaração SAMLPROJECT_ID
: o ID do projeto;
O arquivo de configuração gerado é 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" }
Para fazer login no
gcloud
usando a troca de tokens, execute o seguinte comando:gcloud auth login --cred-file=config.json
Em seguida, o
gcloud
troca suas credenciais do Microsoft Entra ID por tokens de acesso temporários do Google Cloud, permitindo que você faça outras chamadas degcloud
para o Google Cloud.Você verá uma saída semelhante a esta:
Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/
WORKFORCE_POOL_ID
/subject/USER_ID
].Para listar as contas credenciadas e a conta ativa, execute o seguinte comando:
gcloud auth list
Testar acesso
Agora você tem acesso aos serviços do Google Cloud que oferecem suporte
à federação de identidade da força de trabalho e a que você tem acesso. No início deste guia,
você concedeu o papel de Administrador do Storage a todas as identidades
de um departamento específico no projeto TEST_PROJECT_ID
. Agora, você pode
testar se você tem acesso listando buckets do Cloud Storage.
Console (federado)
Agora é possível executar comandos da CLI do gcloud para o Google Cloud.
- Acesse a página do Cloud Storage.
- Verifique se é possível ver a lista de buckets para o
TEST_PROJECT_ID
.
CLI da gcloud
Para listar os buckets e objetos do Cloud Storage para o projeto a que você tem acesso, execute o seguinte comando:
gcloud storage ls --project="TEST_PROJECT_ID"
O principal precisa ter a permissão serviceusage.services.use
no
projeto especificado.
Excluir usuários
A federação de identidade de colaboradores cria metadados e recursos de usuários para identidades de usuários federadas. Se você optar por excluir usuários, no seu IdP, por exemplo, também será necessário excluir explicitamente esses recursos no Google Cloud. Para fazer isso, consulte Excluir usuários da federação de identidade de colaboradores e os dados deles.
Talvez você veja que os recursos continuam associados a um usuário que foi excluído. Isso ocorre porque a exclusão de metadados e recursos do usuário requer uma operação de longa duração. Depois de iniciar uma exclusão da identidade de um usuário, os processos que o usuário iniciou antes da exclusão podem continuar em execução até que sejam concluídos ou cancelados.
A seguir
- Excluir os usuários da federação de identidade de colaboradores e respectivos dados
- Saiba quais produtos do Google Cloud são compatíveis com a federação de identidade de colaboradores
- Configurar o acesso do usuário ao console (federado)