2017-03-23 1 views
0

Vor allem entschuldigen Sie mein schlechtes Englisch.Stateless .NET JWT basierte Oauth2 Authentifizierung Server

Ich bin ein Newby in Oauth2 und ich versuche, einen Autorisierungsserver mit JWT-Tokens einzurichten.

Der Server läuft in einer selbst gehosteten Umgebung von OWIN.

In diesem Moment habe ich die Token-Generation eingerichtet und es scheint richtig zu funktionieren, ich habe auch den Refresh-Token-Provider eingerichtet und es scheint zu funktionieren (aber es ist nur eine minimale Implementierung); Ich habe das RefreshTokenFormat in den OAuthAuthorizationServerOptions nicht geändert, so dass es standardmäßig bleibt (ich weiß nicht, was das Standardformat ist), also ist das Zugriffstoken eindeutig ein JWT-Token und das Aktualisierungstoken etwas anderes.

All dies scheint richtig zu funktionieren, aber ich muss diesen Authorization Server in einer Microservices-Umgebung ausführen, so dass der Authorization Server-Dienst jederzeit von einem Computer auf einen anderen verschoben werden kann, so dass er zustandslos sein muss Zumindest, um benötigte Informationen auf einem freigegebenen Speicher (DB) oder replizierten lokalen Speicher (ich bin auf Service Fabric) oder eine Art verteilter Cache zu speichern.

Testen Ich habe festgestellt, dass wenn ich ein Refresh-Token auf einer Maschine erzeuge und ich dann versuche, dieses Refresh-Token auf einer anderen Instanz des Authorization Servers (auf einem anderen Rechner) zu verwenden, um ein neues Access-Token zu erhalten mit einem allgemeinen invalid_grant-Fehler. Meine Vermutung ist, dass der Auth-Server nur einige Token-bezogene Informationen im Speicher hält, aber ich weiß nicht genau was und wie.

Ich möchte auch, dass jemand mir in die richtige Richtung zeigen, um dieses Problem zu lösen.

Vielen Dank.

Antwort

0

Ich löste die Situation mit einem JWT-Token auch für das Refresh-Token. Auf diese Weise scheint der Authentifizierungsserver vollständig zustandslos zu sein.

Verwandte Themen