Una API key es una cadena de caracteres única que se emite para identificar a quien accede a una Web API. Funciona de forma similar a un número de reserva en un restaurante: permite al servidor verificar que la persona tiene permiso para utilizar el servicio.
Las API keys cumplen tres funciones principales. Primera, autenticación (identificar quién realiza la solicitud). Segunda, control de acceso (limitar el volumen de uso o las funciones disponibles según el plan contratado). Tercera, seguimiento del uso (registrar quién llamó a la API, cuándo y cuántas veces).
La mayoría de los servicios de URL cortas ofrecen una API que permite acortar URL o consultar estadísticas de clics de forma programática. Para usar la API, es necesario registrarse, obtener una API key e incluirla en las cabeceras o parámetros de cada solicitud, por ejemplo: "Authorization: Bearer sk-abc123...".
El aspecto más crítico de la gestión de API keys es no exponerlas públicamente. Subir una clave por error a un repositorio de GitHub es un incidente frecuente. Según el informe de GitGuardian de 2023, cada año se filtran más de 10 millones de secretos (API keys, contraseñas, etc.) en GitHub. La regla de oro es almacenar las claves en variables de entorno o en un servicio de gestión de secretos, y nunca escribirlas directamente en el código fuente.
También conviene distinguir entre API key y token OAuth. La API key es adecuada para la autenticación a nivel de aplicación y su configuración es sencilla. OAuth, en cambio, se usa para la autorización a nivel de usuario y permite un control de acceso más granular, aunque su implementación es más compleja. En proyectos personales o comunicación entre servidores suele bastar con una API key; cuando se necesita acceder a datos de usuario, OAuth es la opción indicada. Los libros sobre seguridad de API en Amazon amplían estos temas.