Elegir un método de autenticación

Cloud Endpoints Frameworks admite múltiples 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 especificaste en tu anotación para validar las solicitudes entrantes antes de pasarlas a tu API de backend. En este documento, se proporciona una descripción general y casos prácticos de muestra para cada método de autenticación admitido.

Claves de API

Una clave de API es una string encriptada simple que identifica un proyecto de Google Cloud para fines de cuotas, facturación y supervisión. Un desarrollador genera una clave de API en un proyecto en la consola de Google Cloud y, luego, incorpora esa clave en cada llamada a tu API como un parámetro de consulta.

Si especificas un requisito de clave de API en tu anotación, Endpoints Frameworks usa la clave de API para buscar el proyecto de Google Cloud con el que está asociada esta clave. Endpoints Frameworks rechaza las solicitudes, a menos que la clave de API se haya generado en tu proyecto de Google Cloud o en otros proyectos de la plataforma en los que se haya habilitado la API. Para obtener más información, consulta 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 que 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 encriptan 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 uses las claves de API solas cuando las llamadas a la API contengan datos del usuario. Puedes usar claves de API además de uno de los siguientes métodos de autenticación.

A fin de obtener información sobre las prácticas recomendadas de seguridad para las claves de API y cómo agregarles restricciones, consulta Usa claves de API. Si bien dicha página está dirigida a los clientes que usan las API de Google, las recomendaciones se pueden aplicar a las API que creas con Endpoints Frameworks.

Caso de uso

Si quieres usar funciones de Endpoints, como quotas, cada solicitud debe pasar una clave de API para que Endpoints pueda identificar el proyecto de Google Cloud con el que está asociada la aplicación cliente.

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

Firebase Authentication

Firebase Authentication proporciona servicios de backend, SDK y bibliotecas para autenticar a los usuarios en una app móvil o web. Autentica a los usuarios mediante una variedad de credenciales como Google, Facebook, Twitter o GitHub.

La biblioteca cliente de Firebase crea un token web JSON (JWT) con una clave privada después de que el usuario ha accedido exitosamente. Endpoints Frameworks valida que Firebase haya firmado el JWT y que la reclamación “iss” (emisor) en el JWT, que identifica tu aplicación de Firebase, coincida con la configuración issuer en la anotación.

Caso de uso

Debido a que Firebase Authentication se integra por completo a otros servicios de Firebase, es muy adecuado para apps web o móviles que usan Firebase. Consulta Cómo autenticar con Firebase Auth.

Auth0

Auth0 autentica y autoriza apps y API sin importar el proveedor de identidad, la plataforma, la pila y el dispositivo.

Auth0 es compatible con una gran cantidad de proveedores y la especificación Lenguaje de marcado para confirmación de seguridad. Proporciona servicios de backend, SDK y bibliotecas de interfaz de usuario a fin de autenticar usuarios en apps web y dispositivos móviles. Auth0 se integra a varios proveedores de identidad de terceros y, también, proporciona administración de cuentas de usuario personalizada.

La biblioteca cliente que proporciona Auth0 genera y firma un JWT una vez que el usuario ha accedido. Endpoints Frameworks valida que Auth0 haya firmado el JWT y que la reclamación “iss” en el JWT, que identifica tu aplicación de Auth0, coincida con la configuración issuer en la anotación.

Caso de uso

Auth0 es ideal para aplicaciones web y móviles tanto para consumidores como empresas. Para obtener más información, consulta Cómo autenticar con Auth0.

Autenticación de token de ID de Google

La autenticación con un token de ID de Google permite a los usuarios autenticarse accediendo con una Cuenta de Google. Una vez autenticado, el usuario tiene acceso a todos los servicios de Google. Puedes usar los tokens de ID de Google para realizar llamadas a las API de Google y a las API que hayas implementado con Endpoints Frameworks. Endpoints Frameworks valida el token de ID de Google con la clave pública y se asegura de que la reclamación “iss” en el JWT sea https://accounts.google.com o accounts.google.com.

Caso práctico

Se recomienda la autenticación con un token de ID de Google cuando todos los usuarios tienen Cuentas de Google. Puedes utilizar la autenticación con un token de ID de Google, por ejemplo, si tu API acompaña a apps de Google Workspace (como es el caso de un complemento de Google Drive). La autenticación con un token de ID de Google permite a los usuarios autenticarse accediendo 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 Cómo realizar la autenticación con tokens de ID de Google.

JWT y cuentas de servicio

Un token web de JSON (JWT) se usa comúnmente para compartir reclamos o confirmaciones entre aplicaciones conectadas. Un JWT que representa una cuenta de servicio puede ser firmado por:

  • La cuenta de servicio.

  • El servicio de autorización de Google. (un JWT firmado por el servicio de autorización de Google recibe el nombre de token de ID de Google)

Puede ser más fácil implementar una autenticación de solicitud con un JWT firmado por una cuenta de servicio, pero si tienes una gran cantidad de cuentas de servicio o si quieres aceptar credenciales de cuentas de servicio que no te pertenecen, te recomendamos usar un token de ID de Google porque solo necesitas permitir https://accounts.google.com o accounts.google.com como una entidad emisora para todas las cuentas de servicio.

Caso de uso

Los JWT y las cuentas de servicio son muy adecuados para los microservicios. Para obtener más información, consulta Autenticar con una cuenta de servicio.