Skip to content

API-Schlüssel

API-Schluessel ermoeglichen externen Systemen den Zugriff auf die CMS-REST-API ohne Benutzer-Anmeldung. Typische Faelle: eine mobile App, die Inhalte abruft; ein Analytics-Exporter, der Bestellungen zieht; ein Partner-System, das Blog-Artikel pusht. Jeder Schluessel ist auf eine Menge von Endpunkten + HTTP-Methoden begrenzt, kann ein Ablaufdatum haben und jederzeit rotiert oder widerrufen werden.

Oeffne Einstellungen → API-Schlüssel. Die Liste zeigt alle Schluessel mit Name, Prefix, Ablauf und letztem Einsatz.

API-Schluessel-Liste mit Neuer Schluessel, Rotieren und Loeschen

Der volle Schluessel wird nur einmal gezeigt

Beim Anlegen oder Rotieren wird der volle Schluessel-Wert genau einmal in einem Kopieren-Banner angezeigt. Das System speichert nur einen Hash — der volle Schluessel ist nachtraeglich nicht wieder auslesbar. Gehoerte er verloren, rotier ihn und aktualisier den Aufrufer.

1. Schluessel anlegen

Klick Neuer Schlüssel. Ein Modal oeffnet sich.

Neuer-Schluessel-Modal mit Name, Ablauf und Rechte-Tabelle
FeldZweck
NameSprechendes Label, z.B. Mobile App, Partner Importer.
AblaufOptionaler Stichtag. Der Schluessel funktioniert ab 00:00 Uhr dieses Tages nicht mehr.
AktivHaken entfernen, um den Schluessel ohne Loeschen zu pausieren.
RechtePro-Endpunkt-Checkboxen — siehe unten.

Klick Speichern. Der volle Schluessel erscheint im Banner mit Kopieren.

text
nscms_k1_abc123...

Kopier den Wert in den sicheren Speicher des Aufrufers. Schliess das Banner, um zur Liste zurueckzukehren.

2. Rechte pro Endpunkt konfigurieren

Die Rechte-Tabelle hat eine Zeile pro API-Endpunkt und vier Spalten: GET, POST, PATCH, DELETE. Setz Haken bei den Methoden, die der Schluessel nutzen darf.

Die Sonderzeile * gewaehrt alle Methoden auf allen Endpunkten — nur fuer vertrauenswuerdige Voll-Admin-Integrationen.

Beispiele:

AnwendungsfallMuster
Nur-Lesen oeffentliche DatenGET auf /api/pages, /api/menu, /api/settings
Bestell-ExportGET auf /api/backend/item (mit ?table=s_orders)
Blog-PublisherGET + POST + PATCH auf /api/backend/item (Tabelle blog_articles)
Voll-Admin* auf allen Methoden

3. Schluessel in einem Request nutzen

Sende den Schluessel als HTTP-Header:

bash
curl https://example.com/api/pages \
  -H 'X-Api-Key: nscms_k1_abc123...'

Der Header-Name ist X-Api-Key. Query-String-Transport wird nicht unterstuetzt.

Bei Erfolg antwortet der Server mit normalem JSON. Bei fehlenden Rechten: HTTP 401 Unauthorized. Bei abgelaufenem Schluessel: 401 mit "error": "api_key_expired".

4. Schluessel rotieren

Klick auf das Rotieren-Icon in der Zeile. Der alte Wert funktioniert ab sofort nicht mehr; ein neuer Wert wird generiert und im gleichen Banner einmalig angezeigt.

Rotier vor dem Leak

Rotier sofort, wenn ein Schluessel moeglicherweise durchgesickert ist (geteilter Bildschirm, Git-Commit, Logdatei). Nimm ein Leck an, auch wenn du es nicht beweisen kannst.

5. Schluessel loeschen

Klick auf das Muell-Icon Löschen. Der Schluessel wird entfernt; jeder Aufrufer erhaelt beim naechsten Request 401. Loeschung ist sofort — kein Soft-Delete.

Rate-Limiting

Jeder oeffentliche API-Endpunkt liegt hinter einem Token-Bucket-Rate-Limiter. API-Schluessel-Requests zaehlen auf den Schluessel selbst (nicht auf die IP), damit ein einzelner Aufrufer sich nicht selbst per IP-Budget blockiert.

BucketStandard-TokensRefill pro Sekunde
Global Frontend1001,67
API (extern)601,0
backend/auth10 (pro IP)0,17
checkout10 (pro IP)

Beim Drosseln liefert der Server HTTP 429 Too Many Requests mit den Headern X-RateLimit-Limit, X-RateLimit-Remaining und Retry-After. Der Client sollte Retry-After respektieren.

Ohne APCu

Rate-Limiting faellt auf "immer erlauben" zurueck, wenn APCu nicht installiert ist. Pruef Task-Manager → Systemstatus — die APCu-Karte muss Aktiv zeigen. Ohne APCu ist das System DoS-offen.

Siehe auch