En este documento, se describe cómo configurar un arrendatario de SCIM en un grupo de identidades de personal. Para obtener más información sobre SCIM, consulta Aprovisionamiento de SCIM para la federación de identidades de personal.
Cada grupo de identidades de personal solo admite un inquilino de SCIM. Para configurar un nuevo arrendatario de SCIM en un grupo que ya tiene uno, primero debes borrar de forma permanente el arrendatario existente.
La marca --claim-mapping para un arrendatario de SCIM solo puede contener expresiones específicas de Common Expression Language (CEL). Para saber qué expresiones se admiten, consulta Cómo asignar atributos de SCIM y tokens de mapa.
Para configurar el Sistema para la administración de identidades entre dominios (SCIM), haz lo siguiente:
- Configura un usuario y un token de SCIM en Google Cloud
- Configura SCIM en el IdP de OIDC o SAML
- Actualiza el proveedor para habilitar SCIM
- Verifica la sincronización de SCIM
Configura un token y un arrendatario de SCIM en Google Cloud
Para configurar un arrendatario de SCIM en Google Cloud, haz lo siguiente:
-
Crea un usuario de 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"Reemplaza lo siguiente:
SCIM_TENANT_ID: Es un ID para tu usuario de SCIM.WORKFORCE_POOL_ID: Es el ID del grupo de personal que creaste antes en este documento.PROVIDER_ID: Es el ID del proveedor del grupo de identidades de personal que creaste antes en este documento.SCIM_TENANT_DISPLAY_NAME: Es el nombre visible de tu arrendatario de SCIM.SCIM_TENANT_DESCRIPTION: Es una descripción para tu usuario de SCIM.CLAIM_MAPPING: Es una lista separada por comas de las asignaciones de atributos. Para obtener la lista extendida de atributos de asignación, consulta Cómo asignar atributos de token y de SCIM. Se recomienda la siguiente asignación para Gemini Enterprise:google.subject=user.emails[0].value.lowerAscii(),google.group=group.externalIdEl atributo
google.subjectque asignas en el arrendatario de SCIM debe hacer referencia de forma inequívoca a las mismas identidades que se asignan en el atributogoogle.subjectdel proveedor de grupos de identidades para la fuerza laboral con la marca--attribute-mapping. Después de crear el arrendatario de SCIM, no podrás actualizar la asignación de reclamos. Para reemplazarlo, puedes borrar de forma permanente el arrendatario de SCIM y crear uno nuevo de inmediato. Para obtener más información sobre las consideraciones para usar SCIM, consulta Compatibilidad con SCIM.
-
Cuando se complete el comando, haz lo siguiente:
-
En el campo
baseUridel resultado, guarda el URI completo, que tiene el formatohttps://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID. Debes proporcionar este URI a tu IdP. -
Además, del URI, guarda solo el
SCIM_TENANT_UID. Necesitas este UID para establecer una política de IAM de permiso en el arrendatario de SCIM más adelante en este documento.
-
En el campo
-
Crea un token de 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 globalReemplaza lo siguiente:
SCIM_TOKEN_ID: Es un ID para el token de SCIM.DISPLAY_NAME: Es el nombre visible del token de SCIM.WORKFORCE_POOL_ID: ID del grupo de personalSCIM_TENANT_ID: Es el ID del usuario de SCIM.PROVIDER_ID: El ID del proveedor de grupo de identidades de personal
-
Cuando se complete el comando
gcloud iam workforce-pools providers scim-tenants tokens create, haz lo siguiente:-
En el resultado, guarda el valor de
SCIM_TOKENen el camposecurityToken. Debes proporcionar este token de seguridad a tu IdP. El token de seguridad solo se muestra en este resultado, y si se pierde, debes crear un token de SCIM nuevo. -
Para verificar si tu política de la organización rechaza
SCIM_TOKEN, ejecuta el siguiente comando:curl -v -H "Authorization: Bearer SCIM_TOKEN" https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users
Si el comando falla con un error relacionado con los permisos, ejecuta
gcloud organizations add-iam-policy-binding, como se describe en un paso posterior. Si el comando se ejecuta de forma correcta, puedes omitir ese paso.
-
-
Establece una política de permisos de IAM en el usuario y el token de SCIM. Si el comando
curlde un paso anterior falló con un error relacionado con los permisos, debes ejecutar el siguiente comando:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/iam.scimSyncerReemplaza lo siguiente:
- ORGANIZATION_ID: Es el ID de la organización.
- SERVICE_AGENT_EMAIL: Es la dirección de correo electrónico del agente de servicio. La dirección de correo electrónico tiene el siguiente formato:
o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.com. SCIM_TENANT_UID se devuelve cuando creas el arrendatario de SCIM.
Cuando aprovisiones grupos en tu IdP, asegúrate de que el nombre visible de cada grupo, como se proporciona en el campo displayName, sea único dentro de un arrendatario de SCIM. Para obtener más información sobre los grupos y SCIM en Microsoft Entra ID, consulta Grupos.
Configura SCIM en tu IdP de OIDC o SAML
En tu IdP, configura SCIM como se describe en la documentación del IdP. Usa la URL y el token de SCIM que obtuviste en el paso anterior.
Actualiza el proveedor para habilitar SCIM
Para habilitar SCIM en un proveedor, haz lo siguiente:
OIDC
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Reemplaza lo siguiente:
PROVIDER_ID: El ID del proveedor de grupo de identidades de personalWORKFORCE_POOL_ID: ID del grupo de personalLOCATION: Es la ubicación del grupo de personal.
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Reemplaza lo siguiente:
PROVIDER_ID: El ID del proveedor de grupo de identidades de personalWORKFORCE_POOL_ID: ID del grupo de personalLOCATION: Es la ubicación del grupo de personal.
Para verificar la sincronización de SCIM, consulta Cómo verificar la sincronización de SCIM.
Asigna tokens y atributos de SCIM
Debes asignar atributos de forma coherente, tanto en el proveedor de grupos de identidades de los trabajadores como en el arrendatario de SCIM configurado para el proveedor. Para el proveedor de grupos de identidades de personal, usa la marca --attribute-mapping y, para el arrendatario de SCIM, usa la marca --claim-mapping. El atributo del IdP que se asigna a google.subject para los usuarios debe hacer referencia de forma única a la misma identidad, ya sea que se defina en una asignación de SCIM o en un token. Para obtener más información sobre la asignación de atributos cuando usas SCIM, consulta la sección
Compatibilidad con SCIM.
En la siguiente tabla, se muestra cómo asignar atributos en las declaraciones de tokens y los atributos de SCIM:
| Atributo de Google | Asignación de proveedores de grupos de identidades del personal | Asignación de inquilinos de SCIM |
|---|---|---|
google.subject |
assertion.sub |
user.externalId |
google.group asegúrate de actualizar tu proveedor con --scim-usage=enabled-for-groups |
N/A |
group.externalId |
Verifica la sincronización de SCIM
Después de configurar SCIM, puedes usar curl para verificar que los usuarios y los grupos se sincronicen correctamente con Google Cloud. Estos comandos requieren un token de SCIM válido y tu ID de arrendatario de SCIM.
Verifica la sincronización de usuarios
Para verificar que un usuario se haya sincronizado correctamente, busca su userName con el siguiente filtro:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users?filter=userName%20eq%20%22USER_NAME%22"
Respuesta de ejemplo:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "USER_ID",
"userName": "USER_NAME",
...
}
]
}
Verifica la sincronización de grupos
Para verificar que un grupo se haya sincronizado correctamente, busca su displayName con el siguiente filtro:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=displayName%20eq%20%22GROUP_NAME%22"
Respuesta de ejemplo:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Verifica la pertenencia a un grupo
Para verificar si un usuario específico es miembro de un grupo, usa un filtro que especifique el ID del grupo y el ID del usuario.
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"
Ejemplo de respuesta si el usuario es miembro:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Ejemplo de respuesta si el usuario no es miembro:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 0,
"Resources": []
}
Nota: Para obtener GROUP_ID y USER_ID, primero busca el grupo y el usuario con los filtros displayName y userName. Los IDs se muestran en el campo id de la respuesta. Reemplaza SCIM_TOKEN, SCIM_TENANT_UID, USER_NAME, GROUP_NAME, GROUP_ID y USER_ID con tus valores reales.
Fuerza la eliminación de un usuario de SCIM
Para forzar el borrado de un arrendatario de SCIM, haz lo siguiente:
- Si
--scim-usage=enabled-for-groupsestá configurado para tu proveedor, inhabilítalo en la configuración del proveedor:gcloud iam workforce-pools providers update-oidc PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --location=LOCATION \ --scim-usage=SCIM_USAGE_UNSPECIFIEDReemplaza lo siguiente:
PROVIDER_ID: El ID del proveedor de grupo de identidades de personalWORKFORCE_POOL_ID: ID del grupo de personalLOCATION: Es la ubicación del grupo de personal.
- Borra el usuario de SCIM:
gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --provider=PROVIDER_ID \ --hard-delete \ --location=globalReemplaza lo siguiente:
SCIM_TENANT_ID: ID del usuario de SCIM que se borraráWORKFORCE_POOL_ID: ID del grupo de personalPROVIDER_ID: El ID del proveedor de grupo de identidades de personal
¿Qué sigue?
- Borra los usuarios de la federación de identidades de personal y sus datos
- Obtén información sobre qué Google Cloud productos admiten la federación de identidades de personal.
- Configura el acceso de usuario a la consola (federada)