Esta página proporciona información general sobre las claves API y la autenticación: cómo se utiliza cada una de ellas, las diferencias entre ellas y los escenarios en los que debería considerar el uso de claves API.
Las claves API son para proyectos, la autenticación es para usuarios
Cloud Endpoints maneja tanto claves API como esquemas de autenticación, como Firebase o Auth0. La principal distinción entre estos dos es:
Las claves API identifican el proyecto que llama (la aplicación o el sitio) que realiza la llamada a una API.
Los tokens de autenticación identifican a un usuario (la persona) que está utilizando la aplicación o el sitio.
Las claves API proporcionan autorización del proyecto
Para decidir qué esquema es el más apropiado, es importante comprender qué claves API y autenticación pueden proporcionar.
Las claves API proporcionan
Identificación del proyecto : identifique la aplicación o el proyecto que realiza una llamada a esta API.
Autorización del proyecto : verifique si a la aplicación que realiza la llamada se le ha otorgado acceso para llamar a la API y si ha habilitado la API en su proyecto.
Las claves API no son tan seguras como los tokens de autenticación (consulte Seguridad de las claves API ), pero identifican la aplicación o proyecto que llama a una API. Se generan en el proyecto que realiza la llamada y puede restringir su uso a un entorno como un rango de direcciones IP o una aplicación de Android o iOS.
Al identificar el proyecto que llama, puede usar claves API para asociar información de uso con ese proyecto. Las claves API permiten a Cloud Endpoints Frameworks rechazar llamadas de proyectos a los que no se les ha otorgado acceso o no se les ha habilitado en la API.Autenticación de usuarios
Por el contrario, los esquemas de autenticación suelen tener dos propósitos:
Autenticación de usuario : verifique de forma segura que el usuario que llama es quien dice ser.
Autorización de usuario : compruebe si el usuario debe tener acceso para realizar esta solicitud.
Los esquemas de autenticación proporcionan una forma segura de identificar al usuario que llama. Endpoints también verifica el token de autenticación para verificar que tenga permiso para llamar a una API. En función de esa autenticación, el servidor API decide autorizar una solicitud.
Si necesita la capacidad de identificar al usuario que realiza la llamada, consulte Autenticar usuarios .
Si bien las claves API identifican el proyecto que llama, no identifican al usuario que llama. Por ejemplo, si ha creado una aplicación que llama a una API, una clave API puede identificar la aplicación que realiza la llamada, pero no la identidad de la persona que utiliza la aplicación.
Si necesita una forma más segura de limitar qué proyectos o servicios pueden llamar a su API, consulte Autenticación entre servicios .
Seguridad de las claves API
Las claves API generalmente no se consideran seguras; Por lo general, los clientes pueden acceder a ellos, lo que facilita que alguien robe una clave API. Una vez robada la clave, esta no tiene caducidad, por lo que podrá usarse indefinidamente, a menos que el propietario del proyecto revoque o regenere la clave. Si bien las restricciones que puede establecer en una clave API mitigan esto, existen mejores enfoques para la autorización.
Para ver ejemplos, consulte Autenticar usuarios .
Cuándo usar claves API
Una API puede restringir algunos o todos sus métodos para que requieran claves API. Tiene sentido hacer esto si:
Quieres bloquear el tráfico anónimo. Las claves API identifican el tráfico de una aplicación para el productor de API, en caso de que el desarrollador de la aplicación necesite trabajar con el productor de API para depurar un problema o mostrar el uso de su aplicación.
Quiere controlar la cantidad de llamadas realizadas a su API.
Quiere identificar patrones de uso en el tráfico de su API. Puede ver el uso de la aplicación en API y servicios .
Quiere filtrar registros por clave API.
Las claves API no se pueden utilizar para:
Identificación de usuarios individuales: las claves API no identifican a los usuarios, identifican proyectos.
Autorización segura.
Identificar a los creadores de un proyecto.
Service Infrastructure no proporciona un método para buscar proyectos directamente a partir de claves API.