Por qué y cuándo usar las claves de API

En esta página, se proporciona información básica sobre las claves de API y la autenticación: cómo se usan, en qué se diferencian y en qué situaciones se debe considerar su uso.

Las claves de API son para proyectos, la autenticación está destinada a los usuarios

Cloud Endpoints controla las claves de API y los esquemas de autenticación, como Firebase o Auth0. Estas son las diferencias más importantes entre ambas:

  • Las claves de API identifican el proyecto (la aplicación o el sitio) que realiza la llamada a una API.

  • Los tokens de autenticación identifican al usuario (la persona) que usa la app o el sitio.

    Descripción general de las claves de API

Las claves de API proporcionan la autorización del proyecto

Para decidir cuál es el esquema más indicado, es importante comprender lo que pueden proporcionar las claves de API y la autenticación.

Las claves de API proporcionan

  • Identificación del proyecto: identifica la aplicación o el proyecto que realiza una llamada a esta API.

  • Autorización del proyecto: verifica si la aplicación que realiza la llamada tiene acceso para llamar a la API y si la habilitó en su proyecto.

Las claves de API no son tan seguras como los tokens de autenticación (consulta Seguridad de las claves de API), pero identifican la aplicación o el proyecto que llama a una API. Se generan en el proyecto que realiza la llamada y su uso puede restringirse a un entorno, como un rango de direcciones IP o una app de Android o iOS.

Cuando se identifica el proyecto que realiza la llamada, puedes usar claves de API para asociar la información de uso con ese proyecto. Las claves de API permiten que el Proxy de servicio extensible (ESP) rechaza las llamadas de los proyectos que no tienen acceso o están habilitados en la API.

Autenticación de usuarios

En cambio, los esquemas de autenticación suelen tener dos propósitos:

  • Autenticación del usuario: verifica de forma segura que el usuario que llama sea quien declara ser.

  • Autorización del usuario: comprueba si el usuario debería tener acceso para realizar esta solicitud.

Los esquemas de autenticación proporcionan una forma segura de identificar al usuario que llama. Endpoints también comprueba el token de autenticación a fin de verificar si tiene permiso para llamar a una API. Según esa autenticación, el servidor de la API decidirá si autoriza una solicitud.

Si necesitas la capacidad de identificar al usuario que realiza la llamada, consulta Cómo autenticar usuarios.

Si bien las claves de API identifican el proyecto que realiza la llamada, no identifican al usuario que la realiza. Por ejemplo, si creaste una aplicación que llama a una API, una clave de API puede identificar la aplicación que realiza la llamada, pero no la identidad de la persona que usa la aplicación.

Si necesitas una forma más segura de limitar qué proyectos o servicios pueden llamar a tu API, consulta Autenticación entre servicios.

Seguridad de las claves de API

En general, las claves de API no se consideran seguras, ya que suelen ser accesibles para los clientes, lo que facilita que alguien pueda robarlas. Una vez que se roba la clave, no tiene vencimiento, por lo que se puede usar de forma indefinida, a menos que el propietario del proyecto revoque o vuelva a generar la clave. Si bien las restricciones que se pueden establecer en una clave de API mitigan esta situación, existen enfoques mejores para la autorización.

Para obtener ejemplos, consulta Cómo autenticar usuarios.

Cuándo usar claves de API

Una API puede restringir algunos o todos sus métodos para que requieran claves de API. Tiene sentido hacer esto en los siguientes casos:

  • Si deseas bloquear el tráfico anónimo. Las claves de API identifican el tráfico de la aplicación para el productor de la API, en caso de que el desarrollador de la aplicación necesite trabajar con el productor de la API para depurar un problema o mostrar el uso de su aplicación.

  • Si deseas controlar la cantidad de llamadas realizadas a la API.

  • Si deseas identificar los patrones de uso en el tráfico de la API. Puedes consultar sobre el uso de la aplicación en API y servicios.

  • Si quieres filtrar los registros por clave de API.

Las claves de API no se pueden utilizar para:

  • Identificar usuarios individuales, ya que las claves de API no identifican usuarios, solo identifican proyectos.

  • Realizar autorizaciones seguras.

  • Identificar a los creadores de un proyecto.

La infraestructura de servicio no proporciona un método para buscar de manera directa proyectos a partir de claves de API.

Cómo usar claves de API

Si deseas aprender a configurar y usar el acceso mediante claves de API, consulta Restringir el acceso con claves de API.