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 establecer primero la identidad del solicitante. Para obtener una definición más detallada, consulta la sección de terminología importante.

Considera el siguiente ejemplo simplificado de una reserva de hotel. Cuando llegas al hotel, el empleado de la recepción te solicita tu ID para verificar tu reserva. Tu ID te autentica en el hotel. El empleado de la recepción te entrega una llave del hotel. Esta llave te brinda 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 de alto nivel de una implementación de autenticación y autorización
Figura 1: Pasos de alto nivel de una implementación de autenticación y autorización
  1. Configura tu app y proyecto de Google Cloud: Durante el desarrollo, registras tu app en la consola de Google Cloud y defines los permisos 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 el acceso: Cuando se ejecuta la 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 acceso a los recursos de Google, le solicita a Google con los permisos de acceso relevantes que registraste anteriormente.

  4. Solicita el consentimiento del usuario: Si tu app se autentica como usuario final, Google mostrará 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 de recursos: Si el usuario acepta los permisos de acceso, tu app agrupa las credenciales y los permisos 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 muestra un token de acceso: El token de acceso contiene una lista de los permisos de acceso otorgados. Si la lista de permisos que se muestra 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 invoca las APIs relevantes y acceder a los recursos.

  8. Obtén un token de actualización (opcional): Si tu app necesita acceso 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, la app le solicita 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 muestra 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
El acto de un usuario que autentica (accede) a tu app. La autenticación del usuario suele realizarse 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 ante la app. La autenticación del usuario se puede incorporar a una app con Acceder con Google.
Autenticación de apps
El acto de una app que se autentica directamente en los servicios de Google en nombre del usuario que ejecuta la app. Por lo general, la autenticación de apps se realiza con credenciales creadas previamente en el código de la app.
Autorización

Los permisos o la “autoridad” que tiene el principal para acceder a los datos o realizar operaciones. El acto 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 de 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 una 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 estas credenciales de autenticación: clave de API, ID de cliente de OAuth 2.0 y cuentas de servicio.

Clave de API
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 compartidos con la 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
La credencial que se usa para solicitar acceso a los datos que pertenecen al 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. El secreto del cliente protege los datos del usuario, ya que solo otorga tokens a los solicitantes autorizados. Nunca debes incluir el secreto de cliente no encriptado 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 de 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 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. Por lo general, las cuentas de servicio se usan para acceder a operaciones y datos 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 acciones otorgados 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 qué acceso otorgar. Luego, el servidor de autenticación de Google muestra los permisos permitidos a tu app en un token de acceso. Para obtener más detalles, consulta Cómo elegir los permisos de tu app.

Servidor de autorización

El servidor de Google para otorgar acceso, con un token de acceso, a los datos y las operaciones solicitados de una app

Código de autorización

Es un código que se envía desde el servidor de autorización y 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

Un token que otorga acceso a una API de Google Workspace. Un solo token de acceso puede otorgar distintos grados, conocidos como alcances, de acceso 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

Un estándar que tu app puede usar para proporcionarle un "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 una 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 Principales.

Tipo de datos

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

Datos de dominio público
Datos a los que cualquier persona puede acceder, 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
Datos que pertenecen a un proyecto de Google Cloud. Por lo general, una cuenta de servicio accede a este tipo de datos.
Consentimiento del usuario

Un paso de autorización que requiere que el usuario de tu app la autorice para acceder a los datos y realizar operaciones en su nombre.

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: aplicación web (JavaScript), Android, app de Chrome, iOS, TVs y dispositivos de entrada limitados, app para computadoras (también llamada "app instalada") y Plataforma universal de Windows (UWP).

Cuenta de servicio

Un tipo especial de Cuenta de Google que representa a un usuario no humano que debe 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 estén involucrados de manera directa. Por sí solas, las cuentas de servicio no se pueden usar para acceder a los datos del usuario, a los que se accede de forma habitual con las APIs de Workspace. Sin embargo, una cuenta de servicio puede acceder a los datos del usuario mediante la implementación de 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 la 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 tiene tu app a sus datos.