Usar el control de acceso a fuentes de datos

En esta página se describe cómo aplicar el control de acceso a fuentes de datos en aplicaciones de búsqueda de aplicaciones de IA.

El control de acceso a las fuentes de datos de las aplicaciones de IA limita los datos que los usuarios pueden ver en los resultados de tu aplicación de búsqueda. Google usa tu proveedor de identidades para identificar al usuario final que realiza una búsqueda y determinar si tiene acceso a los documentos que se devuelven como resultados.

Por ejemplo, supongamos que los empleados de tu empresa buscan en documentos de Confluence con tu aplicación de búsqueda. Sin embargo, debes asegurarte de que no puedan ver contenido a través de la aplicación al que no tengan acceso. Si has configurado un grupo de trabajo en Google Cloud para el proveedor de identidades de tu organización, también puedes especificar ese grupo de trabajo en Aplicaciones de IA. Ahora, si un empleado usa tu aplicación, solo obtendrá resultados de búsqueda de los documentos a los que ya tenga acceso su cuenta en Confluence.

Acerca del control de acceso a fuentes de datos

Activar el control de acceso es un procedimiento que se realiza una sola vez.

El control de acceso está disponible para Cloud Storage, BigQuery, Google Drive y todas las fuentes de datos de terceros.

Para activar el control de acceso a las fuentes de datos de las aplicaciones de IA, debes configurar el proveedor de identidades de tu organización en Google Cloud. Se admiten los siguientes frameworks de autenticación:

  • Identidad de Google:

    • Caso 1: Si usas la identidad de Google, todas las identidades de usuario y los grupos de usuarios están presentes y se gestionan a través de Google Cloud. Para obtener más información sobre Google Identity, consulta la documentación de Google Identity.

    • Caso 2: Utilizas un proveedor de identidades externo y has sincronizado identidades con Google Identity. Tus usuarios finales usan Google Identity para autenticarse antes de acceder a recursos de Google o a Google Workspace.

    • Caso 3: Usas un proveedor de identidades externo y has sincronizado identidades con Google Identity. Sin embargo, sigues usando tu proveedor de identidades externo para realizar la autenticación. Has configurado el inicio de sesión único con la identidad de Google de forma que tus usuarios inician sesión con la identidad de Google y, a continuación, se les dirige a tu proveedor de identidades externo. Es posible que ya hayas realizado esta sincronización al configurar otros recursos Google Cloud o Google Workspace.

  • Federación de proveedores de identidades de terceros: si usas un proveedor de identidades externo (por ejemplo, Azure AD, Okta o Ping) pero no quieres sincronizar tus identidades con Google Cloud Identity, debes configurar la federación de identidades de la fuerza de trabajo en Google Cloudantes de poder activar el control de acceso a las fuentes de datos de las aplicaciones de IA.

    Si usas conectores de terceros, el atributo google.subject debe asignarse al campo de dirección de correo del proveedor de identidades externo. A continuación, se muestran ejemplos de asignaciones de atributos google.subject y google.groups para proveedores de identidades habituales:

    • Azure AD con protocolo OIDC

      google.subject=assertion.email google.groups=assertion.groups 

    • Azure AD con protocolo SAML

      google.subject=assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'][0] google.groups=assertion.attributes['http://schemas.microsoft.com/ws/2008/06/identity/claims/groups'] 

    • Okta con protocolo OIDC

      google.subject=assertion.email google.groups=assertion.groups 

    • Okta con protocolo SAML

      google.subject=assertion.subject google.groups=assertion.attributes['groups'] 

Limitaciones

El control de acceso tiene las siguientes limitaciones:

  • Se permiten 3000 lectores por documento. Cada principal cuenta como lector, y un principal puede ser un grupo o un usuario individual.
  • Puedes seleccionar un proveedor de identidades por cada ubicación compatible con Vertex AI Search.
  • Para definir una fuente de datos como controlada por acceso, debe seleccionar este ajuste durante la creación del almacén de datos. No puedes activar ni desactivar este ajuste en un almacén de datos que ya tengas.
  • La pestaña Datos > Documentos de la consola no muestra datos de fuentes de datos con control de acceso, ya que estos datos solo deberían ser visibles para los usuarios que tengan acceso de lectura.
  • Para previsualizar los resultados de la interfaz de usuario de las aplicaciones de búsqueda que usan el control de acceso de terceros, debes iniciar sesión en la consola federada o usar la aplicación web. Consulta Previsualizar los resultados de las aplicaciones con control de acceso.

Antes de empezar

En este procedimiento se presupone que has configurado un proveedor de identidades en tuGoogle Cloud proyecto.

  • Identidad de Google: si utilizas la identidad de Google, puedes ir al procedimiento para conectar con tu proveedor de identidades.
  • Proveedor de identidades de terceros: asegúrate de haber configurado un grupo de identidades de la fuerza de trabajo para tu proveedor de identidades de terceros. Comprueba que has especificado las asignaciones de atributos de asunto y de grupo al configurar el grupo de usuarios. Para obtener información sobre las asignaciones de atributos, consulta Asignaciones de atributos en la documentación de IAM. Para obtener más información sobre los grupos de identidades de empleados, consulta Gestionar proveedores de grupos de identidades de empleados en la documentación de IAM.

Conectarse a un proveedor de identidades

Para especificar un proveedor de identidades para las aplicaciones de IA y activar el control de acceso a la fuente de datos, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

    Aplicaciones de IA

  2. Ve a la página Configuración > Autenticación.

  3. Haz clic en el icono de edición de la ubicación que quieras actualizar.

  4. Selecciona tu proveedor de identidades en el cuadro de diálogo Añadir proveedor de identidades. Si seleccionas un proveedor de identidades de terceros, también debes seleccionar el grupo de usuarios que se aplique a tus fuentes de datos.

  5. Haz clic en Guardar cambios.

Configurar una fuente de datos con control de acceso

Para aplicar el control de acceso a una fuente de datos, sigue estos pasos en función del tipo de fuente de datos que estés configurando:

Datos no estructurados de Cloud Storage

Cuando configures un almacén de datos para datos sin estructurar de Cloud Storage, también debes subir metadatos de ACL y definir el almacén de datos como controlado por acceso:

  1. Cuando prepare sus datos, incluya la información de la lista de control de acceso en sus metadatos mediante el campo acl_info. Por ejemplo:

    {    "id": "<your-id>",    "jsonData": "<JSON string>",    "content": {      "mimeType": "<application/pdf or text/html>",      "uri": "gs://<your-gcs-bucket>/directory/filename.pdf"    },    "acl_info": {      "readers": [        {          "principals": [            { "group_id": "group_1" },            { "user_id": "user_1" }          ]        }      ]    }  } 

    Para obtener más información sobre los datos sin estructurar con metadatos, consulta la sección Datos sin estructurar del artículo Preparar datos para la ingesta.

  2. Cuando sigas los pasos para crear un almacén de datos de búsqueda en Crear un almacén de datos de búsqueda, puedes habilitar el control de acceso haciendo lo siguiente en la consola o mediante la API:

    • Consola: al crear un almacén de datos, selecciona Este almacén de datos contiene información de control de acceso.
    • API: al crear un almacén de datos, incluye la marca "aclEnabled": "true" en tu carga útil de JSON.
  3. Cuando siga los pasos para importar datos en Crear un almacén de datos de búsqueda, asegúrese de hacer lo siguiente:

    • Subir los metadatos con información de LCA del mismo segmento que los datos no estructurados
    • Si usa la API, defina GcsSource.dataSchema como document

Datos estructurados de Cloud Storage

Cuando configures un almacén de datos para datos estructurados de Cloud Storage, también tendrás que subir metadatos de ACL y definir el almacén de datos como controlado por acceso:

  1. Cuando prepare sus datos, incluya la información de la lista de control de acceso en sus metadatos mediante el campo acl_info. Por ejemplo:

    {    "id": "<your-id>",    "jsonData": "<JSON string>",    "acl_info": {      "readers": [        {          "principals": [            { "group_id": "group_1" },            { "user_id": "user_1" }          ]        }      ]    }  } 
  2. Cuando sigas los pasos para crear un almacén de datos de búsqueda en Crear un almacén de datos de búsqueda, puedes habilitar el control de acceso haciendo lo siguiente en la consola o mediante la API:

    • Consola: al crear un almacén de datos, selecciona Este almacén de datos contiene información de control de acceso.
    • API: al crear un almacén de datos, incluye la marca "aclEnabled": "true" en tu carga útil de JSON.
  3. Cuando siga los pasos para importar datos en Crear un almacén de datos de búsqueda, asegúrese de hacer lo siguiente:

    • Subir los metadatos con información de LCA del mismo segmento que los datos no estructurados
    • Si usas la API, asigna el valor document a GcsSource.dataSchema.

Datos no estructurados de BigQuery

Cuando configures un almacén de datos para datos sin estructurar de BigQuery, debes definir el almacén de datos como controlado por acceso y proporcionar metadatos de ACL mediante un esquema predefinido para Vertex AI Search:

  1. Cuando prepare sus datos, especifique el siguiente esquema. No uses un esquema personalizado.

    [   {     "name": "id",     "mode": "REQUIRED",     "type": "STRING",     "fields": []   },   {     "name": "jsonData",     "mode": "NULLABLE",     "type": "STRING",     "fields": []   },   {     "name": "content",     "type": "RECORD",     "mode": "NULLABLE",     "fields": [       {         "name": "mimeType",         "type": "STRING",         "mode": "NULLABLE"       },       {         "name": "uri",         "type": "STRING",         "mode": "NULLABLE"       }     ]   }   {     "name": "acl_info",     "type": "RECORD",     "mode": "NULLABLE",     "fields": [       {         "name": "readers",         "type": "RECORD",         "mode": "REPEATED",         "fields": [           {             "name": "principals",             "type": "RECORD",             "mode": "REPEATED",             "fields": [               {                 "name": "user_id",                 "type": "STRING",                 "mode": "NULLABLE"               },               {                 "name": "group_id",                 "type": "STRING",                 "mode": "NULLABLE"               }             ]           }         ]       }     ]   } ] 
  2. Incluye los metadatos de la lista de control de acceso como una columna en tu tabla de BigQuery.

  3. Cuando sigas los pasos que se indican en Crear un almacén de datos de búsqueda, habilita el control de acceso en la consola o mediante la API:

    • Consola: al crear un almacén de datos, selecciona Este almacén de datos contiene información de control de acceso.
    • API: al crear un almacén de datos, incluye la marca "aclEnabled": "true" en tu carga útil de JSON.
  4. Cuando sigas los pasos para importar datos en Crear un almacén de datos de búsqueda, si usas la API, define BigQuerySource.dataSchema como document.

Datos estructurados de BigQuery

Cuando configures un almacén de datos para datos estructurados de BigQuery, debes definir el almacén de datos como controlado por acceso y proporcionar metadatos de ACL mediante un esquema predefinido para Vertex AI Search:

  1. Cuando prepare sus datos, especifique el siguiente esquema. No uses un esquema personalizado.

    [   {     "name": "id",     "mode": "REQUIRED",     "type": "STRING",     "fields": []   },   {     "name": "jsonData",     "mode": "NULLABLE",     "type": "STRING",     "fields": []   },   {     "name": "acl_info",     "type": "RECORD",     "mode": "NULLABLE",     "fields": [       {         "name": "readers",         "type": "RECORD",         "mode": "REPEATED",         "fields": [           {             "name": "principals",             "type": "RECORD",             "mode": "REPEATED",             "fields": [               {                 "name": "user_id",                 "type": "STRING",                 "mode": "NULLABLE"               },               {                 "name": "group_id",                 "type": "STRING",                 "mode": "NULLABLE"               }             ]           }         ]       }     ]   } ] 
  2. Incluye los metadatos de la lista de control de acceso como una columna en tu tabla de BigQuery.

  3. Cuando sigas los pasos que se indican en Crear un almacén de datos de búsqueda, habilita el control de acceso en la consola o mediante la API:

    • Consola: al crear un almacén de datos, selecciona Este almacén de datos contiene información de control de acceso.
    • API: al crear un almacén de datos, incluye la marca "aclEnabled": "true" en tu carga útil de JSON.
  4. Cuando sigas los pasos para importar datos en Crear un almacén de datos de búsqueda, asegúrate de hacer lo siguiente:

    • Si usas la consola, cuando especifiques el tipo de datos que vas a subir, selecciona JSONL para datos estructurados con metadatos.
    • Si usa la API, defina BigQuerySource.dataSchema como document

Vista previa de los resultados de aplicaciones con control de acceso de terceros

Para previsualizar los resultados en la consola de las aplicaciones con control de acceso de terceros, debes iniciar sesión con las credenciales de tu organización.

Puedes previsualizar los resultados de la interfaz de usuario de dos formas:

Previsualizar los resultados en la consola de Workforce Identity Federation

Sigue estos pasos para usar la consola de federación de identidades de los trabajadores y ver los resultados:

  1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

    Aplicaciones de IA

  2. Haz clic en el nombre de la aplicación de búsqueda cuyos resultados quieras previsualizar.

  3. Vaya a la página Vista previa.

  4. Haz clic en Vista previa con identidad federada para ir a la consola de Workforce Identity Federation.

  5. Introduce las credenciales de tu proveedor de grupos de empleados y de tu organización.

  6. Consulta los resultados de tu aplicación en la página Vista previa que aparece.

    Para obtener más información sobre cómo previsualizar los resultados de búsqueda, consulta el artículo Obtener resultados de búsqueda.

Para obtener más información sobre la consola de Federación de Identidades de Workforce, consulta Acerca de la consola (federada).

Conceder permisos de búsqueda a los usuarios

Para que tus usuarios puedan buscar datos con control de acceso mediante tu aplicación, debes conceder acceso a los usuarios de tu dominio o de tu grupo de empleados. Google recomienda que concedas un rol de gestión de identidades y accesos personalizado a tu grupo de usuarios.

  • Identidad de Google: si utilizas la identidad de Google, Google te recomienda que crees un grupo de Google que incluya a todos los empleados que necesiten buscar. Si eres administrador de Google Workspace, puedes incluir a todos los usuarios de una organización en un grupo de Google siguiendo los pasos que se indican en el artículo Añadir a todos los usuarios de tu organización a un grupo.
  • Proveedor de identidades externo: si utilizas un proveedor de identidades externo, como Okta o Azure AD, añade a todos los miembros de tu plantilla a un solo grupo.

Google recomienda que cree un rol de gestión de identidades y accesos personalizado para concederlo a su grupo de usuarios. Para ello, utilice los siguientes permisos:

  • discoveryengine.answers.get
  • discoveryengine.servingConfigs.answer
  • discoveryengine.servingConfigs.search
  • discoveryengine.sessions.get
  • discoveryengine.widgetConfigs.get

Para obtener más información sobre los permisos de los recursos de aplicaciones de IA mediante Gestión de Identidades y Accesos (IAM), consulta Control de acceso con IAM.

Para obtener más información sobre los roles personalizados, consulta la sección Roles personalizados de la documentación de gestión de identidades y accesos.

Autorizar el widget de búsqueda

Si quieres implementar un widget de búsqueda para una aplicación con control de acceso, sigue estos pasos:

  1. Concede el rol Lector de Discovery Engine a los usuarios de tu dominio o grupo de trabajadores que necesiten hacer llamadas a la API Search.

  2. Genera tokens de autorización para enviarlos a tu widget:

  3. Sigue los pasos que se indican en Añadir un widget con un token de autorización para transferir el token a tu widget.

Activar la aplicación web

La aplicación web es un sitio específico generado por Vertex AI Search en el que tú y cualquier otro usuario con credenciales de inicio de sesión podéis usar tu aplicación de búsqueda.

Para ofrecer la aplicación de búsqueda a los usuarios sin tener que integrar el widget de búsqueda o la API de búsqueda en tu aplicación, puedes proporcionar la URL de la aplicación web a tus usuarios.

Sigue estos pasos para activar la aplicación web:

  1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

    Aplicaciones de IA

  2. Haga clic en el nombre de la aplicación de búsqueda para la que quiera crear una aplicación web.

    La aplicación de búsqueda debe estar asociada al menos a una fuente de datos con control de acceso. Para obtener más información, consulta cómo configurar una fuente de datos con control de acceso.

  3. Ve a la pestaña Integración > Interfaz de usuario.

  4. Haz clic en Habilitar la aplicación web.

  5. Si usas la federación de identidades de Workforce, selecciona un proveedor de grupos de trabajo.

  6. Haz clic en el enlace a tu aplicación web.

  7. Introduce las credenciales de tu proveedor de grupos de empleados y de tu organización.

  8. Previsualiza los resultados de tu aplicación.

  9. Para configurar los resultados de la aplicación web, consulta Configurar los resultados del widget de búsqueda. Las configuraciones del widget también se aplican a la aplicación web.

  10. Opcional: Para proporcionar la aplicación de búsqueda a tus usuarios a través de esta aplicación web específica, copia la URL y envíala a los usuarios que tengan credenciales de inicio de sesión. Pueden añadir la URL de la aplicación web a sus marcadores y acceder a ella para usar tu aplicación de búsqueda.

Para obtener más información sobre cómo obtener resultados de búsqueda, consulta el artículo Obtener resultados de búsqueda.