Autenticación en Google

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Este documento te ayuda a comprender algunos conceptos clave de la autenticación y dónde obtener ayuda para implementar o solucionar problemas de autenticación. El enfoque principal de la documentación de autenticación es para los servicios de Google Cloud, pero la lista de casos de uso de autenticación y el material introductorio de esta página incluyen casos prácticos para otros productos de Google. también.

Introducción

La autenticación es el proceso mediante el cual se confirma tu identidad mediante el uso de algún tipo de credencial. La autenticación consiste en demostrar que eres quien dices ser.

Google proporciona muchas APIs y servicios, que requieren autenticación para acceder. Google también proporciona una serie de servicios que alojan aplicaciones escritas por nuestros clientes. Estas aplicaciones también deben determinar la identidad de sus usuarios.

Me gustaría... Información
Autenticar en un servicio de Google Cloud desde mi aplicación con un lenguaje de programación de alto nivel. Configura las credenciales predeterminadas de la aplicación y, luego, usa una de las bibliotecas cliente de Cloud.
Autentícate en una aplicación que se ejecuta en Cloud Run o Cloud Functions. Obtén un token de ID de OpenID Connect (OIDC) y proporciónalo con tu solicitud.
Implementa la autenticación de usuario para una aplicación que accede a los servicios y recursos de Google o Google Cloud. Consulta Cómo autenticar usuarios de aplicaciones para ver una comparación de las opciones.
Prueba algunos comandos gcloud o las llamadas a la API de REST de Google Cloud en mi entorno de desarrollo local. Configura credenciales predeterminadas de la aplicación con tus credenciales de acceso. Luego, puedes usar una herramienta de línea de comandos como curl para llamar a la API de REST.
Obtén ayuda con otro caso práctico de autenticación. Consulta la página Casos prácticos de autenticación.
Consulta una lista de los productos que proporciona Google en el espacio de administración de identidades y accesos. Consulta la página Productos de administración de identidades y accesos de Google.

Tipos de autenticación

Se requiere autenticación para acceder a la mayoría de los recursos y aplicaciones. Esta documentación asiste a los profesionales técnicos que crean código de aplicación con uno de los siguientes objetivos:

OAuth 2.0

Las API de Google implementan y extienden el framework de OAuth 2.0. En el framework de OAuth 2.0, se describen varios “flujos” de autenticación o enfoques de autenticación. En general, la aplicación presenta credenciales, que representan una principal (ya sea un usuario o una cuenta de servicio), en un módulo intermedio llamado Servidor de autorización. El servidor de autorización responde con un token, que la aplicación puede usar para autenticarse con el servicio y acceder a los recursos. El token incluye uno o más permisos, que reflejan qué acceso está autorizado a realizar la aplicación. La aplicación presenta el token al servidor de recursos para obtener acceso a los recursos.

Autorización para los servicios de Google Cloud

Los servicios de Google Cloud usan Identity and Access Management (IAM) para la autenticación. IAM ofrece control detallado, por principal y por recurso. Cuando te autenticas en los servicios de Google Cloud, por lo general, usas un permiso que incluye todos los servicios de Google Cloud (https://www.googleapis.com/auth/cloud-platform).

Los permisos de OAuth 2.0 pueden proporcionar una segunda capa de protección, que es útil si tu código se ejecuta en un entorno en el que la seguridad del token es una preocupación, como una app para dispositivos móviles. En esta situación, puedes usar permisos más detallados para reducir el riesgo en caso de que exista un token vulnerado. Los permisos de OAuth 2.0 también se usan para autorizar el acceso a los datos del usuario.

Credenciales predeterminadas de la aplicación (ADC)

Las ADC son una estrategia que usan las bibliotecas cliente de Cloud y las bibliotecas cliente de las APIs de Google para encontrar credenciales automáticamente según el entorno de la aplicación y usarlas a fin de autenticarse en las APIs de Google Cloud. Cuando configuras ADC y usas una biblioteca cliente, el código puede ejecutarse en un entorno de desarrollo o de producción sin cambiar la forma en que la aplicación se autentica en los servicios y las APIs de Google Cloud.

Si escribes código que necesita usar los servicios de Google Cloud, debes usar las ADC siempre que sea posible. Usar las ADC puede simplificar el proceso de desarrollo, ya que te permite usar el mismo código de autenticación en una variedad de entornos.

Para configurar ADC, proporciona las credenciales según la ubicación en la que quieras que se ejecute el código. Después de proporcionar tus credenciales a ADC, ADC ubica las credenciales de forma automática y obtiene un token en segundo plano, lo que permite que tu código de autenticación se ejecute en diferentes entornos sin modificación. Por ejemplo, la misma versión de tu código podría autenticarse con las APIs de Google Cloud cuando se ejecuta en una estación de trabajo de desarrollo o en Compute Engine.

Terminología

Es importante comprender los siguientes términos cuando se analiza la autenticación y la autorización.

Authentication

La autenticación es el proceso que determina la identidad de la principal que intenta acceder a un recurso.

Autorización

La autorización es el proceso que determina si la principal o la aplicación que intenta acceder a un recurso se autorizó para ese nivel de acceso.

Credenciales

Para la autenticación, las credenciales son un objeto digital que proporciona prueba de identidad. Las contraseñas, los PIN y los datos biométricos se pueden usar como credenciales, según los requisitos de la aplicación. Por ejemplo, cuando accedes a tu Cuenta de Google, proporcionas tu contraseña y cumples con cualquier requisito de autenticación de dos factores como prueba de que la cuenta te pertenece, y que una persona que actúa de mala fe no está falsificando tu identidad.

A veces, los tokens se denominan credenciales, pero en esta documentación se hace referencia a ellos como un objeto digital que demuestra que el emisor proporcionó las credenciales adecuadas, pero no son credenciales en sí.

El tipo de credencial que debes proporcionar depende del recurso que estés autenticando. Se pueden crear los siguientes tipos de credenciales en la consola de Google Cloud:

  • Claves de API

    A diferencia de otras credenciales, las claves de API no identifican un principal. Las claves de API proporcionan un proyecto de Google Cloud para fines de facturación y cuotas.

    Muchas APIs de Google no aceptan claves de API. Para obtener más información sobre las claves de API, consulta Claves de API.

  • IDs de clientes OAuth

    Los IDs de cliente de OAuth se usan para identificar una aplicación en Google. Esto es necesario cuando deseas acceder a los recursos que son propiedad de tus usuarios finales, también llamados OAuth de tres segmentos (3LO). Para obtener más información sobre cómo obtener y usar un ID de cliente de OAuth, consulta Configura OAuth 2.0.

Principal

Una principal es una identidad a la que se le puede otorgar acceso a un recurso. Para la autenticación, las APIs de Google admiten dos tipos de principales: cuentas de usuario y cuentas de servicio.

Usar una cuenta de usuario o una cuenta de servicio para la autenticación depende de tu caso de uso. Puedes usar ambas, cada una en diferentes etapas de tu proyecto o en diferentes entornos de desarrollo.

Cuentas de usuario

Las cuentas de usuario representan a un desarrollador, un administrador o cualquier otra persona que interactúe con los servicios y las APIs de Google.

Las cuentas de usuario se administran como Cuentas de Google, ya sea con Google Workspace o Cloud Identity. También pueden ser cuentas de usuario administradas por un proveedor de identidad de terceros y federadas con la federación de Workload Identity.

Con una cuenta de usuario, puedes autenticarte en las APIs y los servicios de Google de las siguientes maneras:

Cuentas de servicio

Las cuentas de servicio son cuentas que no representan a un usuario humano. Proporcionan una forma de administrar la autenticación y autorización cuando una persona no está involucrada de forma directa, como cuando una aplicación necesita acceder a los recursos de Google Cloud. IAM administra las cuentas de servicio.

En la siguiente lista, se proporcionan algunos métodos para usar una cuenta de servicio a fin de autenticarse en las APIs y los servicios de Google, desde el más seguro hasta el menos seguro.

Token

Para la autenticación y la autorización, un token es un objeto digital que muestra que el emisor proporcionó las credenciales adecuadas que se intercambiaron por ese token. El token contiene información sobre la identidad del principal que realiza la solicitud y el tipo de acceso que están autorizados a realizar.

Los tokens se pueden considerar como llaves de hotel. Cuando te registras en un hotel y presentas la documentación adecuada en la recepción del hotel, recibes una llave que te permitirá acceder a recursos específicos del hotel. Por ejemplo, la llave podría darte acceso a tu habitación y al ascensor de invitados, pero no te otorgaría acceso a ninguna otra habitación ni al elevación de servicio.

A excepción de las claves de API, las APIs de Google no admiten credenciales directamente. Tu aplicación debe adquirir o generar un token y proporcionarlo a la API. Hay varios tipos de tokens. Para obtener más información, consulta los tipos de tokens.

Carga de trabajo y personal

Los productos de identidad y acceso de Google Cloud permiten el acceso a los servicios y recursos de Google para el acceso programático y los usuarios humanos. Google usa los términos carga de trabajo para el acceso programático y personal para el acceso del usuario.

La federación de Workload Identity te permite proporcionar acceso a las cargas de trabajo que se ejecutan fuera de Google sin tener que crear y administrar claves de cuentas de servicio.

La federación de Workforce Identity te permite usar un proveedor de identidad externo para autenticar y autorizar a un personal (un grupo de usuarios, como empleados, socios y contratistas) que usa IAM, a fin de que los usuarios puedan acceder a los servicios de Google Cloud.

¿Qué sigue?