Métodos de autenticación en Google

Este documento te ayuda a comprender algunos métodos y conceptos de autenticación clave, así como a saber dónde obtener ayuda para implementar o solucionar problemas de autenticación. La documentación sobre autenticación se centra principalmente en los servicios, Google Cloud pero la lista de casos prácticos de autenticación y el material de introducción de esta página también incluyen casos prácticos de otros productos de Google.

Introducción

La autenticación es el proceso por el que 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 ofrece muchas APIs y servicios que requieren autenticación para acceder. Google también ofrece una serie de servicios que alojan aplicaciones escritas por nuestros clientes. Estas aplicaciones también deben determinar la identidad de sus usuarios.

Las APIs de Google implementan y amplían el framework de OAuth 2.0.

Quiero... Información
Autenticarse en Vertex AI en modo exprés (vista previa). Usa la clave de API que se creó para ti durante el proceso de inicio de sesión para autenticarte en Vertex AI. Para obtener más información, consulta la descripción general del modo exprés de Vertex AI.
Autenticarme en un servicio Google Cloud desde mi aplicación con un lenguaje de programación de alto nivel. Configura las credenciales predeterminadas de la aplicación y, a continuación, usa una de las bibliotecas de cliente de Cloud.
Autenticarte en una aplicación que requiera un token de ID. Obtén un token de ID de OpenID Connect (OIDC) y proporciónalo con tu solicitud.
Implementa la autenticación de usuarios en una aplicación que acceda a servicios y recursos de Google. Google Cloud Consulta la sección Autenticar usuarios de aplicaciones para ver una comparación de las opciones.
Prueba algunos comandos de gcloud en mi entorno de desarrollo local. Inicializa gcloud CLI.
Prueba algunas solicitudes de la Google Cloud API REST en mi entorno de desarrollo local. Usa una herramienta de línea de comandos como curl para llamar a la API REST.
Probar un fragmento de código incluido en la documentación de mi producto. Configura ADC en un entorno de desarrollo local e instala la biblioteca de cliente de tu producto en el entorno local. La biblioteca de cliente encuentra tus credenciales automáticamente.
Obtener 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 ofrece Google en el ámbito de la gestión de identidades y accesos. Consulta la página Productos de gestión de identidades y accesos de Google.

Elegir el método de autenticación adecuado para tu caso práctico

Cuando accedas a los servicios de Google Cloud mediante la CLI de Google Cloud, las bibliotecas de cliente de Cloud, las herramientas que admiten Credenciales Predeterminadas de Aplicación (ADC) como Terraform o las solicitudes REST, usa el siguiente diagrama para elegir un método de autenticación:

Árbol de decisiones para elegir el método de autenticación en función del caso práctico

Este diagrama te ayuda a responder las siguientes preguntas:

  1. ¿Estás ejecutando código en un entorno de desarrollo de un solo usuario, como tu propia estación de trabajo, Cloud Shell o una interfaz de escritorio virtual?
    1. Si es así, ve a la pregunta 4.
    2. Si no es así, ve a la pregunta 2.
  2. ¿Estás ejecutando código en Google Cloud?
    1. Si es así, ve a la pregunta 3.
    2. Si no es así, ve a la pregunta 5.
  3. ¿Ejecutas contenedores en Google Kubernetes Engine?
    1. Si es así, usa Workload Identity Federation for GKE para asociar cuentas de servicio a pods de Kubernetes.
    2. Si no es así, asigna una cuenta de servicio al recurso.
  4. ¿Tu caso práctico requiere una cuenta de servicio?

    Por ejemplo, quieres configurar la autenticación y la autorización de forma coherente para tu aplicación en todos los entornos.

    1. Si no, autentica con las credenciales del usuario.
    2. Si es así, suplanta la identidad de una cuenta de servicio con las credenciales de usuario.
  5. ¿Tu carga de trabajo se autentica con un proveedor de identidades externo que admite la federación de identidades de cargas de trabajo?
    1. Si es así, configura la federación de identidades de cargas de trabajo para permitir que las aplicaciones que se ejecutan on-premise o en otros proveedores de servicios en la nube usen una cuenta de servicio.
    2. Si no es así, crea una clave de cuenta de servicio.

Métodos de autorización para los servicios de Google Cloud

La autorización de Google Cloud se gestiona principalmente mediante Gestión de Identidades y Accesos (IAM). Gestión de identidades y accesos ofrece un control granular por entidad principal y por recurso.

Puedes aplicar otra capa de autorización con los permisos de OAuth 2.0. Cuando te autenticas en un servicio de Google Cloud , puedes usar un permiso global que autorice el acceso a todos los servicios de Google Cloud (https://www.googleapis.com/auth/cloud-platform) o, si un servicio lo admite, puedes restringir el acceso con un permiso más limitado. Los ámbitos limitados pueden ayudar a reducir el riesgo si tu código se ejecuta en entornos en los que los tokens vulnerados pueden ser un problema, como las aplicaciones móviles.

Los ámbitos de autorización que acepta un método de API se indican en la documentación de referencia de la API de cada Google Cloud servicio.

credenciales de aplicación predeterminadas

Application Default Credentials (ADC) es una estrategia que usan las bibliotecas de autenticación para buscar automáticamente las credenciales en función del entorno de la aplicación. Las bibliotecas de autenticación ponen esas credenciales a disposición de las bibliotecas de cliente de Cloud y de las bibliotecas de 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 Google Cloud servicios y las APIs.

Usar ADC puede simplificar el proceso de desarrollo, ya que te permite usar el mismo código de autenticación en varios entornos. Sin embargo, si usas un servicio en modo exprés, no es necesario que uses ADC.

Para poder usar ADC, debes proporcionar tus credenciales a ADC en función de dónde quieras que se ejecute tu código. ADC localiza automáticamente las credenciales y obtiene un token en segundo plano, lo que permite que el código de autenticación se ejecute en diferentes entornos sin necesidad de modificarlo. Por ejemplo, la misma versión de tu código podría autenticarse con las APIs deGoogle Cloud cuando se ejecute en una estación de trabajo de desarrollo o en Compute Engine.

Tus credenciales de gcloud no son las mismas que las que proporcionas a ADC mediante gcloud CLI. Para obtener más información, consulta Configuración de autenticación de la CLI de gcloud y configuración de ADC.

Terminología

Es importante conocer los siguientes términos para hablar de autenticación y autorización.

Autenticación

La autenticación es el proceso mediante el cual se determina la identidad de la entidad que intenta acceder a un recurso.

Autorización

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

Credenciales

Cuando en este documento se usa el término cuenta de usuario, se refiere a una cuenta de Google o a una cuenta de usuario gestionada por tu proveedor de identidades y federada con Federación de Identidades de la Fuerza de Trabajo.

Para la autenticación, las credenciales son un objeto digital que proporciona una prueba de identidad. Las contraseñas, los PINs y los datos biométricos se pueden usar como credenciales, según los requisitos de la aplicación. Por ejemplo, cuando inicias sesión en tu cuenta de usuario, proporcionas tu contraseña y cumples cualquier requisito de autenticación de dos factores como prueba de que la cuenta te pertenece y de que no estás siendo víctima de una suplantación de identidad por parte de un agente malintencionado.

Los tokens no son credenciales. Son un objeto digital que demuestra que la persona que llama ha proporcionado las credenciales adecuadas.

El tipo de credencial que debes proporcionar depende de lo que estés autenticando.

En laGoogle Cloud consola se pueden crear los siguientes tipos de credenciales:

  • Claves de API

    Puedes usar claves de API con las APIs que las acepten para acceder a ellas. Las claves de API que no están asociadas a una cuenta de servicio proporcionan un proyecto, que se usa para la facturación y las cuotas. Si la clave de API está asociada a una cuenta de servicio, también proporciona la identidad y la autorización de la cuenta de servicio (vista previa).

    Para obtener más información sobre las claves de API, consulte el artículo Claves de API. Para obtener más información sobre las claves de API vinculadas a una cuenta de servicio, consulta las preguntas frecuentes sobre el modo Express de Google Cloud.

  • IDs de cliente de OAuth

    Los IDs de cliente de OAuth se usan para identificar una aplicación en Google Cloud. Esto es necesario cuando quieres acceder a recursos propiedad de tus usuarios finales, también llamado OAuth de tres vías (3LO). Para obtener más información sobre cómo obtener y usar un ID de cliente de OAuth, consulta Configurar OAuth 2.0.

  • Claves de cuenta de servicio

    Las claves de cuenta de servicio identifican a una entidad principal (la cuenta de servicio) y al proyecto asociado a la cuenta de servicio.

También puedes crear credenciales con la CLI de gcloud. Estas credenciales incluyen los siguientes tipos:

Principal

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

El tipo de cuenta que uses para autenticarte (de usuario o de servicio) depende de tu caso práctico. Puede que uses ambos, cada uno en diferentes fases 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 las APIs y los servicios de Google.

Las cuentas de usuario se gestionan como cuentas de Google, ya sea con Google Workspace o con Cloud Identity. También pueden ser cuentas de usuario gestionadas por un proveedor de identidades externo y federadas con Workforce Identity Federation.

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

Para ver un resumen de las formas de configurar identidades para los usuarios en Google Cloud, consulta Identidades de los usuarios.

Cuentas de servicio

Las cuentas de servicio son cuentas que no representan a un usuario humano. Proporcionan una forma de gestionar la autenticación y la autorización cuando no hay una persona implicada directamente, como cuando una aplicación necesita acceder a recursos de Google Cloud . Las cuentas de servicio se gestionan mediante gestión de identidades y accesos.

En la siguiente lista se ofrecen algunos métodos para usar una cuenta de servicio con el fin de autenticarse en las APIs y los servicios de Google, ordenados de más a menos seguros. Para obtener más información, consulta la sección Elegir el método de autenticación adecuado para tu caso práctico de esta página.

Para obtener una descripción general de las formas de configurar identidades de cargas de trabajo, incluidas las cuentas de servicio, para Google Cloud, consulta Identidades de cargas de trabajo. Para consultar las prácticas recomendadas, consulta el artículo Prácticas recomendadas para usar cuentas de servicio.

Token

Para la autenticación y la autorización, un token es un objeto digital que muestra que un llamante ha proporcionado las credenciales adecuadas que se han intercambiado por ese token. El token contiene información sobre la identidad de la entidad que realiza la solicitud y el tipo de acceso que tiene autorizado.

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, recibes una llave que te da acceso 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 al resto de las habitaciones ni al ascensor de servicio.

A excepción de las claves de API, las APIs de Google no admiten credenciales directamente. Tu aplicación debe obtener o generar un token y proporcionárselo a la API. Hay varios tipos de tokens. Para obtener más información, consulta el artículo Información general sobre los tokens.

Carga de trabajo y plantilla

Los productos de identidad y acceso permiten acceder aGoogle Cloud servicios y recursosGoogle Cloud tanto para el acceso automático como para los usuarios. Google Cloud usa el término carga de trabajo para el acceso automático y fuerza de trabajo para el acceso de los usuarios.

Workload Identity Federation te permite proporcionar acceso a cargas de trabajo on-premise o multinube sin tener que crear ni gestionar claves de cuenta de servicio.

Workforce Identity Federation te permite usar un proveedor de identidades externo para autenticar y autorizar a los empleados (un grupo de usuarios, como empleados, partners y contratistas) mediante IAM, de forma que los usuarios puedan acceder a losGoogle Cloud servicios.

Siguientes pasos