Die beste Methode zum Implementieren der Authentifizierung für eine REST-API


21

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?


11
Das ist Authentifizierung , keine Autorisierung . Authentifizierung = beweisen, dass Sie der sind, für den Sie sich ausgeben. Autorisierung = Nachweis, dass Sie das tun dürfen, was Sie angefordert haben.
Tdammers

Ich wollte nur den gleichen Kommentar zu den Antworten hinzufügen! +1 an Sie @tdammers Ich habe den gesamten Inhalt bearbeitet, damit Sie nicht durch
Google-Berechtigungen

Antworten:


14

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

var myRequest = "https://myserver/resource?publicId=12345&param=value";
var requestHash = hmac_implementation(myRequest);
myRequest = myRequest + '&hmac=' + requestHash;

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.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.