Si tu proveedor de identidad (IdP) admite el Sistema para la administración de identidades entre dominios (SCIM), puedes configurarlo para aprovisionar y administrar usuarios y grupos en Google Cloud.
Funciones
La compatibilidad con SCIM de la federación de identidades de personal proporciona las siguientes capacidades:
- Sincronización de identidades: Sincroniza usuarios y grupos de tu IdP externo con Google Cloud para mantener una vista integral de las identidades del personal.
- Fuente principal de reclamos: Cuando SCIM está habilitado para un proveedor de personal, Google Cloud usa los usuarios y grupos de SCIM sincronizados como la fuente de confianza para los atributos del usuario y las membresías de grupo para la evaluación de políticas de IAM.
- Autocompletado de identidad: Habilita el autocompletado de usuarios y grupos cuando se otorga acceso y se comparten recursos (como notebooks y agentes) en Gemini Enterprise.
Consideraciones
Cuando usas la compatibilidad con SCIM de la federación de identidades de personal, se aplican las siguientes consideraciones:
- Debes configurar un grupo y un proveedor de identidades de los trabajadores antes de configurar un arrendatario de SCIM.
- Cada grupo de identidades de trabajadores admite solo un arrendatario de SCIM, vinculado a un solo proveedor.
No puedes habilitar el uso de SCIM (
--scim-usage) en ningún otro proveedor del mismo grupo. Para configurar un nuevo arrendatario de SCIM en el mismo grupo de identidades de personal, primero debes borrar el existente. Para borrar un usuario de SCIM, usa uno de los siguientes métodos:- Borrado no definitivo (predeterminado): Borrar un usuario de SCIM inicia un período de borrado no definitivo de 30 días. Durante este período, el arrendatario está oculto y no se puede usar, y no puedes crear un arrendatario de SCIM nuevo en el mismo grupo de identidades de la fuerza laboral.
- Borrado definitivo: Para borrar de forma permanente e inmediata un arrendatario de SCIM, usa la marca
--hard-deletecon el comando de borrado. Esta acción es irreversible y te permite crear un nuevo arrendatario de SCIM en el mismo grupo de identidades de la fuerza laboral de inmediato, sin esperar el período de retención de 30 días. Como alternativa, puedes crear un grupo de identidades de personal y un inquilino de SCIM nuevos, o bien usar un grupo de identidades de personal que no se haya configurado previamente con un inquilino de SCIM.
- Modos de uso de SCIM (
--scim-usage):enabled-for-groups(Gemini Enterprise): Usa grupos sincronizados con SCIM para la autorización de IAM y la evaluación de políticas. Los atributos del usuario seguirán proviniendo de los tokens de acceso. Solo se evalúan las asignaciones degoogle.subjectygoogle.group.enabled-for-users-groups(Looker) (Vista previa): Utiliza datos de usuarios y grupos sincronizados con SCIM como fuente de reclamos para la autorización de IAM y los flujos de trabajo de acceso con OAuth. Evalúagoogle.subject,google.groupy todos los reclamos de usuario configurados (comogoogle.display_name,google.profile_photo,google.email,google.posix_usernameyattribute.KEYpersonalizados).
- Exclusividad mutua: El parámetro de configuración
--scim-usage=enabled-for-users-groups(vista previa) es mutuamente exclusivo con los atributos adicionales (extra_attributes_oauth2_client) y los atributos extendidos (extended_attributes_oauth2_client). - Cuando usas SCIM, asignas atributos tanto en el proveedor del grupo de identidades para cargas de trabajo como en el arrendatario de SCIM. El atributo
google.subjectdebe hacer referencia de forma única a las mismas identidades. Especificasgoogle.subjecten el proveedor de grupos de identidades de personal con la marca--attribute-mappingy en el arrendatario de SCIM con la marca--claim-mapping. Asignar valores de identidad no únicos puede hacer que Google Cloud trate diferentes identidades del IdP como la misma identidad. Como resultado, el acceso que se otorga a una identidad de usuario o grupo se puede extender a otros, pero revocar el acceso de uno podría no quitarlo de todos. - Si habilitas el uso de SCIM en un proveedor sin un arrendatario de SCIM adjunto, los intentos de acceso fallarán porque Google Cloud no se puede encontrar un arrendatario de SCIM para ese proveedor.
- Aplicación de la unicidad: Google Cloud valida y aplica la unicidad en los atributos asignados a
google.subject(usuarios) ygoogle.group(grupos) en un arrendatario de SCIM. Si los atributos asignados que aprovisiona tu IdP generan valores duplicados paragoogle.subjectogoogle.groupdurante la sincronización, el aprovisionamiento falla con un error HTTP409 Conflict. Si un atributo asignado se evalúa como nulo o vacío, el aprovisionamiento falla con un error de400 Bad Requestde HTTP. - Límites de tamaño de los atributos: El tamaño máximo para los atributos de usuario asignados serializados (sin incluir
google.group) es de 16 kB. Si los atributos asignados superan este límite, fallarán los intentos de acceso. - Límite de tokens de SCIM: Cada arrendatario de SCIM admite un máximo de dos tokens de SCIM (por ejemplo, para admitir la rotación de tokens sin tiempo de inactividad). Si tienes dos tokens, borra uno existente antes de crear uno nuevo.
- La API de SCIM (
iamscim.googleapis.com) está sujeta a cuotas de frecuencia que difieren de las cuotas estándar de la API de recursos de IAM. De forma predeterminada, las solicitudes de lectura y escritura se limitan a 3,000 solicitudes por inquilino de SCIM por organización por minuto. Para obtener más información, consulta Cuotas y límites.
Asignación de reclamaciones
Cuando configuras SCIM, defines asignaciones de reclamaciones (--claim-mapping) en el usuario de SCIM para asignar atributos de usuarios y grupos de SCIM a atributos de Google.
Atributos Google Cloud compatibles para la asignación de reclamaciones
En la siguiente tabla, se enumeran los atributos de Google Cloud que puedes asignar en tu arrendatario de SCIM (--claim-mapping) con Common Expression Language (CEL):
| AtributoGoogle Cloud | Requisito | Descripción | Expresiones y límites admitidos |
|---|---|---|---|
google.subject |
Obligatorio |
Es el identificador único del usuario que se autentica. El atributo subyacente del IdP que se usa para completar |
Se restringe a las siguientes expresiones básicas (o con .lowerAscii()):
Longitud máxima: 127 bytes. Nota: Esta asignación es inmutable una vez que se crea el usuario de SCIM. Para actualizarla, debes borrar de forma permanente y volver a crear el usuario de SCIM. |
google.group |
Obligatorio para los grupos de SCIM | Es el identificador único de la pertenencia a un grupo que se sincronizó con SCIM. | Se restringe a las siguientes expresiones básicas (o con .lowerAscii()):
Nota: Esta asignación es inmutable una vez que se crea el usuario de SCIM. Para actualizarla, debes borrar de forma permanente y volver a crear el usuario de SCIM. |
google.display_name |
Opcional | Es un atributo que establece el nombre del usuario que accedió a la consola de Google Cloud . No se puede usar en las políticas de permiso de IAM. | Se asigna a un atributo de cadena (como user.displayName o user.name.formatted). La longitud máxima es de 100 bytes. |
google.profile_photo |
Opcional | Es la URL de la foto en miniatura del usuario que se ve como su foto de perfil en la consola de Google Cloud . No se puede usar en las políticas de permiso de IAM. | Debe evaluarse como una cadena de URL válida (como user.photos.filter(p, p.type == 'thumbnail')[0].value o user.photos[0].value). |
google.email |
Opcional | Es un atributo que se usa para asignar direcciones de correo electrónico del IdP a productos integrados con la integración de clientes de OAuth de la federación de identidades del personal. No se puede usar en las políticas de permiso de IAM. | Se asigna a un atributo de correo electrónico (como user.emails.filter(e, e.type == 'work')[0].value o user.emails[0].value). |
google.posix_username |
Opcional | Cadena de nombre de usuario única que cumple con POSIX y se usa para la conexión SSH en el navegador y el Acceso al SO con la federación de identidades de personal. Este atributo no se puede usar en las políticas de permiso de IAM. | La longitud máxima es de 32 caracteres. |
attribute.KEY |
Opcional |
Son atributos personalizados de tu IdP que puedes usar para definir tu estrategia de autorización en una política de permisos de IAM. Reemplaza KEY por el nombre del atributo que deseas usar. Por ejemplo, puedes definir un atributo personalizado como |
Hasta 50 reglas de asignación de atributos personalizados El tamaño máximo por regla es de 256 caracteres. |
Comportamiento según el uso de SCIM del proveedor (--scim-usage)
La evaluación de las asignaciones de reclamos de SCIM depende del modo --scim-usage configurado en el proveedor de grupo de identidades para la fuerza laboral:
enabled-for-groups(Gemini Enterprise): Solo se evalúan las asignaciones degoogle.subjectygoogle.group. Se ignoran las asignaciones de reclamos de usuario adicionales en--claim-mapping.enabled-for-users-groups(Looker) (versión preliminar): Evalúagoogle.subject,google.groupy todos los reclamos de usuario configurados (comogoogle.display_name,google.profile_photo,google.email,google.posix_usernameyattribute.<var>KEY</var>personalizados).
Ejemplo de asignaciones para la coherencia del tema
Como se describe en Atributos admitidos para la asignación de reclamaciones, el atributo subyacente del IdP que se usa para propagar google.subject debe ser idéntico en la asignación del proveedor (--attribute-mapping) y en el inquilino de SCIM (--claim-mapping). En la siguiente tabla, se muestran ejemplos de referencia:
| Atributo de Google | Asignación de proveedores de grupos de identidades del personal | Asignación de usuarios de SCIM (SCIM) |
|---|---|---|
google.subject |
assertion.oid (ID de Entra) |
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() |
Extremos compatibles y no compatibles
El servicio SCIM de IAM (iamscim.googleapis.com) implementa el protocolo SCIM 2.0 (RFC 7644) y procesa solicitudes en el baseUri de tu arrendatario de SCIM:
https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID
En este URI, SCIM_TENANT_UID es el identificador único de tu arrendatario de SCIM.
El servicio SCIM de IAM admite los siguientes extremos del protocolo SCIM estándar relativos al arrendatario baseUri:
/Users: Administrar recursos del usuario Operaciones admitidas:Create,Get,Update,Delete,PatchyPut./Groups: Administrar recursos del grupo Operaciones admitidas:Create,Get,Update,DeleteyPatch. El métodoPUTno se admite para los grupos./Schemas: Recupera información del esquema./ServiceProviderConfig: Recupera la configuración del proveedor de servicios.
No se admiten los siguientes extremos del protocolo SCIM:
/Me/Bulk/Search/ResourceTypes
Limitaciones
En las siguientes secciones, se describen las limitaciones y las desviaciones de la implementación de SCIM de la federación de identidades para la fuerza laboral con respecto a las especificaciones de SCIM (RFC 7643 y 7644).
Limitaciones de las funciones del protocolo
Compatibilidad con filtros: Cuando enumeras usuarios o grupos con los extremos
/Userso/Groups, las expresiones de filtro solo admiten el operadoreq(igual a). Puedes combinar varios filtroseqconand. No se admiten otros operadores de filtro de SCIM, comoco(contiene) osw(comienza con).Paginación: La API de IAM SCIM no admite la paginación estándar para enumerar usuarios o grupos.
startIndex: Este parámetro siempre es1. La API devuelve hasta 100 resultados, independientemente del valor que proporciones parastartIndex.itemsPerPage: La cantidad máxima de recursos que se devuelven en una sola respuesta es 100.totalResults: La API no devuelve el recuento total real de los recursos coincidentes. El campototalResultsde la respuesta siempre es igual a la cantidad de elementos que se muestran en esa respuesta, con un máximo de 100.
Get Group and list Groups without filter: Las APIs de
GetGroupyListGroupsdevuelven una lista de miembros vacía. Para recuperar los miembros de un grupo específico, usa la API deListGroupscon un filtro de miembros.Respuesta de JSON que no cumple con los requisitos con tokens no válidos: Las solicitudes que contienen un token de API no válido devuelven un código de estado
HTTP 401de Google Cloud. La respuesta no es un JSON válido, como lo requiere la especificación de SCIM.
Limitaciones del comportamiento de SCIM
Identificadores inmutables: Los valores de los atributos de SCIM que se asignan a
google.subjectogoogle.groupse tratan como identificadores inmutables dentro de Google Cloud. Si necesitas cambiar estos valores, debes borrar de forma permanente al usuario o grupo de tu IdP y, luego, volver a crearlo con el valor nuevo.Identificadores únicos y no vacíos: Google Cloud aplica la unicidad en los valores asignados a
google.subjectygoogle.groupen un arrendatario de SCIM. La sincronización de atributos asignados que generan valores duplicados paragoogle.subjectogoogle.groupfalla con un error HTTP409 Conflict. Los atributos asignados que se evalúan como nulos o vacíos fallan con un error HTTP400 Bad Request.Requisito de un solo correo electrónico: Para que la sincronización de SCIM se realice correctamente, cada usuario debe tener exactamente una dirección de correo electrónico de tipo
work. El aprovisionamiento o las actualizaciones fallarán si tu IdP envía varios correos electrónicos o si el único correo electrónico proporcionado no es del tipowork.Transformaciones que no distinguen mayúsculas de minúsculas: Se admiten transformaciones limitadas de Common Expression Language (CEL) para las asignaciones de reclamaciones de SCIM. Solo se admite
.lowerAscii()para las comparaciones que no distinguen mayúsculas de minúsculas parauser.userNameyuser.emails[0].value.
Limitaciones de los atributos
En las siguientes secciones, se describe la compatibilidad con atributos para usuarios, grupos y la extensión del esquema de usuario empresarial.
Atributos de usuario
En la siguiente tabla, se enumeran los atributos del usuario y su disponibilidad en las declaraciones de la federación de identidades de personal:
| Atributo | Atributos secundarios | Compatible con el aprovisionamiento de SCIM | Limitaciones | Compatible con --claim-mapping |
|---|---|---|---|---|
userName |
N/A | Sí | N/A | Sí |
name |
formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix |
Sí | N/A | Sí |
displayName |
N/A | Sí | N/A | Sí |
nickName |
N/A | Sí | N/A | Sí |
profileUrl |
N/A | Sí | N/A | Sí |
title |
N/A | Sí | N/A | Sí |
userType |
N/A | Sí | N/A | Sí |
preferredLanguage |
N/A | Sí | N/A | Sí |
locale |
N/A | Sí | N/A | Sí |
timezone |
N/A | Sí | N/A | Sí |
active |
N/A | Sí | N/A | Sí |
password |
N/A | No | N/A | No |
emails |
display, type, value, primary |
Sí | Solo se admite el tipo de correo electrónico work. |
Sí |
phoneNumbers |
display, type, value, primary |
Sí | N/A | Sí |
ims |
display, type, value |
Sí | N/A | Sí |
photos |
display, type, value |
Sí | N/A | Sí |
addresses |
formatted, streetAddress, locality, region, postalCode, country |
Sí | N/A | Sí |
groups |
N/A | No | N/A | No |
entitlements |
display, type, value |
Sí | N/A | Sí |
roles |
type, value |
Sí | display no es compatible. |
Sí |
x509Certificates |
type, value |
Sí | display no es compatible. |
No |
Atributos del grupo
En la siguiente tabla, se enumeran los atributos de grupo y su disponibilidad en las declaraciones de la federación de identidades de personal:
| Atributo | Subatributos admitidos | Compatible con --claim-mapping |
|---|---|---|
displayName |
N/A | Sí |
externalId |
N/A | Sí |
members |
value, type, $ref, display |
No |
Atributos de extensión del esquema de usuario empresarial
En la siguiente tabla, se detalla la compatibilidad con la extensión del esquema de usuario empresarial:
| Atributo | Subatributos admitidos | Compatible con --claim-mapping |
|---|---|---|
employeeNumber |
N/A | Sí |
costCenter |
N/A | Sí |
organization |
N/A | Sí |
division |
N/A | Sí |
department |
N/A | Sí |
manager |
value, $ref, displayName |
Sí ($ref solo se admite en el aprovisionamiento de SCIM, no en --claim-mapping) |
¿Qué sigue?
- Configura SCIM en Microsoft Entra ID
- Configura SCIM en Okta
- Soluciona problemas de aprovisionamiento de SCIM
- Registro de auditoría de SCIM de IAM