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. Este documento identifica los términos clave que debes conocer antes de implementar la autenticación y 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 a qué nivel de acceso tiene. La autenticación es un requisito previo para la autorización. No puedes determinar a qué recursos se 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, la empleada de recepción solicita tu ID para verificar tu reserva. Tu ID te autentica en el hotel. El encargado de la recepción te entrega una llave de hotel. Esta llave te da acceso a ciertos recursos del hotel, como la habitación del hotel, 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 API de Google Workspace:

Pasos de alto nivel de una implementación de autenticación y autorización
Figura 1: Pasos generales de una implementación de autenticación y autorización
  1. Configura tu proyecto y app de Google Cloud: Durante el desarrollo, registras tu app en Google Cloud Console, lo que define 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 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. Solicitar recursos: Cuando tu app necesita acceder a los recursos de Google, le pregunta a Google mediante los permisos de acceso relevantes que registraste antes.

  4. Solicitar 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 le otorga a la app acceso a los datos solicitados.

  5. Envía una solicitud aprobada para los recursos: Si el usuario otorga 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 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á cualquier función que el token limite.

  7. Acceso a los recursos solicitados: La app usa el token de acceso de Google para invocar las API relevantes y acceder a los recursos.

  8. Obtener un token de actualización (opcional): Si la app necesita acceder a una API de Google más allá de la vida útil de un solo token de acceso, puede obtener un token de actualización.

  9. Solicitar más recursos: Si se necesita acceso adicional, la app le pide al usuario que otorgue permisos de acceso nuevos, lo que resulta en una solicitud nueva para obtener un token de acceso (pasos 3-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

El acto de garantizar que un principal, que puede ser un usuario o una app que actúe 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 que un usuario se autentique (acceda) en tu app. Por lo general, la autenticación se realiza mediante 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 en una app mediante Acceder con Google.
Autenticación de apps
Es el acto de una app que se autentica directamente en los servicios de Google en nombre del usuario que la ejecuta. Por lo general, la autenticación se realiza con credenciales creadas previamente en el código de tu app.
Autorización

Los permisos o la “autoridad” que tiene la 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 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 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 alguna forma de identificación, como una string secreta única, conocida solo entre 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
Es la credencial que se usa para solicitar acceso a datos públicos, como los datos proporcionados mediante la API de Google Maps o los archivos de Google Workspace compartidos 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
La credencial que se usa para solicitar acceso a los datos que pertenecen a los usuarios Esta es la credencial principal que se usa cuando se solicita acceso a datos mediante las APIs de Google Workspace. Esta credencial requiere el consentimiento del usuario.
Secreto del cliente
Es una string de caracteres que solo tu aplicación y el servidor de autorización deben conocer. El secreto del cliente protege los datos del usuario otorgando solo tokens a los solicitantes autorizados. Nunca debes incluir tu secreto del cliente en tu app.
Claves de cuenta de servicio
Las cuentas de servicio las usan para obtener autorización de un servicio de Google.
Cuenta de servicio
Es una credencial que se usa para las interacciones de servidor a servidor, como una app sin rostro que se ejecuta como proceso a fin de acceder a algunos datos o realizar alguna operación. Por lo general, las cuentas de servicio se usan para acceder a datos y operaciones basadas en la nube. Sin embargo, cuando se usan con la delegación de autoridad de todo el dominio, se pueden usar para acceder a los datos del usuario.
Alcance

Una string de URI de OAuth 2.0 que define un nivel de acceso a los recursos o acciones otorgados a una app. Para Google Workspace, los URI del permiso de autorización contienen el nombre de la app, el tipo de datos a los que accede y el nivel de acceso. Los usuarios de tu app pueden revisar los alcances solicitados y elegir qué acceso otorgar. Luego, el servidor de autenticación de Google muestra los permisos permitidos en tu token de acceso. Si quieres obtener más detalles, consulta Elige los permisos para tu app.

Servidor de autorización

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

Código de autorización

Un código enviado desde el servidor de autorización que se usa para obtener un token de acceso Solo se necesita un código cuando tu tipo de aplicación es una app de servidor web o una instalada.

Token de acceso

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

El servidor que aloja la API a la que tu app desea llamar.

Framework de OAuth 2.0

Es 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 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 se refiere a la entidad que posee los datos a los que tu app intenta acceder. Hay tres tipos de datos:

Datos de dominio público
Los datos son accesibles para todos, como algunos datos de Google Maps. Por lo general, se puede acceder a estos datos mediante una clave de API.
Datos del usuario final
Datos que pertenecen a un usuario final o un grupo específico, como los archivos de Google Drive de un usuario específico. Por lo general, se accede a este tipo de datos mediante un ID de cliente de OAuth 2 o una cuenta de servicio.
Datos de Cloud
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 autorice la app para acceder a datos y realizar operaciones en nombre del usuario.

Tipo de aplicación

El tipo de app que crearás. Cuando crees credenciales con la consola de Google Cloud, se te pedirá que selecciones el tipo de aplicación. Los tipos de aplicación son los siguientes: aplicación web (JavaScript), Android, app de Chrome, iOS, TV y dispositivos de entrada limitada, app de escritorio (también llamada "app instalada") y Plataforma de Windows universal (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 API de Google, de modo que los usuarios no están involucrados de manera directa. Por sí mismas, las cuentas de servicio no se pueden usar para acceder a los datos del usuario; datos a los que se suele acceder mediante 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 de todo el dominio. Para obtener más detalles, consulta Comprende las cuentas de servicio.

Delegación de autoridad de todo el dominio

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 de 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 de todo el dominio. Para obtener más detalles, consulta Delegación de autoridad de 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 qué tipo de acceso tiene la app a sus datos.