Qu'est-ce qu'une API Key ? Définition, Usage, Best Practices
Une API key est un string unique qui identifie l'application appelant. Utilisé pour auth, rate limiting, billing — mais plus faible qu'OAuth.
Qu'est-ce qu'une API key ?
Une API key est un string unique de caractères qui identifie et authentifie l'application ou l'utilisateur faisant une requête à une API. C'est la forme la plus simple d'authentification API : inclure la key dans le header de requête (ou parfois query string), et le serveur la vérifie contre une base de données.
Les API keys sont communément utilisées pour : identifier quelle app/team appelle, appliquer rate limits, tracker l'usage pour billing et autorisation basique.
À quoi ressemble une API key
API_KEY="sk_live_4eC39HqLyjWDarjtT1zdp7dc"Comment les API keys sont envoyées
| Méthode | Exemple | Notes |
|---|---|---|
| Header Authorization | Authorization: Bearer YOUR_API_KEY | Plus commune, recommandée |
| Header custom | X-API-Key: YOUR_API_KEY | Pattern commun |
| Query string | ?api_key=YOUR_API_KEY | Moins sécurisé |
| Body requête | Champ JSON | Rare pour REST |
API key vs autres méthodes auth
| Méthode | Strength | Quand utiliser |
|---|---|---|
| API key | Bas | Server-to-server, simple |
| OAuth 2.0 | Haut | Apps user-facing |
| JWT | Moyen-haut | Microservices |
| mTLS | Haut | Service-to-service |
| Basic Auth | Bas | Legacy |
| HMAC signing | Haut | Webhooks |
Exemple génération API key
import crypto from 'crypto';
function generateApiKey(prefix = 'sk_live_') {
return prefix + crypto.randomBytes(24).toString('hex');
}
const hash = crypto.createHash('sha256').update(key).digest('hex');
await db.apiKeys.insert({ user_id: userId, key_hash: hash });Best practices sécurité API key
- Traiter keys comme secrets.
- Utiliser environment variables.
- Rotation régulière.
- Scoper avec permissions.
- IP allowlist.
- Keys différents par environnement.
- Hasher, pas raw.
- Montrer key une fois à la création.
- Rate limit per key.
- Logger usage key.
- Révoquer on demand.
Pièges API key courants
- Keys dans code client-side.
- Keys dans historique git.
- Keys dans URLs.
- Single key pour tout.
- Pas de rotation.
- Pas de rate limiting.
- Stocker keys raw en DB.
- Partager keys via Slack/email.
Cas d'usage API key
| Cas d'usage | Pourquoi API key fonctionne |
|---|---|
| Auth server-to-server | Pas d'interaction utilisateur |
| APIs read publiques | Identifier caller |
| Webhooks (sending) | Authentifier sender |
| Intégrations third-party | Plus simple qu'OAuth flow |
| Auth microservice interne | Si mTLS overkill |
FAQ : API keys
Les API keys sont-elles sécurisées ?
Moins qu'OAuth 2.0 ou mTLS.
API key vs OAuth : laquelle utiliser ?
API key pour server-to-server. OAuth pour apps user-facing.
Comment je rote une API key ?
Générer nouvelle key, les deux valides pendant transition, révoquer ancienne.
Les API keys devraient-elles expirer ?
Oui — 90 jours typique.
Où je stocke les API keys ?
Secrets manager.
Comment je détecte une API key leaked ?
GitHub secret scanning, gitleaks.
Puis-je utiliser API keys dans apps mobile ?
Risqué.
Testez les endpoints API-key-protégés avec LoadFocus
LoadFocus exécute des scripts JMeter et k6 qui envoient des API keys à scale. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus — la plateforme même qui propulse tout ce que vous venez de lire.