2016-06-27 15 views
0

Ich entwickle eine Web-API für meine eigenen Dienste. Da die API auf eine Reihe spezieller Benutzer beschränkt ist, muss ich die Anmeldeinformationen überprüfen.Api-Anmeldeinformationen über HTTP Auth, gute Idee?

Ich habe viele Beispiele von Zahlungs-Gateways wie Stripe gesehen, und sie verwenden eine einfache Methode zur Authentifizierung von Benutzern: Über eine https-Website senden sie ihren Benutzer "Token" über http Auth, und die Anfragedaten als GET/POST-Parameter. Dieses Benutzer-Token wird für jeden Benutzer generiert und kann jederzeit neu generiert werden.

Ist dies eine sichere Möglichkeit, den Zugriff auf meine API zu ermöglichen? Es scheint sehr einfach zu implementieren, aber ich kann keinen Fehler darin sehen, oder vielleicht verpasse ich etwas? Vielleicht ist die Verwendung eines asymmetrischen Krypto sicherer?

Danke!

Antwort

1

Um sich zu authentifizieren, müssen Sie der API etwas bereitstellen, das zwischen Ihrer API und den Benutzern geteilt wird. Es könnte sein:

  • ein Login und ein Passwort. Dies ist eine schlechte Idee, da sie nicht so einfach zu einem Token zu widerrufen sind. Schauen Sie sich an, wie Google uses JWT, das ist eine gute Implementierung.
  • ein TLS client certificate. Dies beruht darauf, dass die Schicht direkt vor Ihrer Anwendung (TLS) bestimmte Clients autorisiert. Es ist komplizierter einzurichten, da die API die PKI abfragen muss, um den Client zu identifizieren.

Ich würde für die Token-basierte Authentifizierung gehen. Es erfordert einige Arbeit, um eine funktionierende Konsole zu haben, wo Clients ihr Token erhalten können, aber es ist letztendlich besser mit den Authentifizierungsstandards ausgerichtet (und flexibel genug, um Client oAuth zu verwenden, wenn es eines Tages benötigt wird)

Verwandte Themen