A federação de identidade de colaboradores permite usar o PingFederate como um provedor de identidade (IdP) para autenticar seus colaboradores no Cloud de Confiance by S3NS. Depois de configurar a integração com a Linguagem de marcação para autorização de segurança (SAML) 2.0, os usuários federados podem fazer login nos serviços do Cloud de Confiance que oferecem suporte à federação de identidade de colaboradores.
Antes de começar
- Configure uma organização do Cloud de Confiance .
-
Defina a variável de ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAINcomos3nsapis.fr. -
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud init - Para fazer login, seu IdP precisa fornecer informações de autenticação assinadas. As respostas do IdP SAML precisam ser assinadas.
- Para receber informações importantes sobre mudanças na sua organização ou nos produtos doCloud de Confiance , forneça os Contatos essenciais. Para mais detalhes, consulte as informações gerais da federação de identidade de colaboradores.
Custos
A federação de identidade de colaboradores está disponível como um recurso sem custo financeiro. No entanto, o registro de auditoria detalhado da federação de identidade de colaboradores usa o Cloud Logging. Para saber mais sobre os preços do Logging, consulte Preços do Google Cloud Observability.
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 usando papéis personalizados ou outros papéis predefinidos.
Se você configurar permissões em um ambiente de desenvolvimento ou teste, mas não em um
ambiente de produção, poderá conceder o papel básico de Proprietário do IAM
(roles/owner). Esse papel também inclui permissões para a federação de identidade de colaboradores.
Criar um pool de identidades da força de trabalho
gcloud
Para criar o pool de identidade de colaboradores, 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 Cloud de Confiance . O ID do pool precisa ser globalmente exclusivo em todos os pools de identidade de colaboradores no Cloud de Confiance. 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 Cloud de Confiance para o pool de identidade de colaboradores. Os pools de identidade de colaboradores estão disponíveis em todos os projetos e pastas da organização.DISPLAY_NAME: opcional. Um nome de exibição para o pool de identidade de colaboradores.DESCRIPTION: opcional. : uma descrição do pool de identidade de colaboradoresSESSION_DURATION: opcional. A duração da sessão, expressa como um número anexado coms, por exemplo,3600s. A duração da sessão determina por quanto tempo os Cloud de Confiance tokens de acesso, as sessões de login do console (federado) e as sessões de login da CLI gcloud deste pool de força de trabalho são válidos. A duração padrão da sessão é de uma hora (3.600 segundos). O valor da duração da sessão precisa estar entre 15 minutos (900s) e 12 horas (43200s).
Console
Para criar o pool de identidades de colaboradores, faça o seguinte:
No console do Cloud de Confiance , acesse a página Pools de identidade da força de trabalho:
Selecione a organização do pool de identidade de colaboradores. Os pools de identidade de colaboradores estão disponíveis em todos os projetos e pastas de uma organização.
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.
Para criar o pool de identidades de colaboradores, clique em Próxima.
A duração da sessão do pool de identidade de colaboradores é de uma hora (3.600 segundos) por padrão. A duração da sessão determina por quanto tempo os Cloud de Confiance tokens de acesso, o console (federado) e as sessões de login da CLI gcloud desse pool de força de trabalho são válidos. Depois de criar o pool, é possível atualizar o pool para definir uma duração da sessão personalizada. A duração da sessão precisa ser de 15 minutos (900s) a 12 horas (43200s).
Criar um aplicativo do PingFederate
Nesta seção, mostramos como criar uma integração de aplicativo do PingFederate.
Para configurar um aplicativo do PingFederate que use o protocolo SAML 2.0, faça o seguinte no PingFederate:
- Defina o ID da entidade SAML 2.0 do IdP do PingFederate. Para mais detalhes, consulte Como especificar informações de federação.
Crie uma conexão de SP SAML 2.0, consulte Como escolher um tipo de conexão de SP e faça o seguinte:
- Em Connection Type, selecione Browser SSO Profiles e SAML 2.0 protocol.
- Em Importar metadados, selecione Nenhum.
Em Informações gerais, defina o ID da entidade do parceiro (ID da conexão) como:
https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDEm Perfis SAML, ative o SSO iniciado pelo provedor de serviços. Se você planeja usar o Logon único (SSO) iniciado pelo IdP, também pode ativá-lo.
Em Attribute Contract, defina os atributos personalizados (por exemplo, e-mail e grupos) que serão transmitidos na declaração. Esses atributos podem ser usados no Cloud de Confiance para criar políticas de gerenciamento de acesso mais tarde.
Em Attribute Contract Fulfillment, verifique se
SAML_SUBJECTestá mapeado para um campo com um valor exclusivo para cada usuário. Por exemplo, um endereço de e-mail geralmente é exclusivo para cada usuário, não muda e é usado para se referir a um usuário específico nas políticas de gerenciamento de acesso do Cloud de Confiance .Para configurar o login no console (federado), em URL do serviço de declaração do consumidor, adicione o seguinte URL de endpoint:
https://auth.cloud.s3nscloud.fr/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDSubstitua:
WORKFORCE_POOL_ID: o ID do pool de força de trabalho que você criou anteriormente.WORKFORCE_PROVIDER_ID: o ID do provedor de colaboradores que você vai criar mais tarde.
Defina Binding para esse endpoint como POST.
Para ativar o login no console (federado), em Vinculações SAML permitidas, selecione Redirecionar.
Em Política de assinatura, selecione Assinar resposta conforme necessário.
Salve e ative a conexão.
Usar atributos
Nesta seção, descrevemos como usar atributos da declaração SAML.
Use contratos de atributo para especificar os atributos personalizados nas declarações SAML geradas. Depois de configurar os atributos, use-os no Cloud de Confiance by S3NS para criar políticas de gerenciamento de acesso. Para saber mais sobre contratos de atributos, consulte Contratos de atributos na documentação do servidor do PingFederate.
Por exemplo, neste guia, usamos o PingOne como repositório de dados para o PingFederate e mapeamos os contratos de atributos email, firstName e groups usando os atributos de usuário do repositório de dados do PingOne, da seguinte forma:
| Atributo do contrato | Valor |
|---|---|
email |
email |
firstName |
name.given |
groups |
memberOfGroupIDs |
Criar o provedor de pool de identidades de colaboradores do PingFederate
Nesta seção, descrevemos como criar um provedor de pool de identidade de colaboradores para permitir que os usuários do IdP acessem o Cloud de Confiance. É possível configurar o provedor para usar o protocolo SAML.
Criar um provedor de pool de identidades de colaboradores SAML 2.0
Para configurar o aplicativo SAML, faça o seguinte:
gcloud
Para criar o provedor de pool de identidade de colaboradores 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" \ --location=globalSubstitua:
WORKFORCE_PROVIDER_ID: um ID de provedor.WORKFORCE_POOL_ID: o ID do pool de identidade da força de trabalho.DISPLAY_NAME: um nome de exibição.DESCRIPTION: uma descrição.XML_METADATA_PATH: o caminho para o arquivo de metadados formatado em XML do PingFederate.ATTRIBUTE_MAPPING: o mapeamento de atributo. Por exemplo,google.subject=assertion.subject,google.groups=assertion.attributes.groups,attribute.department=assertion.attributes.department[0].ATTRIBUTE_CONDITION: uma condição de atributo opcional. Por exemplo, para limitar o atributoipaddra um determinado intervalo de IP, defina a condição comoassertion.ipaddr.startsWith('98.11.12.').
Esse comando atribui
subject,groupsedepartmentna declaração SAML agoogle.subject,google.groupseattribute.department, respectivamente. A condição de atributo também garante que apenas usuários em um determinado intervalo de IP possam fazer login usando esse provedor de força de trabalho.Console
Para configurar o provedor SAML usando o console do Cloud de Confiance , faça o seguinte:
- No console do Cloud de Confiance , acesse a página Pools de identidade de colaboradores: Acessar pools de identidade de colaboradores
- Na tabela Pools de identidade de colaboradores, selecione o pool em que você quer criar o provedor.
- Na seção Provedores, clique em Adicionar provedor.
- Na lista Selecionar um fornecedor de provedor, selecione Provedor de identidade genérico.
- Em Selecionar um protocolo de autenticação, escolha SAML.
- Na seção Criar um provedor, 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 do PingFederate.
- Para criar um provedor ativado, verifique se Ativar provedor está ativado.
- Clique em Continuar.
- Na seção Compartilhar as informações do seu provedor, clique em Continuar.
- Opcional: para ativar o registro de auditoria detalhado, na seção Configurar provedor, em Registro detalhado, clique no botão Ativar registro de auditoria do valor do atributo.
O registro de auditoria detalhado da federação de identidade de colaboradores registra as informações recebidas do IdP no Logging. A geração de registros de auditoria detalhada pode ajudar a resolver problemas na configuração do provedor do pool de identidades de colaboradores. Para saber como resolver problemas de mapeamento de atributos com a geração de registros de auditoria detalhada, consulte Erros gerais de mapeamento de atributos. Para saber mais sobre os preços do Logging, consulte Preços do Google Cloud Observability.
Para desativar a geração de registros de auditoria detalhados para um provedor de pool de identidades de colaboradores, deixe a opção Ativar a geração de registros de auditoria do valor do atributo desativada ao criar o provedor. Para desativar a geração de registros de auditoria detalhada, também é possível atualizar o provedor.
- Para criar o provedor, clique em Enviar.
Depois que o provedor for criado, você será redirecionado para a página de atributos do provedor.
Para configurar mapeamentos e condições de atributos, faça o seguinte:
- Quando solicitado, faça login no IdP externo para validar os mapeamentos de atributos padrão.
Na página de atributos do provedor, confira e edite os mapeamentos e as condições de atributos:
Para adicionar ou editar mapeamentos de atributos, faça o seguinte:
- Clique em Adicionar mapeamento para incluir um novo ou editar os atuais.
- No campo Google n, em que n é um número, selecione uma chave compatível com o Cloud de Confiance.
No campo SAML n correspondente, insira o nome do atributo do IdP ou uma expressão CEL. Por exemplo:
google.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
Para adicionar uma condição de atributo, faça o seguinte:
- Clique em Adicionar condição.
- No campo Condições do atributo, insira uma condição no formato CEL. Por exemplo,
assertion.ipaddr.startsWith('98.11.12.').
Para validar os mapeamentos, clique em Salvar e buscar o token novamente.
Para concluir a configuração, clique em Salvar e sair.
Gerenciar o acesso aos recursos do Cloud de Confiance
Nesta seção, mostramos como gerenciar o acesso aos recursos do Cloud de Confiance para usuários do PingFederate.
O projeto de amostra usado neste guia pode ser diferente do projeto usado para configurar a federação de identidade de colaboradores.
É possível gerenciar papéis para identidades únicas, um grupo de identidades ou um pool inteiro. Para mais informações, consulte Identificadores principais de colaboradores para políticas de permissão.
Usar atributos de departamento mapeados
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: o ID do projeto;WORKFORCE_POOL_ID: o ID do pool de identidade da força de trabalho.DEPARTMENT_VALUE: o valor mapeado deattribute.department.
Usar grupos mapeados
Para conceder o papel de Administrador do Storage (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: o ID do projeto;WORKFORCE_POOL_ID: o ID do pool de identidade da força de trabalho.GROUP_ID: um grupo na declaraçãogoogle.groupsmapeada.
Fazer login e testar o acesso
Nesta seção, você vai fazer login como usuário do pool de identidades de colaboradores e testar seu acesso.
Fazer login
login no console (federado)
Para fazer login no console da federação de identidade de colaboradores do Cloud de Confiance by S3NS , 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 suas credenciais do PingFederate quando solicitado.
Login baseado no navegador da CLI gcloud
Para fazer login na CLI gcloud usando um fluxo de login baseado em navegador:
Execute o comando a seguir para criar um arquivo de configuração de login:
Linux e macOS
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud iam workforce-pools create-login-config ` locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID ` --output-file=LOGIN_CONFIG_PATH
Substitua:
WORKFORCE_POOL_ID: o ID do pool de federação de identidade de colaboradores.WORKFORCE_PROVIDER_ID: o ID do provedor de federação de identidade de colaboradores.-
LOGIN_CONFIG_PATH: o caminho para gravar o arquivo de configuração de login. Por exemplo,login-config.json.
O arquivo de configuração de login contém os endpoints usados pela CLI gcloud para ativar o fluxo de autenticação baseado em navegador e definir o público-alvo como o IdP que foi configurado no provedor do pool de identidade de colaboradores. O arquivo não contém informações confidenciais.
O conteúdo do arquivo de configuração de login é semelhante ao seguinte:
{ "universe_domain": "s3nsapis.fr", "universe_cloud_web_domain": "cloud.s3nscloud.fr", "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.s3nscloud.fr/authorize", "token_url": "https://sts.s3nsapis.fr/v1/oauthtoken", "token_info_url": "https://sts.s3nsapis.fr/v1/introspect" }
Aponte para o arquivo de configuração de login com uma variável de ambiente, uma propriedade na configuração ativa da CLI gcloud ou use-o diretamente com o comando gcloud auth login:
Variável de ambiente
Para usar o arquivo de configuração de login com uma variável de ambiente, siga estas instruções:
-
Defina a variável de ambiente
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEcomo o caminho do arquivo de configuração de login. -
Execute este comando:
gcloud auth login
- A CLI gcloud faz referência à variável de ambiente para encontrar o arquivo de configuração de login e, em seguida, inicia o processo de autenticação. Siga o fluxo baseado no navegador para autenticar e autorizar a CLI gcloud a acessar recursos em seu nome para comandos futuros.
Para interromper o uso do arquivo de configuração de login para comandos gcloud auth login, limpe
a variável de ambiente CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.
Configuração da CLI gcloud
Para usar o arquivo de configuração de login com uma propriedade de configuração da CLI gcloud, siga estas instruções:
-
Defina a propriedade
auth/login_config_fileda configuração ativa da CLI gcloud como o caminho do arquivo de configuração de login com o seguinte comando:gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
-
Execute este comando:
gcloud auth login
- A CLI gcloud faz referência à propriedade de configuração para encontrar o arquivo de configuração de login e, em seguida, inicia o processo de autenticação. Siga o fluxo baseado em navegador para autenticar e autorizar a CLI gcloud a acessar recursos em seu nome para comandos futuros.
Para interromper o uso do arquivo de configuração de login para comandos gcloud auth login, remova a definição
da propriedade com o seguinte comando:
gcloud config unset auth/login_config_file
gcloud auth login
Para usar o arquivo de configuração de login diretamente com o comando gcloud auth login,
siga estas instruções:
-
Se você usou a flag
--activateao criar o arquivo de configuração de login, execute o seguinte comando:gcloud auth login
-
Se você não usou a flag
--activateao criar o arquivo de configuração de login, execute o seguinte comando:Linux e macOS
gcloud auth login \ --login-config=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud auth login ` --login-config=LOGIN_CONFIG_PATH
Substitua LOGIN_CONFIG_PATH pelo caminho do arquivo de configuração de login.
O comando gcloud auth login armazena as credenciais de acesso no diretório principal. O principal autenticado se torna o principal ativo na configuração ativa da CLI gcloud. A menos que sejam substituídas, a CLI gcloud usa essas credenciais armazenadas para acessar o Cloud de Confiance by S3NS.
Login headless da CLI gcloud
Para fazer login no PingFederate com a CLI gcloud usando o protocolo SAML, faça o seguinte:
- Faça login de um usuário no app PingFederate e receba a resposta SAML.
- Salve a resposta SAML retornada pelo PingFederate em um local seguro da máquina local. Armazene o caminho em uma variável de ambiente, por exemplo:
SAML_ASSERTION_PATH=/path/to/assertion.xml. Gere um arquivo de configuração:
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.jsonSubstitua:
SAML_ASSERTION_PATH: o caminho do arquivo de declaração SAML.PROJECT_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 na CLI gcloud usando a troca de tokens, execute o seguinte comando:
gcloud auth login --cred-file=config.jsonEm seguida, o
gcloudtroca suas credenciais do PingFederate por tokens de acesso temporários do Cloud de Confiance , permitindo que você faça outras chamadas degcloudpara o Cloud de Confiance. O resultado será o seguinte: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 o acesso
Você tem acesso aos serviços do Cloud de Confiance que oferecem suporte à federação de identidade de colaboradores 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 ou grupo específico no projeto TEST_PROJECT_ID. Para testar o acesso, liste os buckets do Cloud Storage.
login no console (federado)
Para verificar seu acesso no console (federado), faça o seguinte:
- Acessar a página do Cloud Storage.
- Verifique se é possível ver a lista de buckets para o projeto
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 alpha storage ls --project="TEST_PROJECT_ID"
O principal precisa ter a permissão serviceusage.services.use no projeto definido na sessão da CLI gcloud: PROJECT_ID.