La autenticación y la autorización son mecanismos que se usan para verificar la identidad y el acceso a los recursos, respectivamente. En este documento, se describe cómo funcionan la autenticación y la autorización para las apps de Chat y las solicitudes a la API de Chat.
Descripción general del proceso
En el siguiente diagrama, se muestran los pasos de alto nivel de autenticación y autorización para Google Chat:
Configura un proyecto de Google Cloud, habilita la API de Chat y configura tu app de Chat: Durante el desarrollo, creas un proyecto de Google Cloud. En el proyecto de Google Cloud, habilitas la API de Chat, configuras tu app de Chat y configuras la autenticación. Para obtener más información, consulta Desarrolla en Google Workspace y Crea una app de Chat.
Llama a la API de Chat: Cuando tu app llama a la API de Chat, envía credenciales de autenticación a la API de Chat. Si tu app se autentica con una cuenta de servicio, las credenciales se envían como parte del código de tu app. Si tu app requiere llamar a la API de Chat con la autenticación de un usuario que aún no se otorgó, se le solicitará al usuario que acceda.
Solicita recursos: Tu app solicita acceso con los permisos que especificas cuando configuras la autenticación.
Solicita consentimiento: Si tu app se autentica como usuario, Google muestra una pantalla de consentimiento de OAuth para que el usuario pueda decidir si otorga a tu app acceso a los datos solicitados. La autenticación con una cuenta de servicio no requiere el consentimiento del usuario.
Envía la solicitud aprobada para obtener recursos: Si el usuario acepta los permisos de autorización, tu app agrupa las credenciales y los permisos aprobados por el usuario en una solicitud. La solicitud se envía al servidor de autorización de Google para obtener un token de acceso.
Google devuelve un token de acceso: El token de acceso contiene una lista de permisos otorgados. Si la lista de permisos que se muestra es más restrictiva que los permisos solicitados, tu app desactivará las funciones limitadas por el token.
Accede a los recursos solicitados: Tu app usa el token de acceso de Google para invocar la API de Chat y acceder a sus recursos.
Obtén un token de actualización (opcional): Si tu app debe acceder a la API de Google Chat más allá del ciclo de vida de un solo token de acceso, puede obtener un token de actualización. Para obtener más información, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
Solicitar más recursos: Si tu app necesita más acceso, le pide al usuario que otorgue nuevos permisos, lo que genera una nueva solicitud para obtener un token de acceso (pasos 3 a 6).
Cuándo las apps de Chat requieren autenticación
Las apps de Chat pueden enviar mensajes en respuesta a una interacción del usuario o de forma asíncrona. También pueden completar tareas en nombre de un usuario, como crear un espacio de Chat o conseguir una lista de personas en un espacio de Chat.
Las apps de Chat no requieren autenticación para responder a una interacción del usuario, a menos que la app de Chat llame a la API de Chat o a otra API de Google mientras procesa una respuesta.
Para enviar mensajes asíncronos o realizar tareas en nombre de un usuario, las apps de Chat realizan solicitudes RESTful a la API de Chat, que requieren autenticación y autorización.
Las respuestas a las interacciones de los usuarios no requieren autenticación
Las apps de Google Chat no necesitan autenticarse como usuario ni como app de Chat para recibir y responder de forma síncrona a las interacciones de los usuarios.
Las apps de Google Chat reciben objetos de eventos cada vez que un usuario interactúa con una app de Chat o la invoca, lo que incluye lo siguiente:
- Un usuario envía un mensaje a una app de Chat.
- Un usuario @menciona una app de Chat.
- Un usuario invoca uno de los comandos de la app de Chat.
En el siguiente diagrama, se muestra una secuencia de solicitud y respuesta entre un usuario de Chat y una app de Chat:
- El usuario envía un mensaje a la app de Chat en Google Chat.
- Google Chat reenvía el mensaje a la app.
- La app recibe el mensaje, lo procesa y devuelve una respuesta a Google Chat.
- Google Chat renderiza la respuesta para el usuario o en un espacio.
Esta secuencia se repite para cada interacción del usuario con la app de Chat.
Los mensajes asíncronos requieren autenticación
Los mensajes asíncronos se producen cuando una app de Chat realiza una solicitud a la API de Chat, lo que requiere autenticación y autorización.
Cuando llaman a la API de Chat, las apps de Chat pueden publicar mensajes en Google Chat o completar tareas y acceder a datos en nombre de un usuario. Por ejemplo, después de detectar una interrupción del servidor, una app de Chat puede llamar a la API de Chat para lo siguiente:
- Crea un espacio de Chat dedicado a investigar y solucionar la interrupción.
- Agrega personas al espacio de Chat.
- Publica un mensaje en el espacio de Chat para dar detalles sobre la interrupción.
En el siguiente diagrama, se muestra una secuencia de mensajes asíncronos entre una app de Chat y un espacio de Chat:
- Una app de Chat crea un mensaje llamando a la
API de Chat con el
método
spaces.messages.createy, además, incluye las credenciales del usuario en la solicitud HTTP. - Google Chat autentica la app de Chat con credenciales de usuario o de cuenta de servicio.
- Google Chat renderiza el mensaje de la app en un espacio de Chat especificado.
Permisos de la API de Chat
Configura la pantalla de consentimiento de OAuth y elige permisos para definir qué información se muestra a los usuarios y revisores de apps, y registra tu app para que puedas publicarla más adelante.
Para definir el nivel de acceso que se otorga a tu app, debes identificar y declarar los permisos de autorización. Un permiso de autorización es una cadena de URI de OAuth 2.0 que contiene el nombre de la app de Google Workspace, el tipo de datos a los que accede y el nivel de acceso.
Permisos no sensibles
| Código de alcance | Descripción |
|---|---|
https://www.googleapis.com/auth/chat.bot
|
Permite que las apps de Chat vean los chats y envíen mensajes. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
Permisos sensibles
| Código de alcance | Descripción |
|---|---|
https://www.googleapis.com/auth/chat.spaces
|
Crear conversaciones y espacios, y ver o editar los metadatos (incluida la configuración del historial y la configuración de acceso) en Chat |
https://www.googleapis.com/auth/chat.spaces.create
|
Crear conversaciones nuevas en Chat |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Ver chat y espacios en Chat |
https://www.googleapis.com/auth/chat.memberships
|
Ver, agregar, actualizar y quitar miembros de las conversaciones de Chat |
https://www.googleapis.com/auth/chat.memberships.app
|
Unirse y salir de las conversaciones de Google Chat |
https://www.googleapis.com/auth/chat.memberships.readonly
|
Ver a los miembros de las conversaciones de Chat |
https://www.googleapis.com/auth/chat.messages.create
|
Redactar y enviar mensajes en Chat |
https://www.googleapis.com/auth/chat.messages.reactions
|
Ver, agregar y borrar reacciones a los mensajes en Chat |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Agregar reacciones a un mensaje en Chat |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Ver las reacciones a un mensaje en Chat |
https://www.googleapis.com/auth/chat.users.readstate
|
Ver y modificar la hora de la última lectura en las conversaciones de Chat |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
Ver la hora de la última lectura en las conversaciones de Chat |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
Ver el chat y los espacios que pertenecen al dominio del administrador en Chat |
https://www.googleapis.com/auth/chat.admin.spaces
|
Ver o editar chats y espacios que pertenecen al dominio del administrador en Chat |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Ver miembros y administradores en conversaciones que pertenecen al dominio del administrador en Chat |
https://www.googleapis.com/auth/chat.admin.memberships
|
Ver, agregar, actualizar y quitar miembros y administradores en las conversaciones que pertenecen al dominio del administrador en Chat |
https://www.googleapis.com/auth/chat.app.spaces
|
Crea conversaciones y espacios, y consulta o actualiza los metadatos (incluida la configuración del historial y la configuración de acceso) en Chat como una app de Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.app.spaces.readonly
|
Ver metadatos (incluida la configuración del historial) en Chat como una app de Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
Crea conversaciones y espacios nuevos en Chat como una app de Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.app.memberships
|
Ver, agregar, actualizar y quitar miembros de conversaciones y espacios en Chat como una app de Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.app.memberships.readonly
|
Ver miembros de conversaciones y espacios en Chat como una app de Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.customemojis
|
Ver, crear y borrar emojis personalizados en Chat |
https://www.googleapis.com/auth/chat.customemojis.readonly
|
Ver emojis personalizados en Chat |
https://www.googleapis.com/auth/chat.users.spacesettings
|
Ver y actualizar la configuración del espacio de usuario de Chat |
https://www.googleapis.com/auth/chat.users.sections
|
Ver, crear, actualizar y borrar tus secciones en Chat; mover y enumerar los elementos de tus secciones en Chat |
https://www.googleapis.com/auth/chat.users.sections.readonly
|
Ver tus secciones y sus elementos en Chat |
Permisos restringidos
| Código de alcance | Descripción |
|---|---|
https://www.googleapis.com/auth/chat.delete
|
Borrar conversaciones y espacios, y quitar el acceso a los archivos asociados en Chat |
https://www.googleapis.com/auth/chat.import
|
Importar espacios, mensajes y membresías a Chat Para obtener más información, consulta Autoriza apps de Chat para importar datos. |
https://www.googleapis.com/auth/chat.messages
|
Ver, redactar, enviar, actualizar y borrar mensajes, así como agregar, ver y borrar reacciones a los mensajes. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Ver mensajes y reacciones en Chat |
https://www.googleapis.com/auth/chat.app.messages.readonly
|
Ver mensajes y reacciones en Chat como una app de Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.admin.delete
|
Borrar conversaciones y espacios que pertenecen al dominio del administrador, y quitar el acceso a los archivos asociados en Chat |
https://www.googleapis.com/auth/chat.app.delete
|
Borra conversaciones y espacios, y quita el acceso a los archivos asociados en Chat como una app de Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación para todo el dominio con este permiso. |
Los permisos de las tablas anteriores indican su sensibilidad, según las siguientes definiciones:
No sensibles: Estos permisos proporcionan la esfera más pequeña de acceso de autorización y solo requieren una verificación básica de la app. Para obtener información sobre este requisito, consulta Pasos para prepararse para la verificación.
Sensibles: Estos permisos proporcionan a tu app acceso a los datos de Google de un usuario específico después de recibir su autorización. Requiere que realices una verificación de app adicional. Para obtener información sobre este requisito, consulta Pasos para las apps que solicitan permisos sensibles.
Restringidos: Estos permisos proporcionan un acceso amplio a los datos de los usuarios de Google y requieren que pases por el proceso de verificación de permisos restringidos. Para obtener información sobre este requisito, consulta la Política de Datos del Usuario de los Servicios de la API de Google y los Requisitos adicionales para permisos de API específicos. Consulta también Pasos para las apps que solicitan permisos restringidos.
Si tu app requiere acceso a otras APIs de Google, también puedes agregar esos permisos. Para obtener más información sobre los permisos de las APIs de Google, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
Para obtener más información sobre los permisos de las APIs de Google Workspace, consulta Configura la pantalla de consentimiento de OAuth y elige permisos.
Tipos de autenticación obligatoria
Existen dos formas en que las apps de Chat pueden autenticarse y autorizarse con la API de Chat:
- Autenticación de usuarios La
- autenticación de usuarios permite que una app de Chat acceda a los datos de los usuarios y complete acciones en su nombre. Los permisos de OAuth especifican los datos y las acciones autorizados. A menos que la app de Chat haya sido instalada por el administrador o se le haya otorgado delegación de todo el dominio, la primera vez que la app de Chat realice una acción en nombre de un usuario, este deberá autorizarla con la pantalla de consentimiento de OAuth.
- Autenticación de apps
La autenticación de la app permite que una app de Chat use credenciales de cuenta de servicio, acceda a datos y complete acciones como sí misma. Debido a que la app de Chat usa sus propias credenciales para acceder a los recursos y trabajar con ellos, los usuarios finales no necesitan aprobar las llamadas a la API de la app de Chat, y no puedes agregar permisos de autorización de OAuth que admitan la autorización de la app a la pantalla de consentimiento de OAuth.
Hay dos tipos de permisos de autorización de OAuth que admiten la autenticación de apps:
https://www.googleapis.com/auth/chat.bot: Tu app de Chat puede llamar a los métodos de la API de Google Chat que admiten este permiso de autorización para crear, actualizar, obtener, enumerar o borrar recursos a los que tiene acceso, como los mensajes en los espacios a los que los usuarios finales agregan tu app de Chat. Tu app de Chat puede otorgarse este permiso de autorización, sin necesidad de que lo autorice un administrador o usuario final.https://www.googleapis.com/auth/chat.app.*: El uso de estos permisos requiere la aprobación única del administrador. Para recibir la aprobación del administrador, prepara la cuenta de servicio de la app de Chat para recibir la aprobación del administrador creando un cliente de OAuth compatible con Google Workspace Marketplace y configurando la app en el SDK de Google Workspace Marketplace. Estos permisos permiten que tu app de Chat llame a métodos específicos de la API de Google Chat. Por ejemplo,chat.app.spaces.createpermite que las apps creen espacios de Chat.
Si un método admite la autenticación de usuarios o de apps, la API de Chat devuelve resultados diferentes según el tipo de autenticación que uses:
- Con la autenticación de apps, los métodos solo devuelven recursos a los que puede acceder la app de Chat.
- Con la autenticación de usuarios, los métodos solo devuelven los recursos a los que puede acceder el usuario.
Por ejemplo, llamar al método spaces.list() con la autorización de la app devuelve
la lista de espacios de los que es miembro la app de Chat.
Si llamas a spaces.list() con la autorización del usuario, se devuelve la lista de espacios de los que el usuario es miembro. En
la práctica, puedes usar ambos tipos de
autenticación cuando llamas a la API de Chat, según el diseño
y las funciones de tu app de Chat.
Para llamadas asíncronas a la API de Chat
En la siguiente tabla, se enumeran los métodos de la API de Chat y sus permisos de autorización compatibles:
| Método | Se admite la autenticación de usuarios. | Se admite la autenticación de la app. | Permisos de autorización admitidos | |
|---|---|---|---|---|
| Espacios | ||||
| Cómo crear un espacio |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Cómo configurar un espacio | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Obtén un espacio |
Con la autenticación de usuarios, ocurre lo siguiente:
|
|||
| Crea listas de espacios |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Espacios de búsqueda | — |
Con la autenticación de usuarios mediante privilegios de administrador:
|
||
| Actualiza un espacio |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Borra un espacio |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Cómo completar el proceso de importación de un espacio | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Cómo encontrar un mensaje directo |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Miembros | ||||
| Crea un miembro |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Obtén un miembro |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Crea una lista de los miembros |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Borra un miembro |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Actualiza un miembro |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Mensajes | ||||
| Crea un mensaje |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Recibe mensajes |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Crea una lista con los mensajes |
Con la autenticación de usuarios, ocurre lo siguiente:
|
|||
| Buscar mensajes | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Actualiza un mensaje |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Cómo borrar un mensaje |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Cómo fijar un mensaje | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Cómo dejar de fijar un mensaje | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Cómo enumerar los mensajes fijados | — |
Con la autenticación de usuarios, ocurre lo siguiente:
|
||
| Actualiza las tarjetas de un mensaje | — |
Con la autenticación de la app, ocurre lo siguiente:
|
||
| Reacciones | ||||
| Cómo crear una reacción | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Crea una lista con las reacciones | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Cómo borrar una reacción | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Emojis personalizados | ||||
| Cómo crear un emoji personalizado | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Borrar un emoji personalizado | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Obtén un emoji personalizado | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Enumera los emojis personalizados | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Contenido multimedia y archivos adjuntos | ||||
| Sube contenido multimedia como archivo adjunto | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Descarga contenido multimedia |
Con la autenticación de usuarios, se aplica lo siguiente:
|
|||
| Obtén un archivo adjunto de un mensaje | — |
Con la autenticación de la app, ocurre lo siguiente:
|
||
| Estados de lectura de los usuarios | ||||
| Obtén el estado de lectura del espacio de un usuario | — |
Con la autenticación de usuarios, ocurre lo siguiente:
|
||
| Actualiza el estado de lectura de un espacio de un usuario | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Obtén el estado de lectura de un hilo de un usuario | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Configuración del espacio del usuario | ||||
| Obtén el parámetro de configuración de notificaciones de un espacio de un usuario | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Actualiza el parámetro de configuración de notificaciones de un espacio de un usuario | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Eventos de espacios | ||||
| Obtener eventos de un espacio | — |
Con la autenticación de usuario,
debes usar un permiso basado en el
tipo de evento:
|
||
| Crea listas de eventos de espacios | — |
Con la autenticación de usuarios,
debes usar un permiso para cada
tipo de evento incluido en la solicitud:
|
||
| Secciones | ||||
| Cómo crear una sección | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Cómo borrar una sección | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Secciones de listas | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Actualiza una sección | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Cómo posicionar una sección | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Elementos de sección | ||||
| Cómo mover un elemento de sección | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
| Cómo crear una lista de elementos de sección | — |
Con la autenticación de usuarios, se aplica lo siguiente:
|
||
Para eventos de interacción de la app de Chat
En la siguiente tabla, se enumeran las formas habituales en que los usuarios interactúan con las apps de Chat y si se requiere o admite la autenticación:
| Situación | No se requiere autenticación | Se admite la autenticación de usuarios. | Se admite la autenticación de la app. | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Recibir mensajes de: |
|
|||||||||||||||
| Cómo responder mensajes: |
|
|||||||||||||||
| Envía mensajes nuevos: |
|
|||||||||||||||
Temas relacionados
- Para obtener una descripción general de la autenticación y la autorización en Google Workspace, consulta Más información sobre la autenticación y la autorización.
- Para obtener una descripción general de la autenticación y la autorización en Google Cloud, consulta Descripción general de la autenticación.
- Para obtener más información sobre las cuentas de servicio, consulta Cuentas de servicio.
- Para obtener más información sobre cómo las APIs de Google usan OAuth 2.0, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
- Configura la autenticación y la autorización con credenciales de usuario o una cuenta de servicio.
- Para administrar los permisos detallados de OAuth, consulta Administra los permisos detallados de OAuth para las apps de Google Chat.