Más información sobre la autenticación y la autorización

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 identifican los términos clave que debes conocer antes de implementar la autenticación y la autorización en tu app.

La autenticación identifica quién realiza la solicitud. La autorización identifica a qué recursos puede acceder el solicitante y qué nivel de acceso tiene. La autenticación es un requisito previo para la autorización. No puedes determinar a qué recursos acceder sin primero establecer la identidad del solicitante. Para obtener una definición más detallada, consulta la sección Terminología importante.

Considera el siguiente ejemplo simplificado de una reserva de hotel. Cuando llegas al hotel, el recepcionista te pide tu documento de identidad para verificar tu reserva. Tu documento de identidad te autentica en el hotel. El recepcionista te da una llave del hotel. Esta llave te da acceso a ciertos recursos del hotel, como tu habitación, el gimnasio y el centro de negocios. La clave del hotel te autoriza a acceder a esos recursos.

Descripción general del proceso

En el siguiente diagrama, se muestran los pasos de alto nivel de autenticación y autorización para las APIs de Google Workspace:

Pasos generales para implementar la autenticación y la autorización
Figura 1: Pasos de alto nivel para implementar la autenticación y la autorización
  1. Configura tu proyecto y tu app de Google Cloud: Durante el desarrollo, registra tu app en la consola de Google Cloud, define los alcances de autorización y las credenciales de acceso para autenticar tu app con una clave de API, una credencial de usuario final o una credencial de cuenta de servicio.

  2. Autentica tu app para acceder: Cuando se ejecuta tu app, se evalúan las credenciales de acceso registradas. Si tu app se autentica como usuario final, es posible que se muestre un mensaje de acceso.

  3. Solicita recursos: Cuando tu app necesita acceder a recursos de Google, se los solicita a Google con los alcances de acceso pertinentes que registraste anteriormente.

  4. Solicita el consentimiento del usuario: Si tu app se autentica como usuario final, Google muestra la pantalla de consentimiento de OAuth para que el usuario pueda decidir si otorga a tu app acceso a los datos solicitados.

  5. Envía una solicitud aprobada para los recursos: Si el usuario da su consentimiento para los alcances de acceso, tu app agrupa las credenciales y los alcances de acceso 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.

  6. Google devuelve un token de acceso: El token de acceso contiene una lista de los permisos de acceso otorgados. Si la lista de permisos devuelta es más limitada que los permisos de acceso solicitados, tu app inhabilitará las funciones limitadas por el token.

  7. Accede a los recursos solicitados: Tu app usa el token de acceso de Google para invocar las APIs pertinentes y acceder a los recursos.

  8. Obtén un token de actualización (opcional): Si tu app necesita acceder a una API de Google más allá del ciclo de vida de un solo token de acceso, puede obtener un token de actualización.

  9. Solicita más recursos: Si se necesita acceso adicional, tu app le pide al usuario que otorgue nuevos permisos de acceso, lo que genera una nueva solicitud para obtener un token de acceso (pasos 3 a 6).

Terminología importante

A continuación, se incluye una lista de términos relacionados con la autenticación y la autorización:

Autenticación

Es el acto de garantizar que un principal, que puede ser un usuario o una app que actúa en nombre de un usuario, sea quien dice ser. Cuando escribas apps de Google Workspace, debes tener en cuenta estos tipos de autenticación:

Autenticación de usuarios
Es el acto de un usuario de autenticarse (acceder) a tu app. La autenticación del usuario suele llevarse a cabo a través de un proceso de acceso en el que el usuario usa una combinación de nombre de usuario y contraseña para verificar su identidad en la app. La autenticación del usuario se puede incorporar a una app con Acceder con Google.
Autenticación de la app
Es el acto de una app que se autentica directamente en los servicios de Google en nombre del usuario que ejecuta la app. La autenticación de la app suele llevarse a cabo con credenciales creadas previamente en el código de la app.
Autorización

Son los permisos o la "autoridad" que tiene la principal para acceder a los datos o realizar operaciones. El proceso de autorización se lleva a cabo a través del código que escribes en tu app. Este código le informa al usuario que la app desea actuar en su nombre y, si se permite, usa las credenciales únicas de tu app para obtener un token de acceso de Google que se usa para acceder a los datos o realizar operaciones.

Credentials

Es una forma de identificación que se usa en la seguridad del software. En términos de autenticación, una credencial suele ser una combinación de nombre de usuario y contraseña. En términos de autorización para las APIs de Google Workspace, una credencial suele ser alguna forma de identificación, como una cadena secreta única, que solo conocen el desarrollador de la app y el servidor de autenticación. Google admite las siguientes credenciales de autenticación: clave de API, ID de cliente de OAuth 2.0 y cuentas de servicio.

Clave de API
Es la credencial que se usa para solicitar acceso a datos públicos, como los datos proporcionados con la API de Maps o los archivos de Google Workspace que se comparten con el parámetro de configuración "Cualquier persona en Internet con este vínculo" en la configuración de uso compartido de Google Workspace.
ID de cliente de OAuth 2
Es la credencial que se usa para solicitar acceso a los datos propiedad del usuario. Esta es la credencial principal que se usa cuando se solicita acceso a los datos con las APIs de Google Workspace. Esta credencial requiere el consentimiento del usuario.
Secreto del cliente
Es una cadena de caracteres que solo deben conocer tu aplicación y el servidor de autorización. La clave secreta del cliente protege los datos del usuario, ya que solo otorga tokens a los solicitantes autorizados. Nunca debes incluir el secreto de cliente sin encriptar en tu app. Te recomendamos que almacenes el secreto de cliente de forma segura. Para obtener más información, consulta Cómo controlar las credenciales del cliente de forma segura.
Claves de cuenta de servicio
Las cuentas de servicio lo usan para obtener autorización para un servicio de Google.
Cuenta de servicio
Es una credencial que se usa para las interacciones servidor a servidor, como una app sin rostro que se ejecuta como un proceso para acceder a algunos datos o realizar alguna operación. Las cuentas de servicio suelen usarse para acceder a datos y operaciones basados en la nube. Sin embargo, cuando se usan con la delegación de autoridad en todo el dominio, se pueden usar para acceder a los datos del usuario.
Alcance

Es una cadena de URI de OAuth 2.0 que define un nivel de acceso a los recursos o las acciones que se otorgan a una app. En el caso de Google Workspace, los URIs de alcance de autorización contienen el nombre de la app de Google Workspace, el tipo de datos a los que accede y el nivel de acceso. Los usuarios de tu app pueden revisar los permisos solicitados y elegir a qué acceso otorgar. Luego, el servidor de autenticación de Google devuelve los permisos permitidos a tu app en un token de acceso. Para obtener más detalles, consulta Cómo elegir los alcances de tu app.

Servidor de autorización

Servidor de Google para otorgar acceso, mediante un token de acceso, a los datos y las operaciones solicitados de una app.

Código de autorización

Es un código que envía el servidor de autorización y que se usa para obtener un token de acceso. Solo se necesita un código cuando el tipo de aplicación es una app de servidor web o una app instalada.

Token de acceso

Es un token que otorga acceso a una API de Google Workspace. Un solo token de acceso puede otorgar diferentes grados de acceso, conocidos como alcances, a varias APIs. El código de autorización de tu app solicita tokens de acceso y los usa para invocar las APIs de Google Workspace.

Servidor de recursos

Es el servidor que aloja la API a la que tu app quiere llamar.

Marco de trabajo de OAuth 2.0

Es un estándar que tu app puede usar para proporcionarle “acceso delegado seguro” o acceso a datos y operaciones en nombre del usuario de la app. Los mecanismos de autenticación y autorización que usas en tu app representan tu implementación del framework de OAuth 2.0.

Principal

Una entidad, también conocida como identidad, a la que se le puede otorgar acceso a un recurso. Las APIs de Google Workspace admiten dos tipos de principales: cuentas de usuario y cuentas de servicio. Para obtener más detalles, consulta Principals.

Tipo de datos

En el contexto de la autenticación y la autorización, el tipo de datos hace referencia a la entidad propietaria de los datos a los que tu app intenta acceder. Existen tres tipos de datos:

Datos de dominio público
Datos a los que puede acceder cualquier persona, como algunos datos de Google Maps Por lo general, se accede a estos datos con una clave de API.
Datos del usuario final
Datos que pertenecen a un usuario final o grupo específico, como los archivos de Google Drive de un usuario específico Por lo general, se accede a este tipo de datos con un ID de cliente o una cuenta de servicio de OAuth 2.
Datos en la nube
Son los datos que pertenecen a un proyecto de Google Cloud. Por lo general, se accede a este tipo de datos a través de una cuenta de servicio.
Consentimiento del usuario

Es un paso de autorización que requiere que el usuario de tu app autorice a la app a acceder a los datos y realizar operaciones en nombre del usuario.

Tipo de aplicación

El tipo de app que crearás Cuando creas credenciales con la consola de Google Cloud, se te solicita que selecciones el tipo de aplicación. Los tipos de aplicaciones son los siguientes: aplicación web (JavaScript), Android, app de Chrome, iOS, TVs y dispositivos de entrada limitada, app para computadoras (también llamada "app instalada") y Plataforma universal de Windows (UWP).

Cuenta de servicio

Es un tipo especial de Cuenta de Google que representa a un usuario no humano que necesita autenticarse y tener autorización para acceder a los datos. Tu aplicación asume la identidad de la cuenta de servicio para llamar a las APIs de Google, de modo que los usuarios no se involucren de forma directa. Por sí solas, las cuentas de servicio no se pueden usar para acceder a los datos del usuario, a los que se suele acceder con las APIs de Workspace. Sin embargo, una cuenta de servicio puede acceder a los datos del usuario si implementa la delegación de autoridad en todo el dominio. Para obtener más detalles, consulta Comprende las cuentas de servicio.

Delegación de autoridad de todo el dominio

Es una función de administración que puede autorizar a una aplicación para que acceda a los datos del usuario en nombre de los usuarios de la organización de Google Workspace. La delegación en todo el dominio se puede usar para realizar tareas relacionadas con el administrador en los datos del usuario. Para delegar autoridad de esta manera, los administradores de Google Workspace usan cuentas de servicio con OAuth 2.0. Debido a la potencia de esta función, solo los administradores avanzados pueden habilitar la delegación de autoridad en todo el dominio. Para obtener más detalles, consulta Cómo delegar autoridad a todo el dominio a una cuenta de servicio.

Próximo paso

Configura la pantalla de consentimiento de OAuth de tu app para asegurarte de que los usuarios puedan comprender y aprobar el acceso que tu app tiene a sus datos.