2016-10-26 1 views
1

Wir haben ein Krankenhaus als Kunde, der eine App entwickelt haben möchte. Diese App wird wahrscheinlich verschiedene Arten der Validierung verwenden, von denen OAuth2 eins ist. Sie haben eine Liste von Anforderungen, von denen eine Art Rätsel ich:Was bedeutet dieses Krankenhaus mit den folgenden OAuth-Anforderungen?

Für jede Benutzersitzung, die App eineine unberechenbaren „Zustandsparameter“ erzeugen muss. Die App muss den "Statuswert" für jeder Anfrage validieren, die an die Weiterleitungs-URL gesendet wird; der "Zustand" muss mit allen Autorisierungsanfragen auf aufgezeichnet werden; und der "Zustandswert" hat , um mit dem Zugangstoken bestätigt zu werden, das er empfängt.

Obwohl sie es nicht ausdrücklich erwähnen, denke ich, dass es um OAuth geht. Ich habe etwas Erfahrung mit OAuth2. Ich weiß, welche Zugriffstoken und Aktualisierungstoken sind. Aber diese Geschichte ist über meinem Kopf. Welche Art von "state parameter" und "state value" sprechen sie?

Könnte jemand diese Geschichte beleuchten?

Antwort

2

Dies ist über die state Parameter, die OAuth 2.0 in der Autorisierungsanforderung als empfohlene Parameter (https://tools.ietf.org/html/rfc6749#section-4.1.1) verwendet, um Schutz vor Cross-Site-Anfrage Fälschung definiert und im allgemeinen Anforderungen und Antworten zu korrelieren:

Zustand
 RECOMMENDED. An opaque value used by the client to maintain 
    state between the request and callback. The authorization 
    server includes this value when redirecting the user-agent back 
    to the client. The parameter SHOULD be used for preventing 
    cross-site request forgery as described in Section 10.12. 
1

ich glaube, sie wählten eine OAuth 2.0-Client-Anwendung Anforderung an ihre eigenen Worte zu schreiben. Die Spezifikation besagt Folgendes:

Der Client MUSS den CSRF-Schutz für seinen Umleitungs-URI implementieren. Dies wird typischerweise dadurch erreicht, dass jede Anforderung, die an den Umleitungs-URI-Endpunkt gesendet wird, einen Wert enthält, der die Anforderung an den authentifizierten Zustand des Benutzeragenten bindet (z. B. einen Hash des Sitzungscookies, der zur Authentifizierung des Benutzeragenten verwendet wird). Der Client SOLLTE den Anforderungsparameter "state" verwenden, um diesen Wert bei einer Autorisierungsanforderung an den Autorisierungsserver zu senden.

(Hervorhebung von mir, lesen Sie die ganze Geschichte in section 10.12 of the specification)

Für eine Schritt-für-Schritt geführt Ansatz, wie die Zustandsparameter verwenden Sie Using the State Parameter beziehen. Diese Seite erwähnt Auth0, aber der Prozess sollte für alle anderen OAuth 2.0-kompatiblen Server identisch sein. Beachten Sie auch, dass die spezifischen Schritte eine browserbasierte Anwendung voraussetzen und den unvorhersehbaren Zustandsparameter im Webspeicher speichern. Andere Arten von Kunden würden andere Geschäfte benutzen, aber das Prinzip bleibt dasselbe.