Umgang mit Berechtigungsaktualisierungen in Organisationstokens
Mit der obigen Einrichtung kannst du Einladungen per E-Mail versenden, und Eingeladene können der Organisation mit der zugewiesenen Rolle beitreten.
Benutzer mit unterschiedlichen Organisationsrollen haben unterschiedliche Berechtigungen (Scopes) in ihren Organisationstokens. Sowohl deine Client-App als auch Backend-Services sollten diese Berechtigungen prüfen, um sichtbare Funktionen und erlaubte Aktionen zu bestimmen.
Wie bereits erwähnt, dient die Organisationstemplate als zentrale Zugangskontrollschicht zum Schutz von Organisationsberechtigungen oder organisationsbezogenen APIs. Überprüfe unbedingt die Autorisierungsabschnitte und wähle das Autorisierungsmodell, das am besten zu deinem Produkt passt.
Dieses Kapitel konzentriert sich auf das Berechtigungsmanagement und Best Practices für den Umgang mit Berechtigungsänderungen und Berechtigungen in Logto Organisationstokens.
Umgang mit Berechtigungsaktualisierungen in Organisationstokens
Das Verwalten von Berechtigungsaktualisierungen in Organisationstokens umfasst:
Bestehende Berechtigungen widerrufen
Wenn beispielsweise ein Admin zu einem Nicht-Admin-Mitglied herabgestuft wird, sollten Berechtigungen vom Benutzer entfernt werden. In solchen Fällen lösche das zwischengespeicherte Organisationstoken und fordere mit einem Auffrischungstoken ein neues an. Die reduzierten Berechtigungen werden sofort im neu ausgestellten Organisationstoken widergespiegelt.
Neue Berechtigungen gewähren
Dies lässt sich in zwei Szenarien unterteilen:
Neue Berechtigungen gewähren, die bereits in deinem Auth-System definiert sind
Ähnlich wie beim Widerrufen von Berechtigungen: Wenn die neu gewährte Berechtigung bereits beim Auth-Server registriert ist, stelle ein neues Organisationstoken aus und die neuen Berechtigungen werden sofort übernommen.
Neue Berechtigungen gewähren, die neu in deinem Auth-System eingeführt wurden
In diesem Fall löse einen erneuten Anmelde- oder Zustimmungsprozess aus, um das Organisationstoken des Benutzers zu aktualisieren. Rufe zum Beispiel die signIn-Methode im Logto SDK auf.
Berechtigungen in Echtzeit prüfen und das Organisationstoken aktualisieren
Logto stellt eine Management API bereit, um die aktuellen Benutzerberechtigungen in der Organisation abzurufen.
GET /api/organizations/{id}/users/{userId}/scopes(API-Referenzen)
Vergleiche die Berechtigungen im Organisationstoken des Benutzers mit den aktuellen Berechtigungen, um festzustellen, ob der Benutzer befördert oder herabgestuft wurde.
-
Wenn herabgestuft, lösche das zwischengespeicherte Organisationstoken und das SDK stellt automatisch ein neues mit den aktualisierten Berechtigungen aus.
const { clearAccessToken } = useLogto();
...
// Wenn die abgerufenen Echtzeit-Berechtigungen weniger Berechtigungen enthalten als das Organisationstoken
await clearAccessToken();Dies erfordert keinen erneuten Anmelde- oder Zustimmungsprozess. Neue Organisationstokens werden automatisch vom Logto SDK ausgestellt.
-
Wenn eine neue Berechtigung in deinem Auth-System eingeführt wird, löse einen erneuten Anmelde- oder Zustimmungsprozess aus, um das Organisationstoken des Benutzers zu aktualisieren. Zum Beispiel mit dem React SDK:
const { clearAllTokens, signIn } = useLogto();
...
// Wenn die abgerufenen Echtzeit-Berechtigungen neu zugewiesene Berechtigungen enthalten, die das Organisationstoken noch nicht hat
await clearAllTokens();
signIn({
redirectUri: '<your-sign-in-redirect-uri>',
prompt: 'consent',
});Der obige Code löst eine Navigation zum Zustimmungsbildschirm aus und leitet automatisch zurück zu deiner App mit aktualisierten Berechtigungen im Organisationstoken des Benutzers.