¿Qué es una API key y para qué sirve?

14min

¿Alguna vez has tenido una duda sobre qué es exactamente una API Key? ¿Es posible que te la hayan pedido para configurar un programa o realizar un complemento en una aplicación que permita acceder a un servicio de terceros, como el API de GPT o Gemini?

Índice

¿Qué es una API key?

Una API key es un token formado por un conjunto de caracteres generalmente bastante largo y sin mucho sentido de por sí, que sirve de identificador único para el acceso a un servicio remoto, generalmente un API ofrecida por terceros.

Las API key sirven para identificar el cliente que quiere usar el servicio, de modo que el API sepa quién eres, qué conjuntos de datos puedes ver y cuáles no, conocer tus cuotas de uso y muchas otras cosas que puedan ser necesarias para usar correctamente un servicio.

Puedes entenderlas como una credencial de acceso a un servicio, que permite identificarte y garantizar que eres tú el que realmente se está conectando al API, abriendo las puertas a unas u otras funcionalidades dependiendo de tu usuario y el los recursos que tenga disponibles en ese servicio.

¿Para qué sirve una API key?

Las API key sirven para ofrecer un medio de autenticación sencillo en las API de terceros, de modo que se pueda gestionar correctamente el uso de ese servicio remoto sin necesidad de escribir una y otra vez un nombre de usuario y una clave, controlando además la granularidad de los permisos por proyecto y entorno. Vamos a ver a continuación cuáles son sus principales funciones.

Controlar el acceso a servicios y recursos

Dentro de las funciones de una API key la principal consiste en controlar el acceso a los servicios remotos. Gracias a esta llave el API es capaz de saber quién es el que está accediendo al servicio, asignando y consumiendo los recursos que tenga contratados.

Registrar y limitar el uso de una API

Otra de las funciones muy importantes de estas llaves de acceso consiste en registrar el uso que estamos haciendo del servicio remoto, ya que muchas veces este uso tiene un coste y el propio API debe saber a quién cargarlo.

Pero incluso las API que son gratuitas también necesitan de API key para poder controlar el número de peticiones que hace cada usuario, de modo que se pueda garantizar que el uso esté dentro de lo razonable y no existan abusos.

Proteger datos sensibles o privados

Como hemos dicho antes, también es importante el uso de estas llaves para saber cuáles son los datos que pertenecen a cada usuario. Gracias a que la API key está directamente relacionado con un usuario del sistema y un proyecto, la aplicación o servicio web al que nos estamos conectando sabrá perfectamente cuáles son sus datos, permitiendo el acceso a los mismos.

Al mismo tiempo, este nivel de protección garantiza que otras personas no puedan acceder a los datos que existen en nuestras cuentas.

Permitir integraciones seguras entre aplicaciones

Además de usar API keys para conseguir que desarrollos puedan acceder a servicios en la nube, también sirven para conectarlos con aplicaciones de terceros, de modo que puedan comunicarse y usar con los datos o servicios del API.

¿Cómo funciona una API key?

Vamos a profundizar un poco más en lo que respecta a este mecanismo de autenticación y autorización en API remotas. Para ello, a continuación explicaremos los en próximos puntos las bases del funcionamiento de las API key.

Autenticación entre el cliente y el servidor

Para empezar tenemos que saber que el modelo de uso de una API de terceros funciona mediante una comunicación en la que participa un cliente y un servidor.

Pues bien, para que esta comunicación pueda realizarse el cliente envía la API key en cada solicitud. De este modo el servidor puede garantizar que la llamada viene desde el cliente autorizado.

Identificación única de cada aplicación o usuario

Cada API key se compone por una clave única que permite representar la identidad del cliente que pretende conectar con el proveedor del servicio. Esta llave también permite distinguir la aplicación que está usando el servicio o usuario que realiza las peticiones.

Validación de permisos y niveles de acceso

La llave de la API también sirve para saber qué permisos tiene una conexión con el servicio. Por ejemplo, podemos haber creado una llave que permita acceder a ciertos datos personales pero no a otros, o que permita lecturas pero no escrituras. Generalmente, ese nivel de permisos se define mediante la configuración de la llave de la API, en el momento de creación o por los ámbitos solicitados por el cuadro de diálogo cuando autorizamos a una aplicación a conectarse con una API. El servidor de la API es el responsable de validar qué niveles de acceso tiene habilitados esa clave, garantizando la seguridad de los datos sensibles.

Control del uso mediante límites y cuotas de solicitudes

Durante el uso de la API se registrarán las acciones y recursos que estemos gastando. Esta acción permitirá mostrar a los usuarios las cuotas de uso y establecer límites, si es que el API los tiene.

En caso que el servicio sea de pago, las cuotas de uso permitirán al proveedor asegurarse de que se encuentra dentro de los límites permitidos, o bien facturar a final de mes conforme al gasto realizado.

Respuesta del servidor ante una clave válida o no autorizada

En cada solicitud la API verificará si la llave utilizada es válida o no, informando al usuario con una respuesta de error en caso de que el API key sea inválida.

El hecho de tener una API key incorrecta puede deberse a varios motivos, por ejemplo que esté mal copiada, pero también que se haya caducado o no esté autorizada a realizar la acción que se está solicitando.

Generalmente las API responden vía HTTP y envían códigos de error HTTP estándar como 401 para accesos no autenticados o 403 cuando se intenta realizar alguna acción no autorizada.

Tipos de API keys y niveles de acceso

Existen algunos tipos de claves de API, con distintos niveles de seguridad que vamos a describir brevemente.

Claves públicas y privadas

A veces las llaves del API se componen de dos claves, que se utilizan dependiendo de los entornos.

Por una parte, tenemos las claves públicas, que se usan en el cliente, donde corren el riesgo de ser accedidas por terceros. Esas mismas claves tienen su correspondiente clave privada, que debe mantenerse en secreto, protegida del lado del servidor. La API hace uso de ambas para poder cotejarlas y verificar que tanto cliente como servidor están alineados.

API keys temporales o rotativas

Algunas llaves de API se generan solo de manera temporal, caducando al cabo de un tiempo. Esto aumenta la seguridad ya que si una clave se compromete solo estaría disponible por un cierto espacio de tiempo.

Permisos y restricciones por aplicación o usuario

También tenemos claves que permiten definir permisos y restricciones, los cuales pueden asignarse dependiendo de factores como el usuario, la aplicación o la dirección IP del cliente. De este modo se pueden configurar permisos granulares que permitan ciertas operaciones dependiendo del entorno.

¿Cómo se usa una API key?

De modo general, las API key se utilizan enviándolas en las cabeceras de la solicitud HTTP al servidor del API al que nos queremos conectar.

Dependiendo de la API el modo de utilización de las llaves puede variar bastante, así que es importante leer la documentación del servicio para que vamos a encontrar la información exacta mediante la cual debemos suministrar la API key.

Paralelamente, dependiendo del lenguaje o la plataforma de desarrollo que estemos utilizando, los mecanismos para enviar la llave y construir las solicitudes al servidor del API serán diferentes. No obstante, vamos a establecer aquí algunos conocimientos generales que te servirán para orientarte en el uso de llaves de API.

Incluir la clave en la cabecera de la solicitud (header)

Como hemos dicho, el consiste en construir una solicitud HTTP para el acceso al API. Al construir esta solicitud tendremos que indicar la llave en la cabecera del HTTP.

Aquí puedes ver un pequeño código de ejemplo de la solicitud aunque, como decimos, cada lenguaje ofrece una interfaz diferente para construir estas solicitudes mediante funciones específicas.

GET /v1/usuarios HTTP/1.1
Host: api.example.com
Authorization: Bearer TU_API_KEY

Enviar la API key como parámetro en la URL o cuerpo del mensaje

También puede ocurrir que el API requiera enviar la llave en la URL o el cuerpo del mensaje. Esto es menos habitual porque la llave podría estar visible de una manera más patente en las solicitudes y quedar registrada en el historial del navegador.

https://api.example.com/v1/usuarios?apikey=TU_API_KEY

Usar la clave en bibliotecas o SDK de desarrollo

Otra posibilidad es que el autor de la API ofrezca un SDK (por Kit de Desarrollo de Software en inglés), consistente en una librería que nos permita realizar las conexiones a más alto nivel, sin gestionar por nuestra cuenta las solicitudes HTTP. Esto es muy útil porque esta librería creará las solicitudes y las compondrá en el formato que el API requiera.

Nuevamente, la existencia de este SDK estará completamente documentada, así como las versiones del SDK para los distintos lenguajes compatibles.

En cualquier caso, al construir los objetos para conexión con el API, generalmente se entregarán las llaves que permitan la autorización.

Configurar la API key en variables de entorno seguras

Es muy importante mantener las llaves de las API de manera segura. Es por ello que generalmente no deben escribirse en el código fuente de las aplicaciones que estemos desarrollando.

En lugar de ello lo adecuado es guardar las API key en variables de entorno y hacer que nuestros programas lean las variables de entorno para recuperar la llave.

Pero sobre todo, para asegurar que las API key estén seguras, es esencial que los archivos de las variables de entorno estén ignorados y no se suban a repositorios públicos.

¿Cómo obtener una API key?

Para generar una API key generalmente tendremos que entrar en un panel de control del proveedor del servicio y rellenar uno o varios formularios, que dependen de cómo este proveedor se organice. De todos modos, los pasos pueden ser más o menos los siguientes.

1. Acceder al panel de desarrollador o consola API

Primero tienes que registrarte en el servicio y con ello conseguirás unas claves de acceso al panel del desarrollador.

Luego tendrás que acceder a la consola del API para realizar las acciones de administración del servicio.

2. Crear un nuevo proyecto o aplicación

Muchos proveedores requieren la realización de un proyecto o aplicación dentro del panel, de modo que las claves de la API se asocian a ellos, lo que permite controlar de manera más detallada el uso que realizamos de la API, distinguiendo cada proyecto en el que estemos trabajando.

3. Configurar los permisos y límites de uso de la API key

Durante el proceso de creación del API key generalmente indicaremos los parámetros de configuración de la llave, especificando aspectos como los permisos que vamos a otorgar o las cuotas de uso.

4. Guardar la clave de forma segura

Este proceso culmina con la generación de la clave, que tendremos que copiar y guardar de forma segura. Muchos proveedores de servicios solo permiten mostrar la llave una única vez, por lo que si la pierdes tendrás que repetir todo el proceso para generarla de nuevo.

Buenas prácticas de seguridad con API keys

Las llaves del API ofrecen acceso a servicios que generalmente tienen limitaciones de uso o exponen datos sensibles. Por ello la mayor recomendación que tenemos que dar es guardarlas siempre de manera segura. En ese sentido vamos a ofrecer ahora algunas prácticas esenciales.

No exponer las claves en el código o repositorios públicos

Como hemos dicho antes las llaves del API deben almacenarse en archivos de variables de entorno. Esos archivos tienen que ser ignorados del sistema de control de versiones, de modo que no se suban a repositorios remotos. Esto es especialmente importante cuando se trata de repositorios públicos almacenados en algún servicio como GitHub.

Usar variables de entorno para almacenarlas

Aparte de los archivos de variables de entorno algunos servicios de operaciones DevOps ofrecen la posibilidad de configurar los secretos en la plataforma de despliegue. Esta opción también es válida para asegurarte que las llaves del API permanezcan confidenciales.

Rotar las claves periódicamente

Es ideal que se renueven las llaves de vez en cuando, así nos aseguraremos que ante una posible filtración la llave no comprometa nuestra cuenta por mucho tiempo. Incluso hay sistemas de llaves que permiten la rotación automática,

Limitar su uso por IP o dominio

Si es posible, conviene configurar los entornos en el momento de creación del API key, para que esta solo se pueda utilizar desde los lugares permitidos, ya sea la IP del servidor o un dominio en particular.

Supervisar el uso y detectar accesos no autorizados

Mantén monitorizados tus sistemas y supervisa los accesos para asegurarte que la llave está siempre segura. Si ves que los usos se disparan injustificadamente puede ser un síntoma de que alguien está usando tu llave de manera fraudulenta.

Para mantener este seguimiento es útil que acompañes el panel de control del proveedor del servicio, de modo que puedas verificar tus cuotas de uso y saber si están dentro de lo razonable. A veces algunos proveedores ofrecen incluso la posibilidad de recibir alertas para mejorar el control del gasto.

¿Qué es la Gemini API Key y cómo obtenerla?

Si quieres trabajar con el API de Gemini te vamos a pasar una guía de pasos básicos para conseguir su API key:

  1. Accede al sitio oficial de Google AI Studio e inicia sesión con tu cuenta de Google.
  2. Ahora tienes que crear un proyecto para asociar la API a ese proyecto..
  3. Luego entra en la sección de API Keys y podrás generar esa clave para el uso de la IA de Google.

¿Cómo generar y usar una API Key de Google paso a paso?

Aparte de Gemini, Google ofrece múltiples API para desarrollo de aplicaciones que hagan uso de sus servicios, como los mapas o YouTube. En este caso tienes que crear una llave a través de Google Cloud Console, autenticándote con tu cuenta de Google.

Los pasos son parecidos a cómo generas el API Key para Gemini, creando primero el proyecto y luego accediendo a la sección de API y Servicios, que puedes encontrar fácilmente en el recuadro de «Acceso rápido».

Luego accede a  Credenciales y por último a Crear credenciales, donde podrás generar tu Clave de API.

¿Qué es la ChatGPT API Key y cómo activarla en tu cuenta?

Si quieres usar la API de GPT para usar la IA de OpenAI en tus proyectos sigue estos pasos. Nuevamente, estamos ante un proceso muy similar:

  1. Entra en OpenAI API Platform y regístrate. Si ya tienes cuenta de ChatGPT puedes usar ese mismo usuario y contraseña.
  2. En el proceso de alta de tu nuevo usuario se solicitarán datos de tu empresa y el proyecto que quieras crear.
  3. El asistente culmina generando directamente una API Key que tendrás que copiar y guardar de manera segura.

Si ya tienes un proyecto creado y quieres generar otras llaves de API simplemente ve al «Dashboard» y luego a «API Keys».

Allí encontrarás el botón para crear la llave del API: «Create new secret key». Se generará y podrás copiarlo y pegarlo en algún archivo de forma segura

Fernán García de Zúñiga

Productos relacionados: