2017-03-13 4 views
0

Ich habe einen IdentityServer4-Dienst, der die Configuration und die PersistedGrants in einer SQL Server-Datenbank mit der integrierten Entity Framework-Unterstützung speichert.
Mein Client verwendet das Hybrid-Grant und unterstützt PKCE (wenn es darauf ankommt).
Immer wenn ich versuche, mich nach einem erfolgreichen Anmeldeversuch, der aus dem Zustimmungsbildschirm bestand, erneut anzumelden, mit demselben Benutzer an den gleichen Client, bekomme ich immer wieder eine Umleitung zum Zustimmungsbildschirm.
Ich stellte sicher, dass der Client AllowRememberConsent in der Client-Tabelle auf wahr gesetzt ist, auch kann ich die Zustimmung in der PersistedGrants-Tabelle mit der gewünschten ClientId und SubjectId sehen.
Außerdem, wann immer ich wieder zustimme - der gleiche Datensatz wird mit der neuen CreationTime und natürlich Data Spalte aktualisiert.
Ich verglich meine Konfiguration mit der in der offiziellen Dokumentation Quickstart, die funktioniert, und immer noch kein Glück.IdentityServer4 nicht in Betracht ziehen PersistedGrants speichern (user_consent insbesondere)

Jede Hilfe würde geschätzt, dank

Antwort

1

Wenn Sie fragen nach offline_access - die Zustimmung Bildschirm immer angezeigt bekommen.

Dies ist, um sicherzustellen, dass der Benutzer weiß, dass die App für lange Zeit Zugriff auf Ressourcen fordert. IOW - wenn die App nach Offline-Zugriff fragt, was zu einem Refresh-Token führt, gibt es keinen Grund, in absehbarer Zeit erneut darum zu bitten.

+0

Danke für die Antwort. Lass mich sehen, ob ich folge. Heißt das, wenn der Benutzer sich aus der App abmelden wollte, dann wieder eingeloggt, was zur Generierung eines neuen Refresh Tokens führt (da der alte nicht mehr gültig ist, oder zumindest sollte es nicht sein), die Zustimmung Bildschirm wird wieder angezeigt? Der Benutzer hat den Bedingungen bereits zugestimmt, warum muss er sie erneut genehmigen? – DotnetProg

+1

Ist das Abmelden von einer App wirklich ein häufiger Anwendungsfall? In der Regel möchten Sie sich einmal bei einer App anmelden und dann "für immer" (oder zumindest für einen längeren Zeitraum) verwenden. Aber ich kann Ihren Punkt sehen - wenn Sie denken, dass dies ein häufiges Szenario ist, öffnen Sie bitte ein Problem auf GitHub, damit wir darüber diskutieren können. – leastprivilege

+0

Diese Funktion ist wichtig für uns, da unsere App sensible Daten und Zugriff auf Finanzvorgänge enthält. Wir möchten, dass sich ein Benutzer mindestens einmal am Tag anmeldet, damit ich seine Identität bestätigen kann. Wir verwenden Refresh Tokens, aber ich möchte sie nicht länger als einen Tag leben lassen. Danke, ich werde ein Problem auf GitHub öffnen. – DotnetProg

Verwandte Themen