Cloud Endpoints admite múltiples métodos de autenticación que se adaptan a aplicaciones y casos prácticos diferentes. El proxy de servicio extensible (ESP) usa el método de autenticación que especificaste en la configuración del servicio para validar solicitudes entrantes antes de pasarlas al backend de la API. 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 de 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 configuración de servicio, en el ESP, se usa la clave de API para buscar el proyecto de Google Cloud con el que está asociada esta clave. En el ESP, se rechazan 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 está habilitada 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, las claves de API son parte de la solicitud, por ello, se las considera vulnerables frente a ataques de intermediarios y, por lo tanto, menos seguras. Puedes usar las claves de API junto con uno de los métodos de autenticación que se describen a continuación. Por motivos de seguridad, no uses las claves de API por sí mismas cuando las llamadas a la API contengan datos del usuario.
Caso de uso
Si quieres usar características de Endpoints, como cuotas, en cada solicitud, se debe pasar una clave de API para que en Endpoints se pueda identificar el proyecto de Google Cloud con el que se asoció 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 a fin de autenticar usuarios en una app web o para dispositivos móviles. Autentica usuarios mediante una variedad de credenciales como Google, Facebook, Twitter o GitHub.
La biblioteca cliente de Firebase firma un token web JSON (JWT) con una clave privada después de que el usuario accede con éxito. El ESP valida que Firebase firme el JWT y que la reclamación iss
(entidad emisora) en el JWT, que identifica tu aplicación de Firebase, coincida con el parámetro x-google-issuer
en la configuración de servicio.
Caso de uso
Recomendamos el uso de Firebase cuando las llamadas a la API incluyen datos del usuario y se espera que la API se use en flujos en los que el usuario tiene una interfaz de usuario, por ejemplo, desde apps web o para dispositivos móviles. Si deseas obtener más información, consulta Cómo autenticar usuarios con Firebase.
Auth0
Auth0 autentica y autoriza aplicaciones y API sin importar el tipo de proveedor de identidad, plataforma, pila y 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 personalizada de cuentas de usuario.
La biblioteca cliente proporcionada por Auth0 genera y firma un JWT después de que el usuario accede. El ESP valida que Auth0 firme el JWT y que la reclamación iss
en el JWT, que identifica tu aplicación de Auth0, coincida con el parámetro x-google-issuer
en la configuración de servicio.
Caso de uso
Auth0 es adecuado para apps web o dispositivos móviles destinadas a consumidores y empresas. Si deseas obtener más información, consulta Cómo autenticar usuarios 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 mediante el acceso 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 API de Google y API administradas por Endpoints. El ESP valida el token de ID de Google mediante la clave pública y garantiza que la reclamación iss
en el JWT sea https://accounts.google.com
.
Caso de uso
Se recomienda usar la autenticación con un token de ID de Google cuando todos los usuarios tienen Cuentas de Google. Por ejemplo, es posible que elijas usar la autenticación con un token de ID de Google si tu API acompaña a una aplicación de Google, 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 mediante el acceso con una Cuenta de Google. Una vez autenticado, el usuario tiene acceso a todos los servicios de Google. Si deseas obtener más información, consulta Cómo autenticar usuarios con tokens de ID de Google.
Cuentas de servicio
Para identificar un servicio que envía solicitudes a tu API, usas una cuenta de servicio. El servicio de llamadas usa la clave privada de la cuenta de servicio para firmar un token web JSON (JWT) seguro y enviarlo en la solicitud a tu API.
Caso de uso
Las cuentas de servicio y los JWT son adecuados para microservicios. Para obtener más información, consulta Autenticación entre servicios.
Autenticación personalizada
Puedes usar otras plataformas para autenticar usuarios, siempre que sean compatibles con el RFC 7519 del token web JSON.
Si deseas obtener más información, consulta Cómo autenticar usuarios con un método personalizado.