Was ist ein API-Key? Definition, Use, Security Best Practices
Ein API-Key ist ein eindeutiger String, der die anrufende Applikation identifiziert. Genutzt für Auth, Rate-Limiting, Billing — aber schwächer als OAuth.
Was ist ein API-Key?
Ein API-Key ist ein eindeutiger Character-String, der die Applikation oder den User identifiziert und authentifiziert, der einen Request an eine API macht. Es ist die simpelste Form der API-Authentifizierung: den Key im Request-Header (oder manchmal Query-String) inkludieren, und der Server checkt ihn gegen eine Datenbank.
API-Keys werden häufig genutzt für: Identifizieren welche App callt, Rate-Limits applien, Usage für Billing tracken, basic Authorization.
Wie ein API-Key aussieht
API_KEY="sk_live_4eC39HqLyjWDarjtT1zdp7dc"Wie API-Keys gesendet werden
| Methode | Beispiel | Notes |
|---|---|---|
| Authorization-Header | Authorization: Bearer YOUR_API_KEY | Häufigste, empfohlen |
| Custom-Header | X-API-Key: YOUR_API_KEY | Common Pattern |
| Query-String | ?api_key=YOUR_API_KEY | Weniger secure |
| Request-Body | JSON-Feld | Selten für REST |
API-Key vs andere Auth-Methoden
| Methode | Strength | Wann nutzen |
|---|---|---|
| API-Key | Niedrig | Server-to-server, simple |
| OAuth 2.0 | Hoch | User-facing Apps |
| JWT | Medium-hoch | Microservices |
| mTLS | Hoch | Service-to-service |
| Basic Auth | Niedrig | Legacy |
| HMAC Signing | Hoch | Webhooks |
API-Key-Generation-Beispiel
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 });API-Key Security Best Practices
- Keys als Secrets behandeln.
- Environment-Variables nutzen.
- Regelmäßig rotieren.
- Mit Permissions scopen.
- IP-Allowlist.
- Verschiedene Keys pro Environment.
- Hashen, nicht raw speichern.
- Key einmal at Creation zeigen.
- Per-Key rate-limiten.
- Key-Usage loggen.
- On Demand revoken.
Häufige API-Key-Fallstricke
- Keys in Client-side Code.
- Keys in Git-History.
- Keys in URLs.
- Single Key für alles.
- Keine Rotation.
- Kein Rate-Limiting.
- Raw Keys in DB speichern.
- Keys via Slack/Email teilen.
API-Key-Use-Cases
| Use Case | Warum API-Key funktioniert |
|---|---|
| Server-to-server Auth | Keine User-Interaction |
| Public Read-APIs | Caller identifizieren |
| Webhooks (Sending) | Sender authentifizieren |
| Third-party Integrations | Simpler als OAuth-Flow |
| Internal Microservice Auth | Wenn mTLS overkill |
FAQ: API-Keys
Sind API-Keys secure?
Weniger als OAuth 2.0 oder mTLS.
API-Key vs OAuth: was nutzen?
API-Key für server-to-server. OAuth für user-facing Apps.
Wie rotiere ich einen API-Key?
Neuen Key generieren, beide valid für Transition, alte revoken.
Sollten API-Keys expire?
Ja — 90 Tage typisch.
Wo speichere ich API-Keys?
Secrets-Manager.
Wie detektiere ich einen geleakten API-Key?
GitHub Secret-Scanning, gitleaks.
Kann ich API-Keys in Mobile-Apps nutzen?
Riskant.
API-Key-protected Endpoints mit LoadFocus testen
LoadFocus läuft JMeter- und k6-Scripts, die API-Keys at Scale senden. Registrieren bei loadfocus.com/signup.
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um — derselben Plattform, die alles antreibt, was du gerade gelesen hast.