2017-12-19 16 views
1

Ich habe eine Benutzeroberfläche für die Verwaltung von Benutzern im Benutzerspeicher von Identity Server aufgebaut 4.Identity Server 4 Entziehen Zugriffstoken von Db

Benutzer ihre Konten gesperrt haben können, und an diesem Punkt möchte ich keine Token zu widerrufen, das sind in der Datenbank für diesen Benutzer gespeichert.

Es ist mein Verständnis, dass, um dies zu tun, ich die persistenten Zuschüsse für diesen Benutzer in der db entfernen müsste.

Ich verwende Referenz-Token in der Client-Anwendung. Durch Entfernen der Token in der Datenbank werden die Benutzer in den Client-Anwendungen automatisch deaktiviert, da der Verweis auf das Token ungültig ist.

Ist dies der richtige Weg?

Antwort

1

Wenn ich Sie richtig verstehe, müssen Sie ein Token widerrufen, das einem Kunden ausgestellt wurde und sonst für eine bestimmte Zeit gültig wäre.

Das Token muss nicht aus der Datenbank entfernt werden. Identity Server 4 stellt bereits eine API für dieses bereit, die RFC 7009 implementiert. Beachten Sie, dass dies zur Verwendung von einem Client ausgeht und Sie die Client-Authentifizierung durchführen müssen.

Quelle: http://docs.identityserver.io/en/release/endpoints/revocation.html

Sie den Token Widerruf Endpunkt verwenden kann eine Sperranfrage zu senden:

POST /connect/revocation HTTP/1.1 
Host: server.example.com 
Content-Type: application/x-www-form-urlencoded 
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW 

token=45ghiukldjahdnhzdauz&token_type_hint=refresh_token 

Wenn Sie Benutzer aussperren müssen lokal auf dem Server 4 Host-Identität und Sie sind mit ASP .NET-Identität Sie können die Benutzersperre verwenden: http://www.jamessturtevant.com/posts/ASPNET-Identity-Lockout/

Verwandte Themen