Este documento descreve como configurar um locatário SCIM em um pool de identidade de colaboradores. Para saber mais sobre o SCIM, consulte Provisionamento do SCIM para a federação de identidade de colaboradores.
Cada pool de identidade de colaboradores oferece suporte a apenas um locatário SCIM. Para configurar um novo locatário SCIM em um pool que já tem um, primeiro é necessário excluir o locatário atual.
A flag --claim-mapping de um locatário SCIM pode conter apenas expressões específicas da Common Expression Language (CEL). Para saber quais expressões são aceitas, consulte Mapear tokens e atributos SCIM.
Para configurar System for Cross-domain Identity Management (SCIM), faça o seguinte:
- Configurar um locatário e um token SCIM no Google Cloud
- Configurar o SCIM no Okta
- Atualizar o provedor para ativar o SCIM
- Verificar a sincronização do SCIM
Configurar um locatário e um token SCIM no Google Cloud
Para configurar um locatário SCIM no Google Cloud, faça o seguinte:
-
Criar um locatário 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:
SCIM_TENANT_ID: um ID para o locatário SCIM.WORKFORCE_POOL_ID: o ID do pool de colaboradores que você criou anteriormente neste documento.PROVIDER_ID: o ID do provedor do pool de identidade de colaboradores que você criou anteriormente neste documento.SCIM_TENANT_DISPLAY_NAME: um nome de exibição para o locatário SCIM.SCIM_TENANT_DESCRIPTION: uma descrição para o locatário SCIM.CLAIM_MAPPING: uma lista separada por vírgulas de mapeamentos de atributos. Para a lista estendida de atributos de mapeamento, consulte Mapear tokens e atributos SCIM. O mapeamento a seguir é recomendado para o Gemini Enterprise:google.subject=user.emails[0].value.lowerAscii(),google.group=group.displayNameO atributo
google.subjectmapeado no locatário SCIM precisa se referir exclusivamente às mesmas identidades mapeadas no atributogoogle.subjectno provedor do pool de identidade de colaboradores usando a flag--attribute-mapping. Depois que o locatário SCIM é criado, não é possível atualizar o mapeamento de declarações. Para substituí-lo, você pode excluir o locatário SCIM e criar um novo imediatamente. Para saber mais sobre as considerações para usar o SCIM, consulte Suporte ao SCIM.
-
Quando o comando for concluído, faça o seguinte:
-
No campo
baseUrida saída, salve todo o URI, que é formatado comohttps://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID. Você precisa fornecer esse URI ao seu IdP. -
Além disso, salve apenas o
SCIM_TENANT_UIDdo URI. Você precisa desse UID para definir uma política de permissão do IAM no locatário SCIM mais tarde neste documento.
-
No campo
-
Criar 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 globalSubstitua:
SCIM_TOKEN_ID: um ID para o token SCIMDISPLAY_NAME: o nome de exibição do token SCIMWORKFORCE_POOL_ID: o ID do pool de colaboradoresSCIM_TENANT_ID: o ID do locatário SCIMPROVIDER_ID: o ID do provedor do pool de identidade de colaboradores
-
Quando o comando
gcloud iam workforce-pools providers scim-tenants tokens createfor concluído, faça o seguinte:-
Na saída, salve o valor de
SCIM_TOKENnosecurityTokencampo. Você precisa fornecer esse token de segurança ao seu IdP. O token de segurança é mostrado apenas nessa saída, e se for perdido, você precisará criar um novo token SCIM. -
Para verificar se
SCIM_TOKENfoi 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 a permissões, execute
gcloud organizations add-iam-policy-binding, descrito em uma etapa posterior. Se o comando for bem-sucedido, você poderá pular essa etapa.
-
-
Defina uma política de permissão do IAM no locatário e no token SCIM. Se o
curlcomando em uma etapa anterior falhou com um erro relacionado a permissões, execute o seguinte comando:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/iam.scimSyncerSubstitua:
- ORGANIZATION_ID: o ID da organização.
- SERVICE_AGENT_EMAIL: o endereço de e-mail do agente de serviço. O endereço de e-mail está no seguinte formato:
o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.com. SCIM_TENANT_UID é retornado quando você cria o locatário SCIM.
Ao provisionar grupos no IdP, verifique se o nome de exibição de cada grupo, conforme fornecido em
o displayName campo, é exclusivo em um locatário SCIM. Para saber mais sobre grupos e
SCIM no Microsoft Entra ID, consulte
Grupos.
Configurar o SCIM no Okta
Para configurar o SCIM no Okta, no aplicativo Okta atual, faça o seguinte:
- Faça login no Admin Console do Okta.
- Acesse Applications > Applications.
Selecione ou crie seu aplicativo:
Se você quiser selecionar um aplicativo atual, faça o seguinte:
- Clique no nome do aplicativo criado usando o modelo da federação de identidade de colaboradores do Google Cloud.
-
Na guia General, faça o seguinte:
- No painel App Settings, clique em Edit.
- No campo Tenant, insira o ID do locatário recebido da CLI gcloud.
- Clique em Concluído.
Se você quiser criar um novo aplicativo, faça o seguinte:
- Clique em Procurar no catálogo de apps.
- No campo Search, insira Google Cloud Workforce Identity Federation e selecione a integração Google Cloud Workforce Identity Federation nos resultados.
Clique em Adicionar integração.
- No campo Application, insira um nome para o app.
- No campo Tenant, insira o ID do locatário recebido da CLI gcloud.
- Clique em Concluído.
-
Na guia Provisioning, faça o seguinte:
No painel Integration, clique em Edit.
- No campo API Token, insira o token SCIM recebido do Google Cloud.
- Para confirmar a validade do token de API, clique em Test Credentials.
- Selecione Import Groups.
- Clique em Salvar.
No painel To App, clique em Edit.
- Selecione Create Users, Update User Attributes e Deactivate users.
- Clique em Salvar.
Atualizar o provedor para ativar o SCIM
Para ativar o SCIM para um provedor, 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:
PROVIDER_ID: o ID do provedor do pool de identidade de colaboradoresWORKFORCE_POOL_ID: o ID do pool de colaboradoresLOCATION: o local do pool de colaboradores
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Substitua:
PROVIDER_ID: o ID do provedor do pool de identidade de colaboradoresWORKFORCE_POOL_ID: o ID do pool de colaboradoresLOCATION: o local do pool de colaboradores
Para verificar a sincronização do SCIM, consulte Verificar a sincronização do SCIM.
Mapear tokens e atributos SCIM
É necessário mapear atributos de forma consistente, tanto no provedor do pool de identidade de colaboradores quanto no locatário SCIM configurado para o provedor. Para o provedor do pool de identidade de colaboradores, use a flag --attribute-mapping e, para o locatário SCIM, use a flag --claim-mapping. O atributo do IdP mapeado para google.subject dos usuários precisa se referir exclusivamente à mesma identidade, seja definida em um token ou em um mapeamento SCIM. Para saber mais sobre o mapeamento de atributos ao usar o SCIM, consulte a
seção Suporte ao SCIM.
A tabela a seguir mostra como mapear atributos em declarações de token e atributos SCIM:
| Atributo do Google | Mapeamento do provedor do pool de identidade de colaboradores | Mapeamento do locatário SCIM |
|---|---|---|
google.subject |
assertion.sub |
user.externalId |
google.subject |
assertion.subject |
user.userName |
google.subject |
assertion.subject.lowerAscii() |
user.userName.lowerAscii() |
google.subject |
assertion.preferred_username |
user.userName |
google.subject |
assertion.preferred_username.lowerAscii() |
user.userName.lowerAscii() |
google.subject |
assertion.email |
user.emails[0].value |
google.subject |
assertion.email.lowerAscii() |
user.emails[0].value.lowerAscii() |
google.group verifique se você atualizou o provedor com --scim-usage=enabled-for-groups |
N/A |
group.displayName |
Verificar a sincronização do SCIM
Depois de configurar o SCIM, você pode usar curl para verificar se os usuários e grupos estão sendo sincronizados corretamente com Google Cloud. Esses comandos exigem um token SCIM válido e o ID do locatário SCIM.
Verificar a sincronização do usuário
Para verificar se um usuário foi sincronizado corretamente, pesquise o userName dele usando o seguinte filtro:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users?filter=userName%20eq%20%22USER_NAME%22"
Exemplo de resposta:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "USER_ID",
"userName": "USER_NAME",
...
}
]
}
Verificar a sincronização do grupo
Para verificar se um grupo foi sincronizado corretamente, pesquise o displayName dele usando o seguinte filtro:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=displayName%20eq%20%22GROUP_NAME%22"
Exemplo de resposta:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Verificar a associação ao grupo
Para verificar se um usuário específico é membro de um grupo, use um filtro que especifique o ID do grupo e o ID do usuário.
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=id%20eq%20%22GROUP_ID%22%20and%20members%20eq%20%22USER_ID%22"
Exemplo de resposta se o usuário for membro:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Exemplo de resposta se o usuário não for membro:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 0,
"Resources": []
}
Observação:para receber o GROUP_ID e o USER_ID, primeiro encontre o grupo e o usuário usando os filtros displayName e userName. Os IDs são retornados no campo id da resposta. Substitua SCIM_TOKEN, SCIM_TENANT_UID, USER_NAME, GROUP_NAME, GROUP_ID e USER_ID pelos valores reais.
Forçar a exclusão de um locatário SCIM
Para forçar a exclusão de um locatário SCIM, faça o seguinte:
- Se
--scim-usage=enabled-for-groupsestiver definido para o provedor, desative-o na configuração do provedor:gcloud iam workforce-pools providers update-oidc PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --location=LOCATION \ --scim-usage=SCIM_USAGE_UNSPECIFIEDSubstitua:
PROVIDER_ID: o ID do provedor do pool de identidade de colaboradoresWORKFORCE_POOL_ID: o ID do pool de colaboradoresLOCATION: o local do pool de colaboradores
- Exclua o locatário SCIM:
gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --provider=PROVIDER_ID \ --hard-delete \ --location=globalSubstitua:
SCIM_TENANT_ID: o ID do locatário SCIM a ser excluídoWORKFORCE_POOL_ID: o ID do pool de colaboradoresPROVIDER_ID: o ID do provedor do pool de identidade de colaboradores
A seguir
- Excluir os usuários da federação de identidade de colaboradores e respectivos dados
- Saiba quais Google Cloud produtos oferecem suporte à federação de identidade de colaboradores
- Configurar o acesso do usuário ao console (federado)