Aprovisionamiento de SCIM para la federación de identidades de personal

Si tu proveedor de identidad (IdP) admite el Sistema para la administración de identidades entre dominios (SCIM), puedes configurarlo para aprovisionar y administrar grupos en Google Cloud.

Funciones

La compatibilidad con SCIM de la federación de identidades de personal proporciona las siguientes funciones:

  • Sincronización de identidades: Sincroniza copias de solo lectura de los datos del usuario desde tu IdP para obtener una vista integral de las propiedades y las membresías del usuario en Google Cloud.

  • Aplanamiento de grupos: SCIM procesa grupos de tu IdP para que todas las membresías directas e indirectas (anidadas) de un usuario se aplanen y se sincronicen con el Google Cloud servicio de membresía de grupos (GMS). Luego, IAM usa estos grupos aplanados para las verificaciones de políticas, lo que supera las restricciones de tamaño que suelen encontrarse en los tokens de IdP.

  • Integración de Gemini Enterprise: Los tenants de SCIM admiten el uso compartido en Gemini Enterprise. El tenant de SCIM habilita dos funciones relacionadas con el uso compartido de notebooks en Gemini Notebook Enterprise:

    • Autocompletar para direcciones de correo electrónico y grupos

    • El uso del nombre del grupo en lugar de su ID de objeto (UUID)

    Para obtener más información, consulta Cómo compartir un notebook con un grupo.

Consideraciones

Cuando usas la compatibilidad con SCIM de la federación de identidades de personal, se aplican las siguientes consideraciones:

  • Debes configurar un grupo de identidades de personal y un proveedor antes de configurar un tenant de SCIM.
  • Cada grupo de identidades de personal admite solo un tenant de SCIM, vinculado a un solo proveedor. No puedes habilitar el uso de SCIM (--scim-usage=enabled-for-groups) en ningún otro proveedor del mismo grupo. Para configurar un tenant de SCIM nuevo en el mismo grupo de identidades de personal, primero debes borrar el existente. Para borrar un tenant de SCIM, usa uno de los siguientes métodos:
    • Borrado no definitivo (predeterminado): Borrar un tenant de SCIM inicia un período de borrado no definitivo de 30 días. Durante este tiempo, el tenant está oculto y no se puede usar, y no puedes crear un tenant de SCIM nuevo en el mismo grupo de identidades de personal.
    • Borrado definitivo: Para borrar un tenant de SCIM de forma permanente y de inmediato, usa la marca --hard-delete con el comando delete. Esta acción es irreversible y te permite crear un tenant de SCIM nuevo en el mismo grupo de identidades de personal de inmediato sin esperar el período de retención de 30 días. Como alternativa, puedes crear un grupo de identidades de personal nuevo y un tenant de SCIM nuevo, o usar un grupo de identidades de personal que no se haya configurado previamente con un tenant de SCIM.
  • Cuando usas SCIM, asignas atributos en el proveedor de grupos de identidades de personal y en el tenant de SCIM. El atributo google.subject debe hacer referencia de forma única a las mismas identidades. Especificas google.subject en el proveedor de grupos de identidades de personal con la marca --attribute-mapping y en el tenant de SCIM con la marca --claim-mapping. La asignación de valores de identidad no únicos puede hacer que trate diferentes identidades de IdP como la misma identidad. Google Cloud Como resultado, el acceso que se otorga a una identidad de usuario o de grupo se puede extender a otras, pero revocar el acceso de una podría no quitarlo de todas.
  • Para usar SCIM para asignar grupos, establece --scim-usage=enabled-for-groups en el proveedor de grupos de identidades de personal que tiene el tenant de SCIM adjunto. Cuando asignas grupos con SCIM, se ignora cualquier asignación de grupos que se defina en ese proveedor en favor de los grupos administrados por SCIM. Cuando se hace referencia a grupos administrados por SCIM, el atributo asignado es google.group, no google.groups. google.groups solo hace referencia a los grupos asignados a tokens. Si habilitas el uso de SCIM en un proveedor que no tiene un tenant de SCIM adjunto, los intentos de acceso a través de ese proveedor fallan en el tiempo de ejecución porque Google Cloud no puede encontrar un tenant de SCIM en la ruta de acceso de ese proveedor.
  • Aplicación de la exclusividad: Google Cloud valida y aplica la exclusividad en los atributos asignados a google.subject (usuarios) y google.group (grupos) en un tenant de SCIM. Si los atributos asignados que aprovisiona tu IdP generan valores duplicados para google.subject o google.group durante la sincronización, el aprovisionamiento falla con un error HTTP 409 Conflict. Si un atributo asignado se evalúa como nulo o vacío, el aprovisionamiento falla con un error HTTP 400 Bad Request.
  • Cuando se usa SCIM, los atributos basados en tokens que se asignan con --attribute-mapping se pueden usar para la autenticación y en los identificadores principales.
  • Para la configuración de Microsoft Entra ID, usa SCIM para habilitar nombres de grupos legibles en Gemini Enterprise.
  • Límite de tokens de SCIM: Cada tenant 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 ya tienes dos tokens y necesitas crear uno nuevo, debes borrar un token existente antes de crear uno nuevo.
  • La API de SCIM (iamscim.googleapis.com) está sujeta a cuotas de frecuencia que difieren de las cuotas de la API de recursos de IAM estándar. De forma predeterminada, las solicitudes de lectura y escritura se limitan a 3,000 solicitudes por tenant de SCIM, por organización y por minuto. Para obtener más información, consulta Cuotas y límites.

Asigna proveedores de OIDC y SAML a la configuración de SCIM

Debe haber coherencia entre la asignación de atributos en la configuración del proveedor de grupos de identidades de personal (--attribute-mapping) y las asignaciones de reclamaciones en el tenant de SCIM (--claim-mapping). El atributo de IdP subyacente que se usa para propagar google.subject (para los usuarios) debe ser el mismo, ya sea que se lea de una reclamación de token o de un atributo de SCIM.

Debido a que --claim-mapping es inmutable una vez que se crea el tenant de SCIM, si necesitas actualizar las asignaciones de reclamaciones (por ejemplo, para agregar la transformación .lowerAscii()), debes borrar de forma definitiva el tenant de SCIM y volver a crearlo con la asignación nueva.

Si estas asignaciones no son coherentes, es posible que los usuarios puedan acceder, pero no se los reconocerá como miembros de sus grupos aprovisionados por SCIM. Por ejemplo, si el proveedor usa assertion.email para google.subject, el tenant de SCIM también debe usar el atributo de SCIM equivalente (por ejemplo, user.emails[0].value) para google.subject.

En la siguiente tabla, se muestran las asignaciones entre los atributos de reclamación de tokens y los atributos de SCIM:

Atributo de Google Asignación del proveedor de grupos de identidades de personal Asignación del tenant de SCIM (SCIM)
google.subject assertion.oid (EntraId) 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()
google.group N/A (asignado con SCIM) group.externalId

Extremos compatibles y no compatibles

Se admiten los siguientes extremos del protocolo SCIM estándar:

  • /Users: Administra los recursos del usuario. Operaciones admitidas: Create, Get, Update, Delete, Patch y Put.

  • /Groups: Administra los recursos del grupo. Operaciones admitidas: Create, Get, Update, Delete y Patch. No se admite el método PUT para los grupos.

  • /Schemas: Recupera la 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 de personal de 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 /Users o /Groups, las expresiones de filtro solo admiten el operador eq (igual a). Puedes combinar varios filtros eq con and. No se admiten otros operadores de filtro de SCIM, como co (contiene) o sw (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 es 1. La API devuelve hasta 100 resultados, independientemente del valor que proporciones para startIndex.

    • itemsPerPage: La cantidad máxima de recursos que se muestran en una sola respuesta es 100.

    • totalResults: La API no devuelve el recuento total real de los recursos coincidentes. El campo totalResults en la respuesta siempre es igual a la cantidad de elementos que se muestran en esa respuesta, con un máximo de 100.

  • Obtener grupo y enumerar grupos sin filtro: Las APIs de GetGroup y ListGroups muestran una lista de miembros vacía. Para recuperar miembros de un grupo específico, usa la API de ListGroups con un filtro de miembros.

  • Respuesta JSON no conforme con tokens no válidos: Las APIs que contienen un token de API no válido generan un 401 HTTP error de Google Cloud. La respuesta no es una estructura JSON como lo requieren las especificaciones.

Limitaciones del comportamiento de SCIM

  • Identificadores inmutables: Los valores de los atributos de SCIM que se asignan a google.subject o google.group se tratan como identificadores inmutables dentro de Google Cloud. Si necesitas cambiar estos valores, debes borrar de forma permanente el usuario o el grupo de tu IdP y, luego, volver a crearlo con el valor nuevo.

  • Identificadores únicos y no vacíos: Google Cloud aplica la exclusividad en los valores asignados a google.subject y google.group en un tenant de SCIM. La sincronización de atributos asignados que generan valores duplicados para google.subject o google.group falla con un error HTTP 409 Conflict. Los atributos asignados que se evalúan como nulos o vacíos fallan con un error HTTP 400 Bad Request.

  • Requisito de correo electrónico ú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 correo electrónico único proporcionado no es de tipo work.

  • 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 para user.userName y user.emails[0].value.

Limitaciones de 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 detalla la compatibilidad con los atributos de usuario:

Atributo Atributos secundarios Admitido Limitaciones
userName N/A N/A
name formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix N/A
displayName N/A N/A
nickName N/A N/A
profileUrl N/A N/A
title N/A N/A
userType N/A N/A
preferredLanguage N/A N/A
locale N/A N/A
timezone N/A N/A
active N/A N/A
password N/A No N/A
emails display, type, value, primary Solo se admite el tipo de correo electrónico work.
phoneNumbers display, type, value, primary N/A
ims display, type, value N/A
photos display, type, value N/A
addresses formatted, streetAddress, locality, region, postalCode, country N/A
groups N/A No N/A
entitlements display, type, value N/A
roles type, value No se admite display.
x509Certificates type, value No se admite display.

Atributos del grupo

En la siguiente tabla, se detalla la compatibilidad con los atributos del grupo:

Atributo Atributos secundarios admitidos
displayName N/A
externalId N/A
members value, type, $ref, display

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 Atributos secundarios admitidos
employeeNumber N/A
costCenter N/A
organization N/A
division N/A
department N/A
manager value, $ref, displayName

¿Qué sigue?