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 grupo de usuarios de SCIM en un grupo que ya tiene uno, primero debes borrar de forma permanente el grupo de usuarios 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 Microsoft Entra ID
- 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 Microsoft Entra ID
Para configurar SCIM en Microsoft Entra ID, haz lo siguiente:
- Abre el portal de Azure y accede como un usuario que tenga privilegios de administrador global.
- Selecciona Microsoft Entra ID > Aplicaciones empresariales.
- Haz clic en New application.
- En Browse Microsoft Entra App gallery, haz clic en Create your own application.
-
En el panel Crea tu propia aplicación que aparece, haz lo siguiente:
- En ¿Cuál es el nombre de tu app?, ingresa el nombre de tu app.
- Selecciona Integrar cualquier otra aplicación que no encuentres en la galería (no es de la galería).
- Para crear la app, haz clic en Crear.
-
En tu aplicación, haz lo siguiente:
- En la sección Administrar, haz clic en Aprovisionamiento.
- En el panel derecho que aparece, haz clic en Configuración nueva.
-
En Credenciales de administrador, en URL del arrendatario, ingresa la URL de SCIM que obtuviste cuando creaste el arrendatario de SCIM, agregada con
?aadOptscim062020. Debes agregar?aadOptscim062020al final del URI base.Microsoft Entra ID requiere este parámetro de consulta para garantizar que las solicitudes de SCIM PATCH cumplan con los estándares de la RFC de SCIM. Para obtener más detalles, consulta la documentación de Microsoft.
La URL final del arrendatario en Microsoft Entra ID debe tener el siguiente formato:
https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID?aadOptscim062020
Reemplaza
SCIM_TENANT_UIDpor el UID del usuario de SCIM. - En Token secreto, ingresa el token secreto que obtuviste cuando creaste el token de SCIM.
- Para probar la configuración de SCIM con la federación de identidades de personal, haz clic en Probar conexión.
- Para guardar la configuración, haz clic en Crear.
-
En la sección Administrar, haz lo siguiente:
- Haz clic en Asignación de atributos.
- Haz clic en Aprovisionar usuarios de Microsoft Entra ID.
-
En la página Asignación de atributos, haz lo siguiente:
-
En la tabla Asignaciones de atributos, busca la fila de externalId y haz clic en Editar en esa fila.
En la página Editar atributos, haz lo siguiente:
-
En la lista desplegable Atributo de fuente, selecciona
objectId. - Haz clic en Aceptar.
-
En la lista desplegable Atributo de fuente, selecciona
- Para guardar la asignación de atributos, haz clic en Guardar.
-
En la tabla Asignaciones de atributos, busca la fila de externalId y haz clic en Editar en esa fila.
En la página Editar atributos, haz lo siguiente:
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.oid |
user.externalId |
google.subject |
assertion.attributes['http://schemas.microsoft.com/identity/claims/objectidentifier'][0] |
user.externalId |
google.subject |
assertion.email |
user.emails[0].value |
google.subject |
assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'][0] |
user.emails[0].value |
google.subject |
assertion.email.lowerAscii() |
user.emails[0].value.lowerAscii() |
google.subject |
assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'][0].lowerAscii() |
user.emails[0].value.lowerAscii() |
google.subject |
assertion.preferred_username |
user.userName |
google.subject |
assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'][0] |
user.userName |
google.subject |
assertion.preferred_username.lowerAscii() |
user.userName.lowerAscii() |
google.subject |
assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'][0].lowerAscii() |
user.userName.lowerAscii() |
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)