Frage

Neulich habe ich einen Artikel über OAuth gelesen.Darin wurden insbesondere die Token beschrieben, die während einer Reihe von Anfragen zwischen Kunde und Dienstanbieter ausgetauscht werden.

In dem Artikel wurde auch erwähnt, dass OAuth in RESTful-APIs als Autorisierungsschicht immer beliebter wird.Soweit ich weiß, sollte REST völlig zustandslos gehalten werden.

Die Frage:Torpediert dieser wiederholte Token-Austausch nicht das „Staatenlosigkeit“-Prinzip von REST?IMHO können die Token als eine Art Sitzungs-ID angesehen werden, nicht wahr?

War es hilfreich?

Lösung

pro-Client-Speicher auf dem Server

OAuth-Token sind explizit eine Sitzungs-ID, ist die Interaktion nicht staatenlos zwischen den Anforderungen im OAuth-Token Verhandlungsprotokoll wie die Anfragen müssen in einer bestimmten Reihenfolge durchgeführt werden, und sie erfordern, wie Sie verfolgen müssen Dinge wie, wenn sie ausgestellt wurden. Also ja, OAuth verstößt die strengen Prinzipien einer REST-Architektur.

Leider gibt es die reale Welt TM zu kämpfen, wo wir Dinge tun müssen, wie können Anwendungen auf dem Namen von Personen authentifizieren, ohne ihr Passwort anfordern, die OAuth recht gut tut. Es wäre unmöglich, ein ähnlich sicheres Authentifizierungsschema ohne diese Art von Staat zu implementieren. Tatsächlich ist einer der von OAuth erforderlichen Änderungen (1.0a) war hinzuzufügen mehr Zustand zum Token Verhandlungsprotokoll eines Sicherheitsrisiko zu verringern.

So funktioniert es REST des staatenlos Prinzip torpedieren? Ja. Spielt das eine Rolle? Nicht, wenn Sie in einem Elfenbeinturm leben: -)

Andere Tipps

Die Authentifizierung ist ein Zustand, der bei Webinteraktionen irgendwie nachverfolgt werden muss.Unabhängig davon, ob Ihre App ruhefähig ist oder nicht, muss der Server letztendlich in der Lage sein, den „authentifizierten Status“ jedes Benutzers zu verfolgen. Leider erfordert dies eine Umgehung der zugrunde liegenden zustandslosen Natur von HTTP und darüber hinaus alle zusätzlichen Transporte/Techniken (wie REST). Es.

Um also irgendeine Art von authentifizierter App zu entwickeln, muss irgendwo ein Zustandsprinzip eingebaut werden, und wenn das OAuth auf REST ist, muss es so sein!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top