Se o provedor de identidade (IdP) for compatível com o System for Cross-domain Identity Management (SCIM), configure-o para provisionar e gerenciar usuários e grupos no Google Cloud.
Recursos
O suporte ao SCIM da federação de identidade de colaboradores oferece os seguintes recursos:
- Sincronização de identidades:sincroniza usuários e grupos do seu IdP externo com o Google Cloud para manter uma visão geral das identidades de colaboradores.
- Fonte principal para declarações:quando o SCIM está ativado para um provedor de força de trabalho,o Google Cloud usa os usuários e grupos sincronizados do SCIM como fonte de verdade para atributos de usuários e associações a grupos na avaliação de políticas do IAM.
- Preenchimento automático de identidade:permite o preenchimento automático de usuários e grupos ao conceder acesso e compartilhar recursos (como notebooks e agentes) no Gemini Enterprise.
Considerações
Ao usar o suporte a SCIM da federação de identidade de colaboradores, as seguintes considerações se aplicam:
- É necessário configurar um pool e um provedor de identidade de colaboradores antes de configurar um locatário do SCIM.
- Cada pool de identidade da força de trabalho aceita apenas um locatário do SCIM, vinculado a um único provedor.
Não é possível ativar o uso do SCIM (
--scim-usage) em nenhum outro provedor no mesmo pool. Para configurar um novo locatário do SCIM no mesmo pool de identidade de colaboradores, primeiro exclua o locatário atual. Para excluir um locatário do SCIM, use um dos seguintes métodos:- Exclusão reversível (padrão): a exclusão de um locatário do SCIM inicia um período de exclusão reversível de 30 dias. Durante esse período, o locatário fica oculto e não pode ser usado. Além disso, não é possível criar um novo locatário do SCIM no mesmo pool de identidades da força de trabalho.
- Exclusão definitiva:para excluir um locatário do SCIM de forma permanente e imediata,
use a flag
--hard-deletecom o comando de exclusão. Essa ação é irreversível e permite criar um novo locatário do SCIM no mesmo pool de identidades da força de trabalho imediatamente, sem esperar o período de retenção de 30 dias. Como alternativa, crie um pool de identidades de colaboradores e um locatário do SCIM ou use um pool de identidades de colaboradores que não tenha sido configurado anteriormente com um locatário do SCIM.
- Modos de uso do SCIM (
--scim-usage):enabled-for-groups(Gemini Enterprise): usa grupos sincronizados com SCIM para autorização do IAM e avaliação de políticas. Os atributos do usuário continuam sendo originados de tokens de login. Somente os mapeamentosgoogle.subjectegoogle.groupsão avaliados.enabled-for-users-groups(Looker) (Prévia): usa dados de usuários e grupos sincronizados com o SCIM como a fonte de declarações para autorização do IAM e fluxos de trabalho de login do OAuth. Avaliagoogle.subject,google.groupe todas as declarações de usuário configuradas (comogoogle.display_name,google.profile_photo,google.email,google.posix_usernameeattribute.KEYpersonalizadas).
- Exclusão mútua:definir
--scim-usage=enabled-for-users-groups(prévia) é mutuamente exclusivo com atributos extras (extra_attributes_oauth2_client) e atributos estendidos (extended_attributes_oauth2_client). - Ao usar o SCIM, você mapeia atributos no provedor do pool de identidade de colaboradores e no locatário do SCIM. O atributo
google.subjectprecisa se referir de maneira exclusiva às mesmas identidades. Você especificagoogle.subjectno provedor de pool de identidades de colaboradores usando a flag--attribute-mappinge no locatário do SCIM usando a flag--claim-mapping. O mapeamento de valores de identidade não exclusivos pode fazer com que o Google Cloud trate identidades de IdP diferentes como se fossem a mesma. Como resultado, o acesso concedido a um usuário ou grupo pode ser estendido a outros, mas revogar o acesso de um pode não remover de todos. - Se você ativar o uso do SCIM em um provedor sem um locatário do SCIM anexado, as tentativas de login vão falhar porque o Google Cloud não consegue encontrar um locatário do SCIM para esse provedor.
- Aplicação da exclusividade:o Google Cloud valida e aplica a exclusividade nos atributos mapeados para
google.subject(usuários) egoogle.group(grupos) em um locatário do SCIM. Se os atributos mapeados provisionados pelo seu IdP resultarem em valores duplicados paragoogle.subjectougoogle.groupdurante a sincronização, o provisionamento vai falhar com um erro HTTP409 Conflict. Se um atributo mapeado for avaliado como nulo ou vazio, o provisionamento vai falhar com um erro HTTP400 Bad Request. - Limites de tamanho de atributo:o tamanho máximo para atributos de usuário mapeados serializados (excluindo
google.group) é de 16 kB. Se os atributos mapeados excederem esse limite, as tentativas de login vão falhar. - Limite de tokens do SCIM:cada locatário do SCIM aceita um máximo de dois tokens do SCIM (por exemplo, para oferecer suporte à rotação de tokens sem tempo de inatividade). Se você tiver dois tokens, exclua um deles antes de criar um novo.
- A API SCIM (
iamscim.googleapis.com) está sujeita a cotas de taxa que são diferentes das cotas padrão da API de recursos do IAM. Por padrão, as solicitações de leitura e gravação são limitadas a 3.000 por locatário do SCIM por organização por minuto. Para mais informações, consulte Cotas e limites.
Mapeamento de declarações
Ao configurar o SCIM, você define mapeamentos de declarações (--claim-mapping) no locatário do SCIM para mapear atributos de usuário e grupo do SCIM para atributos do Google.
Atributos Google Cloud compatíveis para mapeamento de declarações
A tabela a seguir lista os atributos Google Cloud que podem ser mapeados no seu locatário do SCIM (--claim-mapping) usando a Common Expression Language (CEL):
| AtributoGoogle Cloud | Requisito | Descrição | Expressões e limites aceitos |
|---|---|---|---|
google.subject |
Obrigatório |
Identificador exclusivo do usuário autenticado. O atributo do IdP usado para preencher |
Restrito às seguintes expressões básicas (ou com .lowerAscii()):
Comprimento máximo: 127 bytes. Observação:esse mapeamento é imutável depois que o locatário do SCIM é criado. Para atualizá-lo, é necessário excluir permanentemente e recriar o locatário do SCIM. |
google.group |
Obrigatório para grupos do SCIM | Identificador exclusivo da associação ao grupo sincronizada usando o SCIM. | Restrito às seguintes expressões básicas (ou com .lowerAscii()):
Observação:esse mapeamento é imutável depois que o locatário do SCIM é criado. Para atualizá-lo, é necessário excluir permanentemente e recriar o locatário do SCIM. |
google.display_name |
Opcional | Um atributo que define o nome do usuário conectado no console Google Cloud . Ele não pode ser usado em políticas de permissão do IAM. | Mapeia para um atributo de string, como user.displayName ou user.name.formatted. Tamanho máximo: 100 bytes. |
google.profile_photo |
Opcional | Um URL da miniatura da foto do usuário que aparece como foto do perfil no console do Google Cloud . Ele não pode ser usado em políticas de permissão do IAM. | Precisa ser avaliado como uma string de URL válida (como user.photos.filter(p, p.type == 'thumbnail')[0].value ou user.photos[0].value). |
google.email |
Opcional | Um atributo usado para mapear endereços de e-mail do IdP para produtos integrados usando a integração do cliente OAuth da federação de identidade de colaboradores. Ele não pode ser usado em políticas de permissão do IAM. | Mapeia para um atributo de e-mail, como user.emails.filter(e, e.type == 'work')[0].value ou user.emails[0].value. |
google.posix_username |
Opcional | Uma string de nome de usuário exclusiva compatível com POSIX usada para SSH no navegador e Login do SO com a federação de identidade de colaboradores. Esse atributo não pode ser usado nas políticas de permissão do IAM. | O tamanho máximo é de 32 caracteres. |
attribute.KEY |
Opcional |
Atributos personalizados do seu IdP que podem ser usados para definir sua estratégia de autorização em uma política de permissão do IAM. Substitua KEY pelo nome do atributo que você quer usar. Por exemplo, é possível definir um atributo personalizado como |
Até 50 regras de mapeamento de atributos personalizados. Tamanho máximo por regra: 256 caracteres. |
Comportamento com base no uso do SCIM do provedor (--scim-usage)
A avaliação dos mapeamentos de declarações do SCIM depende do modo --scim-usage configurado no provedor de pool de identidade da força de trabalho:
enabled-for-groups(Gemini Enterprise): somente os mapeamentosgoogle.subjectegoogle.groupsão avaliados. Todos os outros mapeamentos de declarações de usuário em--claim-mappingsão ignorados.enabled-for-users-groups(Looker) (Pré-lançamento): avaliagoogle.subject,google.groupe todas as declarações de usuário configuradas (comogoogle.display_name,google.profile_photo,google.email,google.posix_usernameeattribute.<var>KEY</var>personalizadas).
Exemplos de mapeamentos para consistência de assunto
Conforme descrito em Atributos compatíveis para mapeamento de declarações, o atributo do IdP usado para preencher google.subject precisa ser idêntico no mapeamento do provedor (--attribute-mapping) e no locatário do SCIM (--claim-mapping). A tabela a seguir mostra exemplos de referência:
| Atributo do Google | Mapeamento de provedor de pool de identidade de colaboradores | Mapeamento de locatário do SCIM (SCIM) |
|---|---|---|
google.subject |
assertion.oid (Entra ID) |
user.externalId |
google.subject |
assertion.sub (Okta) |
user.externalId |
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() |
Endpoints compatíveis e incompatíveis
O serviço SCIM do IAM (iamscim.googleapis.com) implementa o
protocolo SCIM 2.0 (RFC 7644) e atende solicitações
no baseUri do seu locatário SCIM:
https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID
Neste URI, SCIM_TENANT_UID é o identificador exclusivo do seu locatário do SCIM.
O serviço SCIM do IAM é compatível com os seguintes endpoints padrão do protocolo SCIM relativos ao locatário baseUri:
/Users: gerenciar recursos do usuário. Operações aceitas:Create,Get,Update,Delete,PatchePut./Groups: gerenciar recursos de grupo. Operações aceitas:Create,Get,Update,DeleteePatch. O métodoPUTnão é compatível com grupos./Schemas: recupera informações do esquema./ServiceProviderConfig: recupere a configuração do provedor de serviços.
Os seguintes endpoints do protocolo SCIM não são compatíveis:
/Me/Bulk/Search/ResourceTypes
Limitações
As seções a seguir descrevem as limitações e os desvios da implementação do SCIM da federação de identidade da força de trabalho em relação às especificações do SCIM (RFC 7643 e 7644).
Limitações do recurso de protocolo
Suporte a filtros:ao listar usuários ou grupos usando os endpoints
/Usersou/Groups, as expressões de filtro só aceitam o operadoreq(igual a). É possível combinar vários filtroseqcomand. Outros operadores de filtro do SCIM, comoco(contém) ousw(começa com), não são compatíveis.Paginação:a API SCIM do IAM não oferece suporte à paginação padrão para listar usuários ou grupos.
startIndex: esse parâmetro é sempre1. A API retorna até 100 resultados, seja qual for o valor fornecido parastartIndex.itemsPerPage: o número máximo de recursos retornados em uma única resposta é 100.totalResults: a API não retorna a contagem total real de recursos correspondentes. O campototalResultsna resposta é sempre igual ao número de itens retornados nela, com um máximo de 100.
Get Group e list Groups sem filtro:as APIs
GetGroupeListGroupsretornam uma lista de membros vazia. Para recuperar membros de um grupo específico, use a APIListGroupscom um filtro de membros.Resposta JSON não compatível com tokens inválidos:solicitações que contêm um token de API inválido retornam um código de status
HTTP 401de Google Cloud. A resposta não é um JSON válido, conforme exigido pela especificação SCIM.
Limitações de comportamento do SCIM
Identificadores imutáveis:os valores de atributos do SCIM mapeados para
google.subjectougoogle.groupsão tratados como identificadores imutáveis em Google Cloud. Se precisar mudar esses valores, exclua permanentemente o usuário ou grupo do IdP e recrie com o novo valor.Identificadores exclusivos e não vazios: Google Cloud impõe a exclusividade em valores mapeados para
google.subjectegoogle.groupem um locatário do SCIM. A sincronização de atributos mapeados que resultam em valores duplicados paragoogle.subjectougoogle.groupfalha com um erro HTTP409 Conflict. Os atributos mapeados que são avaliados como nulos ou vazios falham com um erro HTTP400 Bad Request.Requisito de e-mail único:para que a sincronização do SCIM seja bem-sucedida, cada usuário precisa ter exatamente um endereço de e-mail do tipo
work. O provisionamento ou as atualizações vão falhar se o IdP enviar vários e-mails ou se o e-mail fornecido não for do tipowork.Transformações sem diferenciação de maiúsculas e minúsculas:transformações limitadas da Common Expression Language (CEL) são compatíveis com mapeamentos de declarações do SCIM. Somente
.lowerAscii()é compatível com comparações sem diferenciação de maiúsculas e minúsculas parauser.userNameeuser.emails[0].value.
Limitações de atributos
As seções a seguir descrevem o suporte a atributos para usuários, grupos e a extensão do esquema de usuário empresarial.
Atributos do usuário
A tabela a seguir lista os atributos do usuário e a disponibilidade deles nas declarações da federação de identidade de colaboradores:
| Atributo | Subatributos | Compatível com o provisionamento do SCIM | Limitações | Compatível com --claim-mapping |
|---|---|---|---|---|
userName |
N/A | Sim | N/A | Sim |
name |
formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix |
Sim | N/A | Sim |
displayName |
N/A | Sim | N/A | Sim |
nickName |
N/A | Sim | N/A | Sim |
profileUrl |
N/A | Sim | N/A | Sim |
title |
N/A | Sim | N/A | Sim |
userType |
N/A | Sim | N/A | Sim |
preferredLanguage |
N/A | Sim | N/A | Sim |
locale |
N/A | Sim | N/A | Sim |
timezone |
N/A | Sim | N/A | Sim |
active |
N/A | Sim | N/A | Sim |
password |
N/A | Não | N/A | Não |
emails |
display, type, value, primary |
Sim | Somente o tipo de e-mail work é aceito. |
Sim |
phoneNumbers |
display, type, value, primary |
Sim | N/A | Sim |
ims |
display, type, value |
Sim | N/A | Sim |
photos |
display, type, value |
Sim | N/A | Sim |
addresses |
formatted, streetAddress, locality, region, postalCode, country |
Sim | N/A | Sim |
groups |
N/A | Não | N/A | Não |
entitlements |
display, type, value |
Sim | N/A | Sim |
roles |
type, value |
Sim | display não é compatível. |
Sim |
x509Certificates |
type, value |
Sim | display não é compatível. |
Não |
Atributos do grupo
A tabela a seguir lista os atributos do grupo e a disponibilidade deles nas declarações da federação de identidade de colaboradores:
| Atributo | Subatributos aceitos | Compatível com --claim-mapping |
|---|---|---|
displayName |
N/A | Sim |
externalId |
N/A | Sim |
members |
value, type, $ref, display |
Não |
Atributos de extensão do esquema de usuário empresarial
A tabela a seguir detalha o suporte para a extensão do esquema de usuário empresarial:
| Atributo | Subatributos aceitos | Compatível com --claim-mapping |
|---|---|---|
employeeNumber |
N/A | Sim |
costCenter |
N/A | Sim |
organization |
N/A | Sim |
division |
N/A | Sim |
department |
N/A | Sim |
manager |
value, $ref, displayName |
Sim (o $ref é compatível apenas com o provisionamento do SCIM, não com o --claim-mapping) |
A seguir
- Configurar o SCIM no Microsoft Entra ID
- Configurar o SCIM no Okta
- Solução de problemas de provisionamento do SCIM
- Geração de registros de auditoria do SCIM do IAM