Suchen

Netzwerk-Schnittstellen für mobile Endgeräte Sichere Entwicklung von API-Anwendungen

| Autor / Redakteur: Sascha Preibisch, Layer 7 / Stephan Augsten

Benutzer mobiler Computer und Smartphones sind es gewohnt, via Internet jederzeit auf persönliche Daten zugreifen zu können. Wirklich sicher funktioniert das aber nur über entsprechende Schnittstellen im Unternehmen. Dieser Beitrag befasst sich mit der API-Sicherheit.

Firma zum Thema

Fallbeispiel für den Zugriffsschutz mithilfe eines API Proxy.
Fallbeispiel für den Zugriffsschutz mithilfe eines API Proxy.

Wenn Smartphone- und PC-Nutzer sich mit dem Internet verbinden, so werden hierfür in der Regel Internet-Browser oder Apps auf den Endgeräten genutzt. Entsprechende Anwendungen verbinden sich bei jedem Aufruf mit einem Server, der eine API (Application Programming Interface) zur Verfügung stellt, um die angeforderten Daten zu liefern.

Anbieter dieser APIs müssen sicherstellen, dass diese zuverlässig und sicher funktionieren. Darüber hinaus muss man der Lage sein, einzelne APIs hinsichtlich ihrer Antwortzeiten, Aufruffrequenzen oder der aufrufenden Anwendung zu überwachen. Anbieter sollten weiterhin einzelne APIs deaktivieren oder die mögliche Zugriffshäufigkeit ändern können, bzw. einzelne APIs vor Zugriffen bestimmter Anwendungen schützen.

Für einen Anbieter kann es eine Herausforderung sein, diese APIs entsprechend anzubieten. Ein guter Weg diese Aufgabe zu erfüllen sind zwei bestimmte Schritte. Zum einen sollten APIs über einen API Proxy im Internet zur Verfügung gestellt werden, zum anderen empfiehlt sich der Einsatz sogenannter API-Keys.

Wie funktioniert ein API Key

Ein API Key ist ein Authentifizierungsmerkmal für einzelne Anwendungen. Sollen API-Schlüssel eingeführt werden, müssen Anwendungsentwickler ihre Anwendung über den API Proxy registrieren. Der API Proxy generiert einen API Key, welcher mit jedem Aufruf der Schnittstelle verwendet werden muss.

Der API Proxy identifiziert den Schlüssel und kann so Kennzahlen erstellen und Regeln zur Verwendung dieses API-Keys anwenden. In Kombination mit OAuth kann der API-Schlüssel auch dazu verwendet werden, einen konkreten Benutzer mit einer Anwendung in Verbindung zu bringen. In OAuth wird der API Key als oauth_consumer_key (OAuth 1.0) oder client_id (OAuth 2.0) bezeichnet.

Da die Anwendung die Login-Daten des Benutzers nicht kennt und auch nicht kennen soll, muss der Benutzer die Anwendung in einer anderen Art und Weise authorisieren. Eine OAuth-fähige Anwendung verwendet dabei den API Key und ein Passwort (API Key Secret, shared secret, oauth_consumer_key_secret), um sich zu authentifizieren.

Der Anwender muss dann aktiv den Zugriff der entsprechenden Anwendung authorisieren. Diese erhält anschließend einen sogenannten access_token. Versucht die Anwendung später auf die Daten den Benutzers zuzugreifen, muss diese den API Key und den access_token (je nach OAuth-Version) mitgeben.

Auf der einen Seite kanm der API-Anbieter nun festzustellen, welche Anwendung auf welche API zugreift und welcher Benutzer diese Anwendung authorisiert hat. Auf der anderen Seite ist für den Benutzer nachvollziehbar, welchen Anwendungen er Zugriff gewährt hat. Die Zugriffrechte kann er selbst verwalten und auch zurückziehen.

(ID:33247980)