Cloud Endpoints admite varios métodos de autenticación que se adaptan a diferentes aplicaciones y casos prácticos. El Extensible Service Proxy (ESP) usa el método de autenticación que especifiques en la configuración de tu servicio 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 cifrada que identifica un proyecto con fines de cuota, facturación y monitorización.Google Cloud Un desarrollador genera una clave de API en un proyecto de la consola y la inserta en cada llamada a tu API como parámetro de consulta. Google Cloud
Si especificas un requisito de clave de API en la configuración de tu servicio, ESP usará la clave de API para buscar el Google Cloud proyecto al que está asociada la clave de API. ESP rechaza las solicitudes a menos que la clave de API se haya generado en tu proyecto Google Cloud o en otros proyectosGoogle Cloud 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, las claves de API forman parte de la solicitud y, por lo tanto, se consideran vulnerables a los ataques de intermediario, por lo que son menos seguras. Puedes usar claves de API además de uno de los métodos de autenticación que se describen a continuación. Por motivos de seguridad, no utilices claves de API por sí solas cuando las llamadas a la API contengan datos de usuario.
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 Cloud proyecto 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.
Firebase Authentication
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 de cliente de Firebase firma un JSON Web Token (JWT) con una clave privada después de que el usuario inicie sesión correctamente. ESP valida 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 x-google-issuer
de la configuración del servicio.
Caso práctico
Recomendamos usar Firebase cuando las llamadas a la API impliquen datos de usuario y la API se vaya a usar en flujos en los que el usuario tenga una interfaz de usuario, por ejemplo, desde aplicaciones móviles y web. Para obtener más información, consulta el artículo Autenticar usuarios mediante Firebase.
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 cuando el usuario inicia sesión. ESP valida que Auth0 haya firmado el JWT y que la reclamación iss
del JWT, que identifica tu aplicación Auth0, coincida con el ajuste x-google-issuer
de la configuración del servicio.
Caso práctico
Auth0 es adecuado para aplicaciones web y móviles de consumidores y empresas. Para obtener más información, consulta la pestaña Auth0 en Para obtener más información, consulta Autenticar usuarios mediante Auth0.
Autenticación con token de ID de Google
La autenticación con 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 gestionadas por Endpoints. ESP 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
.
Caso práctico
Se recomienda la autenticación con un token de ID de Google cuando todos los usuarios tienen cuentas de Google. Por ejemplo, puedes usar la autenticación con token de ID de Google si tu API acompaña a una aplicación de Google, como la 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 el artículo Autenticar usuarios mediante tokens de ID de Google.
Cuentas de servicio
Para identificar un servicio que envía solicitudes a tu API, debes usar una cuenta de servicio. El servicio que llama usa la clave privada de la cuenta de servicio para firmar un JSON Web Token (JWT) seguro y envía el JWT firmado en la solicitud a tu API.
Caso práctico
Los JWTs y las cuentas de servicio son adecuados para los microservicios. Para obtener más información, consulta Autenticación entre servicios.
Autenticación personalizada
Puedes usar otras plataformas de autenticación para autenticar a los usuarios siempre que cumplan el RFC 7519 de JSON Web Token.
Para obtener más información, consulta el artículo Usar un método personalizado para autenticar usuarios.