API und API Key:Definition Application Programming Interface (API)
Was ist eine API
Wir alle Nutzen sie wahrscheinlich täglich, sogenannte Apps (Applications). Diese sind interaktive Software-Anwendungen, mit unterschiedlichen Nutzen für den Anwender. Für die Verwendung kann der Benutzer verschiedene Endgeräte wie Smartphones, Computer und/oder Tablets einsetzen. Verschiedene Apps lassen sich auch miteinander verbinden, dazu wird ein Application Interface (API) benötigt.
Damit ein Gerät letztendlich Informationen an eine App übermitteln kann, muss eine Autorisierung erfolgen. Hierzu muss ein Application Key (Anwendungsschlüssel) erzeugt werden. Dieses Vorgehen wird häufig für das Zuweisen der Berechtigung zu einem Endgerät angewendet.
Erfahre hier mehr über den Nutzen und die Anwendung von Application Interface und Application Keys.
Bei einer Transaktion im Onlinebanking, beim Onlineshopping oder dem Versand eines neues Post auf Facebook. APIs sind überall und die meisten Menschen haben täglich mit ihnen zu tun, ohne es zu merken.
Unter Application Programming Interface (API) versteht man eine Programmierschnittstelle. Sie stellt somit den “Einstiegspunkt” in ein System oder eine Anwendung für andere Systeme oder Anwendungen dar. Dies ermöglicht die Kommunikation zwischen zwei Programmen oder Systemen in Echtzeit. Die API kann eindeutig definieren, in welcher Form die Informationen und Daten vom System entgegengenommen und wieder zurückgesendet werden.
Anders als bei einer Benutzerschnittstelle kommuniziert bei einer Anwendungsschnittstelle nicht ein Mensch mit einem System, sondern Anwendungen kommunizieren direkt miteinander.
Ein praktisches Beispiel:
Über einen Online Shop wird ein beliebiger Artikel bestellt. Der Käufer kommuniziert dabei nur mit dem Shop über die Webseite. Der Shop an sich kann aber über eine API verschiedene Aktionen wie zum Beispiel eine Bonitätsprüfung veranlassen. Dies passiert im Hintergrund der Bestellung, eine menschliche Interaktion ist dafür nicht notwendig.
Optimale APIs stellen alle Elemente zur Verfügung, die von den Programmierern für die Zusammenstellung benötigt werden. Sie erleichtern damit die Entwicklung von Programmen und Anwendungen.
Mögliche Gefahren einer Programmierschnittstelle
Eine API bietet viele praktische Eigenschaften, dennoch besteht die Möglichkeit, dass sie für die Anwender gefährlich werden können. Viele Nutzer wissen gar nicht genau welche Rechte sie einer App bei der Benutzung gewähren und welche nicht. Häufig liegt dies daran, dass die AGBs und die Berechtigungen nur überflogen oder überhaupt nicht gelesen werden. Im schlechtesten Fall kann es dazu kommen, dass Dritte Zugriff auf alle Daten und Aktivitäten erhalten. Zum Schutz sollten daher ausschließlich vertrauensvolle Apps verwendet werden.
Das versteht man unter Application Key
Unter einem Application Key versteht man einen Authentifizierungsschlüssel, der von Computeranwendungen bei jeder Anfrage übertragen wird. Um Funktionen gemeinsam zu nutzen, ist es einer API möglich ein Programm mit einem Anderen zu verbinden. Um eine Verbindung zu einer anderen API herzustellen oder mit dieser kommunizieren zu können, ist ein API-Schlüssel erforderlich. Die App ruft dabei die API zur Identifikation auf.
Dies dient dazu, dass nur berechtigte Anwendungen Zugriff auf die Programmierschnittstelle haben. Wird dann eine Anfrage von einer App gesendet, prüft der API-Server den API-Key und ob die App die entsprechende Berechtigung besitzt. Wurde die Berechtigung erteilt, kann die Anfrage ausgeführt werden, andernfalls wird der Zugriff verweigert.
API Keys kommen sehr oft zum Einsatz, wenn es sich um die Verhinderung von Missbrauch oder die feindselige Nutzung der betreffenden API handelt.
Der Einsatz von Application Keys
Die Application fordert einen eigenen API-Schlüssel an, dieser wird dann bei jeder Anfrage an den API-Server übermittelt. So kann nun aufrufende Programm einer Website identifiziert werden. Die Vorgehensweise von Authentifizierungsschlüssel ist der von Benutzerauthentifizierung für Webanwendungen und mobile Geräte sehr ähnlich.
Wenn verschiedene Anwendungen miteinander verbunden werden sollen, erweisen sich API-Schlüssel als sehr nützlich. Daten können in sicherer Form gemeinsam genutzt werden. Auch eine Verbindung zu anderen Systemen kann hergestellt werden, die die benötigten Informationen bereitstellen. Eine Codierung ist dabei nicht notwendig.
Wie die Verwendung des Schlüssels erfolgen soll, ist abhängig von der API mit der ein Austausch erfolgen soll.
Für den Zugriff auf private Daten werden API-Schlüssel nicht eingesetzt. In der Regel werden Sie für Webanwendungen und Mobile Anwendungen verwendet, die keine Anbindung zu einem Back-End-Server haben. Ohne Back-End-Server müssen die Apps die Informationen über eine Verbindung zum Application Programming Interface abrufen. Anwendungsschlüssel werden dabei zum Authentifizieren verwendet.
Die entsprechenden Regeln für den Empfang eines bestimmten API-Schlüssels werden von dem Entwicklers der API erstellt und verwaltet.
Somit können diese Schlüssel als erster Schritt für die Authentifizierung und erste Sicherheitsmaßnahme fungieren.
Die zwei Seiten bei der Verwendung von Application Keys
Durch Application Keys wird der Authentifizierungsprozesse noch komplexer und damit sicherer. Anwendung erhalten eine eindeutige Identität und erhalten nur Zugriff bei entsprechender Berechtigung.
- Feststellbar welche Anwendung auf welche API zugreift
- Definierbar welcher Benutzer welche Anwendung autorisiert hat
- Nachvollziehbarer Überblick auf gewährte Zugriffe
- Zugriffsrechte können vom Nutzer selbst verwaltet werden
Application Keys sind häufig in Serverprotokollen sichtbar und werden in URLs integriert. Daher besteht die Gefahr darin, dass bei jeder Anfrage ausschließlich die entsprechende Anwendung identifiziert wird, jedoch bleibt der Benutzer dabei unbekannt. Hacker können so unerkannt in Anwendungen eindringen. Es ist also Vorsicht geboten:
- Sollten nicht als Autorisierungs-Tracking-Mechanismus eingesetzt werden
- Die identität des Nutzers kann nicht erkannt werden
- Keine sichere Speicherung auf dem Client im Gegensatz zu Passwörtern
- Hacker können Application Keys einfacher erkennen durch die unsichere Speicherung