Ich verwende das standardmäßige ASP.net OWIN OAuth-Middleware-System, um lokale Benutzer mit Bearer-Token zu authentifizieren. Ich habe daran gedacht, Rollen als Anspruch im Token einzubetten, war aber am überlegen, wie ich die Rolle eines Benutzers ändern könnte, beispielsweise die Admin-Rechte entziehen, ohne dass sie sich ausloggen müssen. Irgendwelche Ideen?
Antwort
Zu viele Anzeigen?Es ist immer möglich, einige schmutzige Lösungen zu implementieren, um Ihr Problem zu unterstützen, zum Beispiel: Wenn sich die Rollen geändert haben, dann wird ein Ereignis in einer Warteschlange wie RABBITMQ / NServiceBus (oder über ein Ereignis) ausgelöst. Der Abonnent (Website) wird das Cookie ungültig machen und ein neues mit neuen Ansprüchen generieren.
Ich sehe kein Problem damit, auf das Ablaufen des Cookies zu warten. Tatsächlich hat ein Träger-Token (Identität oder Zugriff) ein "expires_in"-Attribut, sodass auch wenn Ihr Cookie mit neuen Ansprüchen erneuert wird, ist das Token noch im Anbieter gültig. Eine weitere Bemerkung: Ihre Berechtigungen können von einem UMA-Server zurückgegeben werden, sie müssen nicht unbedingt aus Ihren Ansprüchen stammen. Schauen Sie sich dieses Szenario an: http://lokit.westus.cloudapp.azure.com/Documentation#third-scenario-limit-access-to-certain-website-features