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.
Cómo obtener ayuda con la autenticación
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.
|
Inicializa la CLI de gcloud y usa 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 | Configura credenciales predeterminadas de la aplicación de manera local y, luego, instala la biblioteca cliente de tu producto en tu 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.
Credencial predeterminada de la aplicación
Application Default Credentials (ADC) es una estrategia que usan las bibliotecas de autenticación de Google para encontrar credenciales automáticamente según el entorno de la aplicación. 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. Cuando usas ADC, tu código puede ejecutarse en un entorno de desarrollo o de producción sin cambiar la forma en que tu 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.
Antes de usar ADC, debes proporcionar tus credenciales a ADC, según la ubicación en la que deseas que se ejecute tu código. 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.
Tus credenciales de gcloud no son las mismas que proporcionas a ADC mediante la CLI de gcloud. Para obtener más información, consulta Credenciales de ADC y credenciales de gcloud.
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:
- Usa la CLI de gcloud para configurar las credenciales predeterminadas de la aplicación (ADC).
- Usa la CLI de gcloud para generar tokens de acceso.
- Usa tus credenciales de usuario para actuar en nombre de una cuenta de servicio.
- Usa tus credenciales de usuario para acceder a Google Cloud CLI y, luego, usa la herramienta a fin de acceder a los servicios de Google Cloud.
Si deseas obtener una descripción general de las formas de configurar identidades para los usuarios en Google Cloud, consulta Identidades para los usuarios.
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.
Conecta una cuenta de servicio administrada por el usuario al recurso y usa ADC para autenticarte.
Esta es la forma recomendada de autenticar el código de producción que se ejecuta en Google Cloud.
Usa una cuenta de servicio para actuar en nombre de otra.
Actuar en nombre de otra cuenta de servicio te permite otorgar más privilegios a una cuenta de servicio de forma temporal. Otorgar privilegios adicionales de forma temporal permite que esa cuenta de servicio realice el acceso requerido sin tener que adquirir más privilegios de forma permanente.
Usa la cuenta de servicio predeterminada.
No se recomienda usar la cuenta de servicio predeterminada, ya que, según su configuración predeterminada, tiene un gran privilegio, lo que infringe el principio de privilegio mínimo.
Usa una clave de cuenta de servicio.
Las claves de las cuentas de servicio crean riesgos innecesarios y deben evitarse siempre que sea posible.
Para obtener una descripción general de las formas de configurar identidades de carga de trabajo, incluidas las cuentas de servicio, de Google Cloud, consulta Identidades para cargas de trabajo.
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?
- Consulta más casos de uso de autenticación.
- Obtén más información sobre cómo los servicios de Google Cloud usan IAM para controlar el acceso a los recursos de Google Cloud.
- Comprende cómo funcionan las credenciales predeterminadas de la aplicación y cómo puedes configurarlas para una variedad de entornos de desarrollo.