Ein API-Key ist ein geheimer Schlüssel, mit dem sich ein Programm bei einer Schnittstelle ausweist. Der Anbieter erkennt daran, wer anfragt, was er darf und wie viele Anfragen er schon gestellt hat.
- API-Key
Eine lange, zufällige Zeichenfolge, die ein Anbieter vergibt und die bei jeder Anfrage an seine Schnittstelle mitgeschickt wird.
Beispiel: „Der API-Key für den Kartendienst liegt in den Umgebungsvariablen des Servers und nie im Code.“Auch: API-Schlüssel.
Abgrenzung zu OAuth: Ein API-Key weist ein Programm aus. OAuth erlaubt einem Programm, im Namen eines Nutzers zu handeln, mit dessen Zustimmung und zeitlich begrenzt.
Wie ein API-Key übergeben wird
Meist in einem Header, etwa Authorization oder einem eigenen wie X-API-Key. Manche Schnittstellen erwarten ihn in der Adresse, was unsicherer ist, weil Adressen in Protokollen und im Browserverlauf landen.
Wohin ein API-Key gehört
In die Umgebung des Servers, nie in den Code und nie ins Repository. In Laravel steht er in der Datei .env, die nicht mit dem Code versioniert wird, und wird über die Konfiguration gelesen; mehr unter Umgebungsvariablen.
Ein Schlüssel, der im Browser gebraucht wird, etwa für eine Karte, ist zwangsläufig öffentlich. Solche Schlüssel werden beim Anbieter auf die eigene Domain und auf die nötigen Dienste beschränkt.
Was bei einem geleakten API-Key zu tun ist
Sofort beim Anbieter sperren und einen neuen erzeugen. Schlüssel, die in einem öffentlichen Repository landen, werden von automatischen Suchen innerhalb von Minuten gefunden und missbraucht; bei KI-Diensten und Cloud-Anbietern entstehen so in kurzer Zeit hohe Rechnungen.
Vorbeugen hilft: Schlüssel je Projekt und Umgebung trennen, nur die nötigen Rechte vergeben und bei Anbietern, die es erlauben, ein Ausgabenlimit setzen.