Autenticación en Google

Organízate con las colecciones Guarda y clasifica 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
Autenticarme en un servicio de Google Cloud desde mi aplicación con un lenguaje de programación de alto nivel. Configurar las credenciales predeterminadas de la aplicación y, luego, usar una de las bibliotecas cliente de Cloud.
Autenticarme en una aplicación que se ejecute en Cloud Run o Cloud Functions. Obtener un token de ID de OpenID Connect (OIDC) y proporciónarlo con mi solicitud.
Implementar la autenticación de usuario para una aplicación que accede a los servicios y recursos de Google o Google Cloud. Consultar Cómo autenticar usuarios de aplicaciones para ver una comparación de las opciones.
Probar algunos comandos gcloud o las llamadas a la API de REST de Google Cloud en mi entorno de desarrollo local. Configurar credenciales predeterminadas de la aplicación con las credenciales de acceso. Luego, podría usar una herramienta de línea de comandos como curl para llamar a la API de REST.
Probar un fragmento de código incluido en la documentación de mi producto Configurar credenciales predeterminadas de la aplicación de forma local con mi cuenta de usuario y, luego, instalar la biblioteca cliente del producto en mi entorno local. La biblioteca cliente busca las credenciales automáticamente.
Obtener ayuda con otro caso práctico de autenticación. Consultar la página Casos prácticos de autenticación.
Consultar una lista de los productos que proporciona Google en el espacio de administración de identidades y accesos. Consultar 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 de autenticación de Google para encontrar credenciales automáticamente según el entorno de la aplicación. Luego, las bibliotecas de autenticación ponen esas credenciales a disposición de las bibliotecas cliente de Cloud y las bibliotecas cliente de las APIs de Google. Las bibliotecas cliente usan las credenciales para 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?