Es común que varios miembros del equipo colaboren en la compilación de un agente y que los servicios accedan a él. Con las funciones, puedes controlar el acceso y los permisos otorgados a las principales.
Puedes configurar el acceso con la consola de CX de Dialogflow (consultar la documentación, abrir la consola) o usar la consola de Google Cloud (consultar la documentación, abrir la consola) con Identity and Access Management (IAM). La consola de Google Cloud se usa para otorgar roles de IAM a las principales, mientras que la consola de Dialogflow se usa para otorgar funciones de agente de Dialogflow a las principales. Las funciones del agente de Dialogflow son funciones predefinidas convenientes que define Dialogflow que restringen el acceso a un agente o a los recursos secundarios de un agente específico.
Hay algunas situaciones en las que debes usar la consola de Google Cloud:
- La función de propietario del proyecto de IAM se otorga de forma predeterminada al usuario que creó el proyecto que posee el agente. Este propietario tiene acceso completo a todos los agentes del proyecto. Si quieres cambiar el propietario del proyecto, debes usar la consola de Google Cloud.
- Solo el acceso a nivel de agente se puede configurar a través de la consola de Dialogflow CX. Si deseas configurar el acceso a nivel de proyecto, debes usar la consola de Google Cloud.
- Un subconjunto de funciones de IAM tiene las funciones de agente de Dialogflow correspondientes. Si deseas otorgar una función a nivel de proyecto o de agente que no existe en la consola de Dialogflow CX, debes usar la consola de Google Cloud.
Si estás utilizando la API, es posible que una o más aplicaciones también envíen solicitudes a un agente. En este caso, puedes controlar el acceso con las cuentas de servicio.
Controla el acceso con la consola de Dialogflow CX
La consola de CX de Dialogflow te permite aplicar funciones convenientes de agente configuradas para el uso compartido a nivel de agente. Estas funciones se relacionan con las funciones de IAM con condiciones de IAM que limitan el acceso al agente específico o un subconjunto de recursos secundarios del agente.
Para acceder a la configuración de las funciones de agente desde la consola de Dialogflow CX, debes tener la función de administrador de IAM del proyecto para el proyecto asociado. Este rol se otorga desde Google Cloud Console.
Función del agente de Dialogflow | Resumen | Función de IAM |
---|---|---|
Administrador | Proporciona acceso completo para crear, actualizar, consultar, detectar intent y borrar el agente desde la consola o la API. | Dialogflow > Admin. de API de Dialogflow |
Lector | Proporciona acceso de lectura para consultar (no detectar intents) el agente desde la consola o la API. | Dialogflow > Lector de API de Dialogflow |
Cliente | Proporciona acceso para detectar intents desde la consola o la API. | Dialogflow > Cliente de la API de Dialogflow |
Administrador de intents | Proporciona acceso para crear, actualizar, borrar o consultar los intents de un agente desde la consola o la API. | Dialogflow > Administrador de intents de Dialogflow |
Administrador de tipos de entidades | Proporciona acceso para crear, actualizar, borrar o consultar los tipos de entidades de un agente desde la consola o la API. | Dialogflow > Admin. de tipos de entidad de Dialogflow |
Administrador de webhooks | Proporciona acceso para crear, actualizar, borrar o consultar los webhooks de un agente desde la consola o la API. | Dialogflow > Administrador de webhooks de Dialogflow |
Administrador de casos de prueba | Proporciona acceso para crear, actualizar, borrar o consultar los casos de prueba de un agente desde la consola o la API. | Dialogflow> Administrador de casos de prueba de Dialogflow |
Editor de flujos | Proporciona acceso para actualizar, consultar un flujo específico y crear, actualizar, borrar o consultar los recursos de flujos (páginas, grupos de rutas y versiones) desde la consola o la API. | Dialogflow > Editor de flujo de Dialogflow |
Editor del entorno | Proporciona acceso para actualizar, consultar un entorno específico y crear, actualizar, borrar o consultar los recursos del entorno (experimentos) desde la consola o la API. | Dialogflow > Editor del entorno de Dialogflow |
Las opciones para compartir se encuentran en la configuración del agente. Para abrir la configuración de uso compartido del agente, sigue estos pasos:
- Abre la consola de Dialogflow CX.
- Elige tu proyecto de Google Cloud.
- Selecciona el agente.
- Haz clic en Configuración del agente.
- Haz clic en la pestaña Compartir.
Agrega un principal
- Haga clic en Agregar.
- Ingresa la dirección de correo electrónico del usuario, grupo o cuenta de servicio.
- Selecciona Usuario, Grupo o Cuenta de servicio para el tipo de correo electrónico.
- La función lector de Dialogflow se agrega de forma predeterminada, que es necesaria para que los usuarios accedan a la consola de Dialogflow CX.
- Haz clic en Agregar función en Asignar funciones.
- Selecciona un tipo de función en Tipo.
- Para las funciones Editor de flujo y Editor de entorno, selecciona flujos o entornos específicos o mantén la opción predeterminada Todos.
- De manera opcional, establece la fecha de vencimiento para la función.
- Haz clic en Guardar.
Cambia las funciones principales
- Haz clic en el principal de la lista.
- Actualiza las funciones para esta principal en la ventana emergente.
- Haz clic en Guardar.
Quita un principal
- Busca el principal en la lista.
- Haz clic en el botón Borrar delete del usuario.
- Haga clic en Ok.
Controla el acceso con la consola de Google Cloud
Puedes controlar el acceso con la configuración de IAM. Consulta la guía de inicio rápido de IAM para obtener instrucciones detalladas sobre cómo agregar, editar y quitar permisos.
Para acceder a la configuración a continuación, abre la página de IAM en la consola de Google Cloud.
Agrega un usuario o miembro de cuenta de servicio al proyecto
Puedes otorgar permisos a usuarios o cuentas de servicio si les otorgas funciones en tu proyecto de Google Cloud. Los usuarios se agregan mediante el ingreso de la dirección de correo electrónico. Las cuentas de servicio también se agregan mediante el ingreso de la dirección de correo electrónico asociada. Debes agregar cuentas de servicio cuando quieras usar una cuenta de servicio para varios proyectos. Para encontrar la dirección de correo electrónico asociada con tu cuenta de servicio, consulta la página de Cuentas de servicio de IAM en Google Cloud Console.
Para agregar una principal, haz lo siguiente:
- Haz clic en el botón Agregar en la parte superior de la página.
- Ingresa la dirección de correo electrónico del principal.
- Selecciona una función.
- Haz clic en Guardar.
Cambia permisos
- Haz clic en el botón Editar del miembro.
- Selecciona una función diferente.
- Haz clic en Guardar.
Quita un principal
- Haz clic en el botón Borrar del usuario.
Agrega una condición para restringir el acceso a un agente
Cuando agregas o editas un principal, puedes crear una condición de IAM que restrinja el acceso a un agente.
Por ejemplo:
{
"expression": "resource.name.startsWith(\"projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID\")",
"title": "For Dialogflow Agent AGENT_ID"
}
Esta condición te brinda acceso básico a un agente específico. Por ejemplo, una cuenta de servicio con esta condición solo puede llamar a la API de Dialogflow para acceder al agente especificado en la condición del proyecto, pero no a otros agentes en el proyecto.
Para agregar esta condición a una función otorgada a una principal, sigue estos pasos:
- Selecciona un principal.
- Haz clic en el botón Editar del principal.
- Haz clic en Agregar condición:
- En el campo Título, ingresa
For Dialogflow Agent AGENT_ID
y reemplaza AGENT_ID por el ID del agente. - Puedes agregar cualquier descripción.
- Selecciona el Editor de condiciones para crear tu condición.
- Agrega la expresión
resource.name.startsWith("projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID")
y reemplaza AGENT_ID por el ID del agente y PROJECT_ID por el ID del proyecto. - Haz clic en Guardar.
Roles de IAM
En la siguiente tabla, se enumeran las funciones comunes de IAM relevantes para Dialogflow CX. En los resúmenes de permisos de la tabla, se usan los siguientes términos:
- Acceso completo: Permiso para modificar el acceso, crear, borrar, editar y leer cualquier recurso.
- Acceso de edición: Permiso para crear, borrar, editar y leer cualquier recurso.
- Acceso a sesiones: Permiso para llamar a métodos de recursos solo durante el tiempo de ejecución durante una conversación, como detectar intents, actualizar contexto, actualizar entidades de sesión o interacciones de conversación con Agent Assist.
- Acceso de lectura: Permiso para leer cualquier recurso.
Función de IAM | Resumen de los permisos | Detalles de los permisos |
---|---|---|
Proyecto > Propietario |
Se otorga a los propietarios de proyectos que necesitan acceso completo a todos los recursos de Google Cloud y Dialogflow:
|
Consulta las definiciones de rol básico de IAM. |
Proyecto > Editor |
Se otorga a los editores de proyectos que necesitan acceso de edición a todos los recursos de Google Cloud y Dialogflow:
|
Consulta las definiciones de rol básico de IAM. |
Proyecto > Visualizador |
Se otorga a los visualizadores de proyectos
que necesitan acceso de lectura a todos los recursos de Google Cloud y Dialogflow:
|
Consulta las definiciones de rol básico de IAM. |
Proyecto > Administrador de IAM |
Otorga a los administradores de IAM de proyectos que necesitan acceso de edición a la configuración de funciones del agente de Dialogflow. | Consulta las definiciones de funciones de la administración de recursos de IAM. |
Proyecto > Navegador |
Se otorga a los navegadores de proyectos
que necesitan acceso de lectura para explorar la jerarquía de un proyecto,
incluidos la carpeta, la organización y la política de IAM:
|
Consulta las definiciones de funciones de los proyectos de IAM. |
Dialogflow > Administrador de la API de Dialogflow |
Se otorga a los administradores de la API de Dialogflow que necesitan acceso completo a los recursos específicos de Dialogflow:
|
Consulta las definiciones de roles de IAM de Dialogflow. |
Dialogflow > Cliente de la API de Dialogflow |
Se otorga a los clientes de la API de Dialogflow que realizan llamadas de intent de detección mediante la API:
|
Consulta las definiciones de roles de IAM de Dialogflow. |
Dialogflow > Editor del agente de la consola de Dialogflow |
Se otorga a los editores de la consola de Dialogflow CX que editan los agentes existentes:
|
Consulta las definiciones de roles de IAM de Dialogflow. |
Dialogflow > Lector de la API de Dialogflow |
Se otorga a los clientes de la API de Dialogflow que realizan llamadas de solo lectura específicas de Dialogflow mediante la API:
|
Consulta las definiciones de roles de IAM de Dialogflow. |
OAuth
Si usas bibliotecas cliente de Google para acceder a Dialogflow, no necesitas usar OAuth directamente, porque estas bibliotecas controlan la implementación por ti. Sin embargo, si implementas tu propio cliente, es posible que debas implementar tu propio flujo de OAuth. Para acceder a la API de Dialogflow, se requiere uno de los siguientes permisos de OAuth:
https://www.googleapis.com/auth/cloud-platform
(acceso a todos los recursos del proyecto)https://www.googleapis.com/auth/dialogflow
(acceso a los recursos de Dialogflow)
Solicitudes que involucran acceso a Cloud Storage
Algunas solicitudes de Dialogflow acceden a objetos en Cloud Storage para leer o escribir datos. Cuando llamas a una de estas solicitudes, Dialogflow accede a los datos de Cloud Storage en nombre del llamador. Esto significa que la autenticación de tu solicitud debe tener permisos para acceder a Dialogflow, así como a los objetos de Cloud Storage.
Cuando usas una biblioteca cliente de Google y las funciones de IAM, consulta la guía de control de acceso de Cloud Storage para obtener información sobre las funciones de Cloud Storage.
Cuando implementas tu propio cliente y usas OAuth, debes usar el siguiente alcance de OAuth:
https://www.googleapis.com/auth/cloud-platform
(acceso a todos los recursos del proyecto)