Wir entwickeln soziale Anwendungen für mobile Geräte. Jede Anwendung verwendet RESTful API-Webdienste. Wenn ich mich einbinde, speichere ich normalerweise den Benutzernamen und das Passwort irgendwo auf dem Gerät. Dann sende ich sie und erhalte als Antwort Zugang zu meinem Profil. Aber ich weiß auch, dass es einen anderen Weg gibt.
Man generiert irgendwie ein Token mit einem bestimmten Algorithmus und sendet es dann anstelle des Benutzernamens und des Kennworts, um Zugriff zu erhalten.
Wie soll ich das umsetzen? Sollte ich dieses Token zusammen mit jeder anderen Anfrage als der Anmeldung senden?
Antworten:
Es gibt verschiedene Möglichkeiten, um die Authentifizierung im RESTful-Kontext zu implementieren , und es ist sicherer, nur Token anstelle von Login / Passwort zu senden: Sie können Token leicht durch Timeout oder andere Kriterien ungültig machen und den Benutzer zur erneuten Authentifizierung auffordern .
Zum Beispiel Authentifizierungs-REST-Anforderungen mit HMAC . Bei diesem Ansatz verfügt der Client über öffentliche und geheime Schlüssel . Für alle Anforderungen, die eine Authentifizierung erfordern , sollten Sie den öffentlichen Schlüssel hinzufügen und den geheimen Schlüssel verwenden , um den Hash Ihrer Anforderung zu berechnen
Jetzt konnte der Server die Anfrage anhand des öffentlichen Schlüssels identifizieren und requestHash selbst berechnen . Sind beide Hashes gleich, ist der Benutzer berechtigt.
Übrigens müssen Sie auch https verwenden, um die Kommunikation über ein Computernetzwerk abzusichern - dies wird die Anzahl möglicher Probleme drastisch reduzieren.
quelle
oAuth ist der Standard dafür, aber es gibt mehr Lösungen.
Versuchen Sie nicht, Sicherheit, Token usw. alleine zu implementieren, da dies ein schwieriges und riskantes Thema ist. Schauen Sie sich zum Beispiel hier um:
/programming/4574868/securing-my-rest-api-with-oauthilst-allowing-authentication-via-third-pa
quelle