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 Terminología importante.
Considera el siguiente ejemplo simplificado de una reserva de hotel. Cuando llegas al hotel, el personal de recepción solicita tu ID para verificar tu reserva. Tu ID te autentica en el hotel. El personal de recepción te da una llave del 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 de 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](https://developers-dot-devsite-v2-prod.appspot.com/workspace/images/auth-overview.png?authuser=6&hl=es)
Configura tu app y proyecto de Google Cloud: durante el desarrollo, registra tu app en la consola de Google Cloud. Para ello, 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.
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 un usuario final, es posible que se muestre un mensaje de acceso.
Solicita recursos: Cuando tu app necesite acceso a los recursos de Google, le solicitará a Google los permisos de acceso relevantes que registraste antes.
Solicitar el consentimiento del usuario: Si la app se autentica como un usuario final, Google muestra la pantalla de consentimiento de OAuth para que el usuario pueda decidir si le otorgas a tu app acceso a los datos solicitados.
Envía una solicitud de recursos aprobada: Si el usuario da su consentimiento para los permisos de acceso, la 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.
Google muestra un token de acceso: El token de acceso contiene una lista de los permisos de acceso otorgados. Si la lista de alcances que se muestra es más limitada que los permisos de acceso solicitados, tu app inhabilitará todas las funciones limitadas por el token.
Acceder a los recursos solicitados: La app usa el token de acceso de Google para invocar las APIs relevantes y acceder a los recursos.
Obtener un token de actualización (opcional): Si tu 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.
Solicita más recursos: Si se necesita acceso adicional, la app le pedirá al usuario que otorgue nuevos alcances de acceso, lo que genera una solicitud nueva para obtener un token de acceso (pasos 3 a 6).
Terminología importante
A continuación, presentamos una lista de términos relacionados con la autenticación y la autorización:
- Autenticación
El acto de garantizar que una principal, que puede ser un usuario o una app que actúa en nombre de un usuario, es 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 autentica (accede) a tu app. Por lo general, esta autenticación se lleva a cabo mediante un proceso de acceso en el que el usuario utiliza una combinación de nombre de usuario y contraseña para verificar su identidad en la app. La autenticación de usuarios se puede incorporar en una app mediante Acceder con Google.
- Autenticación de apps
- El acto de que una app se autentica directamente en los servicios de Google en nombre del usuario que la ejecuta. Por lo general, la autenticación de la app se realiza con credenciales creadas previamente en el código de la 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 realiza mediante el 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
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 string secreta única, conocida solo entre 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
- Credencial que se usa para solicitar acceso a datos públicos, como los datos proporcionados mediante la API de Google Maps o archivos de Google Workspace compartidos mediante el parámetro de configuración “Cualquier persona en Internet que tenga 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 son 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 la aplicación y el servidor de autorización. El secreto del cliente protege los datos del usuario otorgando tokens solo a los solicitantes autorizados. Nunca debes incluir el secreto del cliente sin encriptar en la app. Te recomendamos que lo almacenes de forma segura. Para obtener más información, consulta Administra 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
- Credencial que se usa en las interacciones de servidor a servidor, como una app sin cara 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 datos y operaciones basados 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 recursos o acciones otorgados a una app. En Google Workspace, los URI 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é tipo de 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 información, consulta Cómo elegir los alcances de tu app.
- Servidor de autorización
El servidor de Google para otorgar acceso a los datos y las operaciones solicitados de una app mediante un token de acceso.
- Código de autorización
Es 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 app instalada.
- Token de acceso
Un token que otorga acceso a una API de Google Workspace. Un solo token de acceso puede otorgar diferentes grados, conocidos como alcances, de acceso a varias API. El código de autorización de tu app solicita tokens de acceso y los usa para invocar a 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
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 marco de trabajo 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 autenticación y 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
- Datos a los que puede acceder cualquier persona, como algunos datos de Google Maps Por lo general, se accede a estos datos mediante una clave de API.
- Datos del usuario final
- Son 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 mediante un ID de cliente o una cuenta de servicio de OAuth 2.
- Datos de la nube
- Datos que son propiedad de 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 autorice a la app para 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 pide que selecciones el tipo de aplicación. Los tipos de aplicación son: aplicación web (JavaScript), Android, app de Chrome, iOS, TVs y dispositivos de entrada limitada, aplicación de escritorio (también denominada "aplicación instalada") y Plataforma universal de Windows (UWP).
- Cuenta de servicio
Es un tipo especial de Cuenta de Google destinada a representar 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 estén involucrados de manera directa. Por sí mismas, las cuentas de servicio no se pueden usar para acceder a los datos del usuario; por lo general, los datos a los que se accede 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
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 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 Delegar la autoridad de todo el dominio a una cuenta de servicio.
Próximo paso
Configura la pantalla de consentimiento de OAuth de tu app para garantizar que los usuarios puedan comprender y aprobar el acceso que tiene la app a sus datos.