El control de acceso en Google Cloud Search se basa en la Cuenta de Google del usuario. Cuando se indexa el contenido, todas las LCA de los elementos deben establecer un vínculo con los ID de usuarios o grupos de Google válidos (direcciones de correo electrónico).
En muchos casos, un repositorio no tiene conocimiento directo de las Cuentas de Google. En su lugar, las cuentas locales representan a los usuarios, o bien los usuarios utilizan el acceso federado con un proveedor de identidad. Esta identificación, además de la dirección de correo electrónico, se denomina ID externo.
Las fuentes de identidad, que se crean con la Consola del administrador, ayudan a salvar la distancia entre los sistemas de identidad de la siguiente manera:
- La definición de un campo de usuario personalizado para almacenar ID externos. Este campo resuelve IDs externos en una Cuenta de Google.
- Define un espacio de nombres para grupos de seguridad administrados por un repositorio o un proveedor de identidad.
Utiliza fuentes de identidad en los siguientes casos:
- El repositorio no conoce la dirección de correo electrónico principal del usuario en Google Workspace o Google Cloud Directory.
- El repositorio define grupos de control de acceso que no corresponden a los grupos basados en correos electrónicos en Google Workspace.
Las fuentes de identidad mejoran la eficiencia al separar la indexación de la asignación de identidad. Esto te permite aplazar la búsqueda del usuario cuando crees LCA y elementos de indexación.
Implementación de ejemplo
En la Figura 1, se muestra una empresa que usa repositorios locales y en la nube. Cada uno usa un tipo diferente de ID externo.
El repositorio 1 identifica a los usuarios por dirección de correo electrónico con SAML. Como conoce la dirección de correo electrónico principal en Google Workspace o Cloud Directory, no necesita una fuente de identidad.
El repositorio 2 se integra en un directorio local y, además, identifica a los usuarios por medio de sAMAccountName. Debido a que usa este atributo como ID externo, requiere una fuente de identidad.
Crear una fuente de identidad
Si necesitas una fuente de identidad, consulta Asigna identidades de usuarios en Cloud Search.
Crea la fuente de identidad antes de crear un conector de contenido. Necesitarás su ID para crear LCA y datos de índice. La creación de una fuente de identidad también crea una propiedad del usuario personalizada en Cloud Directory para almacenar IDs externos. El nombre de la propiedad usa la convención IDENTITY_SOURCE_ID_identity.
En esta tabla, se muestran dos fuentes de identidad: una para los nombres de las cuentas SAM y otra para los IDs de usuarios (uid).
| Fuente de identidad | Propiedad del usuario | ID externo |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
Crea una fuente de identidad para cada tipo de ID externo que se use en tu empresa.
En esta tabla, se muestra cómo aparece un usuario con una Cuenta de Google y dos IDs externos en Cloud Directory:
| Usuario | Correo electrónico | id1_identity |
id2_identity |
|---|---|---|---|
| Ann | ann@example.com |
example\ann |
1001 |
Puedes hacer referencia al mismo usuario con cualquiera de estos IDs cuando se formulen las LCA para la indexación.
Escribir LCA de usuario
Usa getUserPrincipal() o getGroupPrincipal() para crear principales con IDs externos.
En este ejemplo, se recuperan los permisos de archivos, incluidos los usuarios con acceso:
Este fragmento crea principales para los propietarios con el atributo externalUserName:
Este fragmento crea principales para los lectores:
Una vez que tengas lectores y propietarios, crea la LCA:
La API de REST usa el patrón identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID.
El id1_identity de Ana se resuelve como identitysources/id1_identity/users/example/ann. Este es el ID intermedio del usuario.
Para obtener más información sobre el modelado de las LCA del repositorio, consulta LCA.
Asignar grupos
Las fuentes de identidad también actúan como un espacio de nombres para los grupos de LCA. Úsala para crear y asignar grupos que se usen solo con fines de seguridad o que sean locales en un repositorio.
Utiliza la API de Cloud Identity Groups para crear grupos y administrar membresías. Asocia el grupo con una fuente de identidad usando el nombre de la fuente de identidad como espacio de nombres.
Este fragmento crea un grupo:
Crear una LCA grupal
Usa getGroupPrincipal() para crear un principal de grupo con un ID externo y, luego, compila la LCA:
Conectores de identidad
Los usuarios no pueden ver los elementos en los resultados de la búsqueda hasta que los IDs externos establezcan un vínculo con un ID de Google en Cloud Directory. Puedes asegurarte de que esto suceda de tres maneras:
- Actualiza manualmente los perfiles de usuario en la Consola del administrador (solo se recomienda para pruebas).
- Asigna IDs de mapa con la API de Directory.
- Crea un conector de identidad con el SDK de Identity Connector.
Los conectores de identidad asignan IDs externos de identidades empresariales a identidades internas de Google. Si creas una fuente de identidad, también debes crear un conector de identidad.
Google Cloud Directory Sync (GCDS) es un ejemplo de un conector de identidad. Asigna información de usuarios y grupos de Active Directory a Cloud Directory.
Sincronizar identidades con la API de REST
Usa el método update para sincronizar identidades.
Reasigna identidades
Después de reasignar una identidad, debes volver a indexar los elementos para que el cambio se aplique.
- Si quitas o cambias una asignación de usuario, la asignación original permanece hasta que se vuelva a indexar.
- Si borras un grupo asignado y creas uno nuevo con el mismo
groupKey, no se otorgará acceso hasta que vuelvas a indexar.