Elegir un método de autenticación

Cloud Endpoints Frameworks admite varios métodos de autenticación que se adaptan a diferentes aplicaciones y casos prácticos. Endpoints Frameworks usa el método de autenticación que has especificado en tu decorador para validar las solicitudes entrantes antes de enviarlas al backend de tu API. En este documento se ofrece una descripción general y ejemplos de casos prácticos de cada método de autenticación admitido.

Claves de API

Una clave de API es una cadena encriptada sencilla que identifica un Google Cloud proyecto con fines de cuota, facturación y monitorización. Un desarrollador genera una clave de API en un proyecto de la Google Cloud consola e inserta esa clave en cada llamada a tu API como parámetro de consulta.

Si especificas un requisito de clave de API en tu decorador, Endpoints Frameworks usará la clave de API para buscar elGoogle Cloud proyecto al que está asociada la clave de API. Endpoints Frameworks rechaza las solicitudes a menos que la clave de API se haya generado en tu Google Cloud proyecto o en otrosGoogle Cloud proyectos en los que se haya habilitado tu API. Para obtener más información, consulte Restringir el acceso a la API con claves de API.

A diferencia de las credenciales que usan tokens de corta duración o solicitudes firmadas y se envían en el encabezado de la solicitud, los clientes envían una clave de API como parámetro de consulta. Aunque los parámetros de consulta se cifran en HTTPS, las claves de API no son seguras. Por ejemplo, algunos servidores pueden almacenar la URL completa de cada solicitud en texto sin cifrar en un registro del servidor. Por motivos de seguridad, no utilices claves de API por sí solas cuando las llamadas a la API contengan datos de usuario. Puedes usar claves de API junto con uno de los siguientes métodos de autenticación.

Para consultar las prácticas recomendadas sobre cómo proteger y añadir restricciones a las claves de API, consulta el artículo Usar claves de API. Aunque el artículo "Usar claves de API" está dirigido a los clientes que usan las APIs de Google, las prácticas recomendadas se pueden aplicar a las APIs que crees con Endpoints Frameworks.

Caso práctico

Si quieres usar funciones de Endpoints, como las cuotas, cada solicitud debe incluir una clave de API para que Endpoints pueda identificar el Google Cloudproyecto al que está asociada la aplicación cliente.

Para obtener más información sobre las claves de API, consulta Por qué y cuándo utilizar claves de API.

Autenticación de Firebase

Firebase Authentication proporciona servicios de backend, SDKs y bibliotecas para autenticar a los usuarios en una aplicación móvil o web. Autentica a los usuarios mediante diversas credenciales, como las de Google, Facebook, Twitter o GitHub.

La biblioteca cliente de Firebase firma un JSON Web Token (JWT) con una clave privada después de que el usuario haya iniciado sesión correctamente. Endpoints Frameworks comprueba que Firebase ha firmado el JWT y que la reclamación "iss" (emisor) del JWT, que identifica tu aplicación de Firebase, coincide con el ajuste issuer del decorador.

Caso práctico

Como la autenticación de Firebase se integra estrechamente con otros servicios de Firebase, es adecuada para aplicaciones móviles o web que usen Firebase. Consulta el artículo sobre la autenticación con Firebase Auth.

Auth0

Auth0 autentica y autoriza aplicaciones y APIs independientemente del proveedor de identidades, la plataforma, la pila y el dispositivo.

Auth0 admite un gran número de proveedores y la especificación Security Assertion Markup Language. Proporciona servicios de backend, SDKs y bibliotecas de interfaces de usuario para autenticar a los usuarios en aplicaciones web y móviles. Auth0 se integra con varios proveedores de identidades externos y también ofrece gestión de cuentas de usuario personalizadas.

La biblioteca de cliente proporcionada por Auth0 genera y firma un JWT una vez que el usuario ha iniciado sesión. Endpoints Frameworks valida que Auth0 ha firmado el JWT y que la reclamación "iss" del JWT, que identifica tu aplicación de Auth0, coincide con el ajuste issuer del decorador.

Caso práctico

Auth0 es ideal para aplicaciones web y móviles para consumidores y empresas. Para obtener más información, consulta el artículo sobre autenticación con Auth0.

Autenticación con token de ID de Google

La autenticación mediante un token de ID de Google permite a los usuarios autenticarse iniciando sesión con una cuenta de Google. Una vez autenticado, el usuario tiene acceso a todos los servicios de Google. Puedes usar tokens de ID de Google para hacer llamadas a las APIs de Google y a las APIs que hayas implementado con Endpoints Frameworks. Endpoints Frameworks valida el token de ID de Google mediante la clave pública y comprueba que la reclamación "iss" del JWT sea https://accounts.google.com o accounts.google.com.

Caso práctico

Se recomienda usar la autenticación con un token de ID de Google cuando todos los usuarios tengan cuentas de Google. Por ejemplo, puedes usar la autenticación con token de ID de Google si tu API acompaña a las aplicaciones de Google Workspace (por ejemplo, una aplicación complementaria de Google Drive). La autenticación mediante tokens de ID de Google permite a los usuarios autenticarse iniciando sesión con una cuenta de Google. Una vez autenticado, el usuario tiene acceso a todos los servicios de Google.

Para obtener más información, consulta Autenticación con tokens de ID de Google.

JWTs y cuentas de servicio

Un JSON Web Token (JWT) se suele usar para compartir reclamaciones o aserciones entre aplicaciones conectadas. Un JWT que representa una cuenta de servicio se puede firmar de dos formas:

  • La cuenta de servicio.

  • Servicio de autorización de Google. Un JWT firmado por el servicio de autorización de Google se denomina token de ID de Google.

Puede que sea más fácil autenticar una solicitud mediante un JWT firmado por una cuenta de servicio, pero si tienes un gran número de cuentas de servicio o quieres aceptar credenciales de cuentas de servicio que no son de tu propiedad, te recomendamos que utilices un token de ID de Google, ya que solo tienes que permitir https://accounts.google.com o accounts.google.com como emisor de todas las cuentas de servicio.

Caso práctico

Los JWTs y las cuentas de servicio son adecuados para los microservicios. Para obtener más información, consulta el artículo Autenticarse con una cuenta de servicio.