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 la autenticación y trabajo de autorización para apps de Chat y solicitudes a la API de Chat.
Descripción general del proceso
En el siguiente diagrama, se muestran los pasos de alto nivel de la 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 una proyecto de Google Cloud. En el proyecto de Google Cloud, habilitas la API de Chat, configura tu app de Chat y establece la autenticación. Para obtener más información, consulta Desarrollo en Google Workspace y Compila 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ó, le solicita que acceda.
Solicita recursos: Tu app solicita acceso con los alcances que especificas cuando configuras la autenticación.
Solicita el consentimiento: Si tu app se autentica como usuario, Google muestra una pantalla de consentimiento de OAuth para que el usuario pueda decidir si le otorga a tu app acceso a los datos solicitados. La autenticación con una cuenta de servicio requerir el consentimiento del usuario.
Enviar una solicitud aprobada de recursos: Si el usuario da su consentimiento permisos de autorización, tu app empaqueta las credenciales y las credenciales permisos 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 la 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 invocarla API de Chat y acceder a sus recursos.
Obtener un token de actualización (opcional): Si la aplicación debe acceder al La API de Google Chat más allá de la vida útil de un solo token de acceso, puede obtener un token de actualización. Si deseas obtener más información, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
Solicita más recursos: Si tu app necesita más acceso, le solicita 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. de forma asíncrona. También pueden completar tareas en nombre de un usuario, como crear un espacio de Chat o obtener 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 al API de Chat, que requieren autenticación y autorización.
Las respuestas a las interacciones del usuario no requieren autenticación.
Las apps de Google Chat no necesitan autenticarse de chat para recibir y responder de forma síncrona eventos de interacción.
Las apps de Google Chat reciben eventos de interacción cada vez que un usuario interactúa o invoca una app de Chat, incluidos los siguientes:
- 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 barra de la app de Chat.
En el siguiente diagrama, se muestra una secuencia de solicitud-respuesta entre Usuario de Chat y 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 muestra 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 con la app de Chat evento.
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, que requiere autenticación y autorización.
Cuando se llama 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. Para ejemplo, luego de detectar una interrupción del servidor, una app de Chat puede llamar al API de Chat para:
- Crea un espacio de Chat dedicado a investigar y solucionar la interrupción.
- Agregar personas al espacio de Chat
- Publica un mensaje en el espacio de Chat para brindar detalles sobre la interrupción.
El siguiente diagrama muestra una secuencia de mensajes asíncrona 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.create
y, luego, incluye las credenciales del usuario en la solicitud HTTP. - Google Chat autentica la app de Chat con una cuenta de servicio o credenciales de usuario.
- Google Chat renderiza el mensaje de la app en un espacio de Chat especificado.
Permisos de la API de Chat
Cómo configurar la pantalla de consentimiento de OAuth y elegir los permisos para definir qué información se mostrará a los usuarios y revisores de apps, y registrarte tu aplicación para poder publicarla más tarde.
Para definir el nivel de acceso otorgado a tu app, debes identificar y declarar permisos de autorización Un permiso de acceso 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 del permiso | 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. Tú no pueden autenticarse con credenciales de usuario ni con delegación de todo el dominio al usar este alcance. |
Permisos sensibles
Código de alcance | Descripción |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
Crear conversaciones y espacios, y ver o editar 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
|
Consulta el chat y los espacios en Chat. |
https://www.googleapis.com/auth/chat.memberships
|
Ver, agregar, actualizar y quitar miembros de las conversaciones en 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
|
Consultar el chat y los espacios que pertenecen al dominio del administrador en Chat |
https://www.googleapis.com/auth/chat.admin.spaces
|
Ver o editar el chat y los 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
|
Crear conversaciones y espacios, y ver o actualizar metadatos (incluida la configuración del historial y la configuración de acceso) en Chat Requiere aprobación del administrador. Este alcance solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación de todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
Crear conversaciones y espacios nuevos en Chat Requiere aprobación del administrador. Este alcance solo admite la autenticación de apps con cuentas de servicio. Tú no pueden autenticarse con credenciales de usuario ni con delegación de todo el dominio al usar este alcance. |
https://www.googleapis.com/auth/chat.app.memberships
|
Consulta, agrega, actualiza y quita miembros de las conversaciones y espacios en Chat. Requiere la aprobación del administrador. Este alcance solo admite la autenticación de apps con cuentas de servicio. No puedes autenticarte con credenciales de usuario ni con la delegación de todo el dominio con este permiso. |
https://www.googleapis.com/auth/chat.customemojis
|
Ver, crear y borrar emojis personalizados 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 Cómo autorizar 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.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
|
Borrar conversaciones y espacios, y quitar el acceso a los archivos asociados en Chat. Requiere la aprobación del administrador. Este permiso solo admite la autenticación de apps con cuentas de servicio. Tú no pueden autenticarse con credenciales de usuario ni con delegación de todo el dominio al usar este alcance. |
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 prepararte 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 adicional de la app. Para obtener información sobre esto consulta Pasos para aplicaciones que solicitan datos sensibles permisos.
Restringido: Estos permisos proporcionan un acceso amplio a los datos del usuario de Google. y requieren que realices el proceso de verificación de permiso restringido. Para para obtener más información sobre este requisito, consulte Servicios de la API de Google: Datos del Usuario Política y Requisitos adicionales para la API específica Permisos. Consulta también Pasos para apps que solicitan permisos limitados.
Si tu app requiere acceso a otras APIs de Google, también puedes agregar esos permisos. Para obtener más información sobre los alcances de la API de Google, consulta Cómo usar OAuth 2.0 para Accede a las APIs de Google
Para obtener más información sobre los permisos de las APIs de Google Workspace, consulta Cómo configurar la pantalla de consentimiento de OAuth y elegir permisos.
Tipos de autenticación requerida
Hay dos formas en que las apps de Chat pueden autenticarse y autorizar con la API de Chat:
- Autenticación de usuarios
- La autenticación del usuario permite que una app de Chat acceda a los datos del usuario y complete acciones en su nombre. Los permisos de OAuth especifican los datos y las acciones autorizados. A menos que la app de Chat fuera instalado por un administrador o se entregó delegación de todo el dominio, la primera vez que la app de Chat realiza una acción en un en nombre del usuario, este debe autorizar la app de Chat con la pantalla de consentimiento de OAuth.
- Autenticación de apps
La autenticación de apps permite que una app de chat use credenciales de cuenta de servicio, acceda a datos y complete acciones en su nombre. Dado que el App de Chat usa sus propias credenciales para acceder a los recursos y trabajar con ellos. los usuarios finales no necesitan aprobar el 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 apps 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 la API de Google Chat métodos que admiten este permiso de autorización para crear, actualizar, obtener enumerar o borrar recursos a los que tiene acceso, como mensajes en espacios a las que agreguen tu app de Chat los usuarios finales. Tu app de chat puede otorgarse este permiso de forma automática, sin necesidad de autorización del administrador ni del usuario final.https://www.googleapis.com/auth/chat.app.*
(Versión preliminar para desarrolladores): El uso de estos permisos requiere la aprobación única del administrador. Para recibir la aprobación del administrador, Preparar 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 configurar la app en el SDK de Google Workspace Marketplace. Estos permisos Permite que tu app de Chat llame a una API específica de Google Chat . Por ejemplo,chat.app.spaces.create
permite que las apps creen espacios de Chat.
Si un método admite la autenticación de usuarios o 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 app de Chat puede acceder.
- Con la autenticación del usuario, los métodos solo muestran los recursos a los que puede acceder el usuario.
Por ejemplo, si llamas al método spaces.list()
con la autorización de la app, se muestra un resultado
la lista de espacios a los que pertenece la app de Chat.
Si llamas a spaces.list()
con la autorización del usuario, se muestra la lista de espacios de los que es miembro. En
puedes usar ambos tipos de
autenticación cuando llames a la API de Chat, según el diseño
y funciones de la app de Chat.
Para las llamadas a la API de Chat asíncronas
En la siguiente tabla, se enumeran los métodos de la API de Chat y sus permisos de autorización compatibles:
Método | Compatible con la autenticación de usuarios | Compatible con la autenticación de apps | Permisos de autorización admitidos | |
---|---|---|---|---|
Espacios | ||||
Cómo crear un espacio |
Con la autenticación de usuarios:
|
|||
Configura un espacio | — |
Con la autenticación del usuario:
|
||
Obtén un espacio |
Con la autenticación del usuario:
|
|||
Crea listas de espacios |
Con la autenticación del usuario:
|
|||
Espacios de búsqueda | — |
Con la autenticación de usuarios con privilegios de administrador:
|
||
Actualiza un espacio |
Con la autenticación del usuario:
|
|||
Cómo borrar un espacio |
Con la autenticación del usuario:
|
|||
Completa el proceso de importación de un espacio | — |
Con la autenticación de usuarios:
|
||
Cómo encontrar un mensaje directo |
Con la autenticación de usuarios:
|
|||
Miembros | ||||
Crea un miembro |
Con la autenticación del usuario:
|
|||
Obtén un miembro |
Con la autenticación de usuarios:
|
|||
Enumera los miembros |
Con la autenticación de usuarios:
|
|||
Cómo borrar un miembro |
Con la autenticación de usuarios:
|
|||
Actualiza un miembro |
Con la autenticación del usuario:
|
|||
Mensajes | ||||
Crea un mensaje |
Con la autenticación del usuario:
|
|||
Cómo recibir un mensaje |
Con la autenticación del usuario:
|
|||
Crea una lista de mensajes | — |
Con la autenticación del usuario:
|
||
Actualiza un mensaje |
Con la autenticación del usuario:
|
|||
Cómo borrar un mensaje |
Con la autenticación de usuarios:
|
|||
Reacciones | ||||
Cómo crear una reacción | — |
Con la autenticación del usuario:
|
||
Crea una lista con las reacciones | — |
Con la autenticación del usuario:
|
||
Cómo borrar una reacción | — |
Con la autenticación del usuario:
|
||
Emojis personalizados | ||||
Cómo crear un emoji personalizado | — |
Con la autenticación de usuarios:
|
||
Cómo borrar un emoji personalizado | — |
Con la autenticación de usuarios:
|
||
Obtén un emoji personalizado | — |
Con la autenticación del usuario:
|
||
Enumerar emojis personalizados | — |
Con la autenticación del usuario:
|
||
Contenido multimedia y archivos adjuntos | ||||
Cómo subir contenido multimedia como archivo adjunto | — |
Con la autenticación de usuarios:
|
||
Descarga contenido multimedia |
Con la autenticación del usuario:
|
|||
Cómo obtener un archivo adjunto de un mensaje | — |
Con la autenticación de apps:
|
||
Estados de lectura de los usuarios | ||||
Obtén el estado de lectura del espacio de un usuario | — |
Con la autenticación de usuarios:
|
||
Actualiza el estado de lectura del espacio de un usuario | — |
Con la autenticación de usuarios:
|
||
Obtén el estado de lectura de subprocesos de un usuario | — |
Con la autenticación del usuario:
|
||
Eventos de Spaces | ||||
Obtener eventos del espacio | — |
Con la autenticación del usuario, debes usar un permiso basado en el tipo de evento:
|
||
Mostrar lista de eventos del espacio | — |
Con la autenticación de usuarios,
debes usar un alcance para cada
tipo de evento incluido en la solicitud:
|
Eventos de interacción con la app de Chat
En la siguiente tabla, se enumeran las formas comunes 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 | Autenticación de usuarios compatible | Autenticación de la app compatible | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Recibir mensajes de: |
|
|||||||||||||||
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 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 Usar 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.