REST – Einführung in die API Erstellung

API Sicherheit

Ein großes Thema bei einer API ist die Zugangskontrolle. Wir wollen natürlich nicht, dass jeder, der die richtige URL entdeckt, unsere Daten abgreifen kann.

Wie oben schon erwähnt ist der erste Schritt HTTPS zu verwenden, dann kann schon mal niemand mehr so leicht die Abfragen mitlesen.

Darüber hinaus müssen wir unbedingt den Client authentifizieren zum Beispiel mit einem Token, dass wir individuell für jeden Partner vergeben. Zusätzlich können wir durch eine Begrenzung auf die IPs des Partners Missbrauch eingrenzen.

Authorization Token

Um die einzelnen Nutzer der API zu legitimieren bietet sich ein Authorization Token im Kopfteil jeder Anfrage an.

Die Anfrage würde entsprechend erweitert.

Das müssen wir dann an einer zentralen Stelle prüfen, damit es für alle Endpunkte gilt. Hier kommt die bereits zuvor erwähnte Basisklasse ApiController ins Spiel.

 

Etwas aufwendiger (aber auch sicherer) wäre die Umsetzung von OAuth. Hier fordert der Client zunächst ein Access-Token über einen separaten Login-Endpunkt an und sendet dieses bei den nachfolgenden Anfragen mit. Die API wäre dann zwar nicht mehr 100 % RESTful (der Server speichert ja das Access-Token), aber der Zugewinn an Sicherheit rechtfertigt dies in einigen Situationen.


Zugriff begrenzen durch IP-Whitelist

Sehr empfehlenswert ist eine Zugriffsbeschränkung anhand einer IP-Whitelist. Wir wollen hier konkrete IPs wie 192.168.10.15 aber auch Netzmasken wie 192.168.10.0/27 erlauben.


Zum Schluss noch ein kleiner Ausblick