Elegir un método de autenticación

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 en la que se identifica un proyecto de Google Cloud para fines de cuota, facturación y supervisión. Un desarrollador genera una clave de API en un proyecto en Cloud Console y, luego, incorpora esa clave en cada llamada a tu API como un parámetro de búsqueda.

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 práctico

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 issuer en la configuración de servicio.

Caso práctico

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 la pestaña Firebase en Cómo autenticar usuarios.

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 issuer en la configuración de servicio.

Caso práctico

Auth0 es adecuado para apps web o para dispositivos móviles destinadas a consumidores y empresas. Para obtener más información, consulta la pestaña Auth0 en Cómo autenticar usuarios.

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 práctico

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. Para obtener más información, consulta la pestaña Token de ID de Google en Cómo autenticar usuarios.

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 práctico

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 la pestaña Personalizar en Cómo autenticar usuarios.