Anwendungsprogrammierschnittstelle (API): Was ist ein API Key (API-Schlüssel), wie funktioniert er und wann ist er zu verwenden?
Der API Key (API-Schlüssel) ist eine Zeichenkette, die zur Authentifizierung von Anwendungen verwendet wird, wenn sie eine API-Anfrage stellen. Für API-Dienste, die mit sensiblen Daten arbeiten, sind private Schlüssel ein grundlegender Bestandteil der Architektur, da sie nur den Zugriff auf Daten und Dienste ermöglichen, für die eine Autorisierung vorliegt.
API Key werden auch häufig zur Überwachung und Verwaltung von APIs verwendet: Sie ermöglichen es, die Nutzung der Dienste durch einzelne Clients zu verfolgen und Begrenzungen für die Anzahl der Anfragen anzuwenden, um Missbrauch und Sicherheitsrisiken zu vermeiden.
Ein API Key ist eine eindeutige Kennung, in der Regel eine zufällig generierte Zeichenkette, die zur Authentifizierung von Clients und zur Gewährung des Zugriffs auf APIs verwendet wird.
Die Anwendung fügt ihren API Key jeder Anfrage hinzu, die an eine bestimmte API oder an eine Gruppe von API-Diensten gesendet wird. Diese Dienste können den Schlüssel verwenden, um die Anwendung zu identifizieren und die Anfrage zu autorisieren.
Der API Key ist ein Code, der sorgfältig aufbewahrt und vertraulich behandelt werden muss – genau wie ein Passwort. Im Gegensatz zu einem Passwort bezieht sich der API Key jedoch nicht auf einen echten Benutzer und muss nicht regelmäßig geändert werden, um seine Sicherheit zu gewährleisten.
Es gibt zwei Haupttypen von Schlüsseln, die zum Zugriff auf Daten und Dienste über APIs verwendet werden: öffentliche und private Schlüssel.
Öffentliche API Key werden für den Zugriff auf nicht sensible Daten und Funktionen verwendet, die keine Authentifizierung erfordern. Sie werden in der Regel verwendet, um Funktionen oder Dienste anderer Anwendungen zu integrieren – zum Beispiel für den Zugriff auf Google Maps oder soziale Netzwerke.
Der Nutzen öffentlicher API Key liegt hauptsächlich in der Überwachung: Sie werden verwendet, um die Nutzung von Diensten zu verfolgen und eine Ratenbegrenzung (Rate Limiting) anzuwenden, also die Anzahl der Anfragen, die ein Benutzer in einem bestimmten Zeitraum an eine API senden darf, zu begrenzen.
Private API Key hingegen werden für den Zugriff auf sensible Daten oder kontrollierte Dienste verwendet, wie zum Beispiel Zahlungsdienste. Diese Schlüssel werden vom API-Dienstanbieter an einen bestimmten Nutzer ausgegeben und dürfen nicht weitergegeben werden.
Manchmal werden öffentliche und private Schlüssel zusammen verwendet: Dies geschieht zum Beispiel, wenn der Client den privaten Schlüssel verwendet, um eine digitale Signatur für die Anfrage zu erzeugen. In diesem Fall kann der API-Server die digitale Signatur mit dem entsprechenden öffentlichen Schlüssel überprüfen. In dieser Weise verwendet, ermöglichen API-Schlüssel die Rückverfolgung bestimmter Nutzer, die Anfragen gestellt haben, und sorgen für ein hohes Maß an Sicherheit.
Um einen privaten API-Schlüssel zur Nutzung eines über API bereitgestellten Dienstes verwenden zu können, muss er beim Anbieter der betreffenden APIs angefordert werden. Der erste Schritt besteht darin, ein Konto beim API-Anbieter zu erstellen und den gewünschten Dienst auszuwählen.
Dann stellt der Anbieter den Schlüssel zur Verfügung, der sorgfältig kopiert und aufbewahrt werden muss: In den meisten Fällen ist der Schlüssel ein Datenelement, auf das der Anbieter keinen Zugriff hat – bei Verlust ist er also nicht wiederherstellbar.
Nach Erhalt des Schlüssels muss dieser nur noch in die API-Anfragen eingefügt werden: Je nach Anbieter kann dies in der Abfrage, im Header oder als Cookie erfolgen.
Allein verwendet sind API Key kein besonders sicheres Authentifizierungssystem für API-Anwendungen, da sie nur die aufrufende Anwendung, nicht aber den Endbenutzer identifizieren. Für Dienste, die ein höheres Maß an Sicherheit erfordern, werden sie daher in Verbindung mit anderen Schlüsseln oder komplexeren Systemen wie Token oder OAuth verwendet.
Da sie es ermöglichen, die Herkunft von Anfragen zu identifizieren, sind API Key besonders nützlich in folgenden Bereichen:
API Key sind ein grundlegendes Element der Sicherheit von Webanwendungen, da sie den Zugriff auf Daten steuern und die Nutzung der Software überwachen. Andererseits können API Key an Dritte weitergegeben werden und sind daher nicht die sicherste Form der Authentifizierung und Autorisierung für eine Anwendung.
In der Architektur der Openapi-Dienste werden API Key zur Generierung eines Tokens verwendet, das den Zugriff auf eine oder mehrere Ressourcen für einen bestimmten Zeitraum ermöglicht. Der API Key stellt in diesem Sinne sicher, dass jeder Client nur auf die Dienste zugreifen kann, für die er eine Autorisierung besitzt. Gleichzeitig erlaubt er es, die Aktivitäten einzelner Anwendungen zu überwachen – und liefert damit entscheidende Daten für einen immer effizienteren und personalisierten Service.