Benutzerdefinierte Token-Ansprüche
Logto bietet die Flexibilität, benutzerdefinierte Ansprüche innerhalb von Zugangstokens (JWT / Opaker Token) hinzuzufügen. Mit dieser Funktion kannst du zusätzliche Informationen für deine Geschäftslogik einfügen, die alle sicher in den Tokens übertragen und im Fall von opaken Tokens per Introspektion abgerufen werden können.
Einführung
Zugangstokens (Access tokens) spielen eine entscheidende Rolle im Authentifizierungs- und Autorisierungsprozess, da sie die Identitätsinformationen und Berechtigungen des Subjekts enthalten und zwischen dem Logto-Server (dient als Auth-Server oder Identitätsanbieter, IdP), deinem Webdienst-Server (Ressourcenanbieter) und Client-Anwendungen (Clients) weitergegeben werden.
Token-Ansprüche (Token claims) sind die Schlüssel-Wert-Paare, die Informationen über eine Entität oder das Token selbst bereitstellen. Die Ansprüche können Benutzerinformationen, Token-Ablaufzeit, Berechtigungen und andere Metadaten enthalten, die für den Authentifizierungs- und Autorisierungsprozess relevant sind.
Es gibt zwei Arten von Zugangstokens in Logto:
- JSON Web Token: JSON Web Token (JWT) ist ein beliebtes Format, das Ansprüche so kodiert, dass sie sowohl sicher als auch für Clients lesbar sind. Übliche Ansprüche wie
sub
,iss
,aud
usw. werden gemäß dem OAuth 2.0-Protokoll verwendet (siehe diesen Link für weitere Details). JWTs ermöglichen es den Verbrauchern, direkt auf Ansprüche zuzugreifen, ohne zusätzliche Validierungsschritte. In Logto werden Zugangstokens standardmäßig im JWT-Format ausgegeben, wenn ein Client Autorisierungsanfragen für bestimmte Ressourcen oder Organisationen initiiert. - Opaker Token (Opaque token): Ein opaker Token ist nicht eigenständig und erfordert immer einen zusätzlichen Validierungsschritt über den Token-Introspektions-Endpoint. Trotz ihres nicht transparenten Formats können opake Tokens helfen, Ansprüche zu erhalten und sicher zwischen Parteien übertragen zu werden. Token-Ansprüche werden sicher im Logto-Server gespeichert und von den Client-Anwendungen über den Token-Introspektions-Endpoint abgerufen. Zugangstokens werden im opaken Format ausgegeben, wenn keine spezifische Ressource oder Organisation in der Autorisierungsanfrage enthalten ist. Diese Tokens werden hauptsächlich für den Zugriff auf den OIDC-
userinfo
-Endpoint und andere allgemeine Zwecke verwendet.
In vielen Fällen reichen Standardansprüche nicht aus, um die spezifischen Anforderungen deiner Anwendungen zu erfüllen, egal ob du JWT oder opake Tokens verwendest. Um dem zu begegnen, bietet Logto die Flexibilität, benutzerdefinierte Ansprüche innerhalb von Zugangstokens hinzuzufügen. Mit dieser Funktion kannst du zusätzliche Informationen für deine Geschäftslogik einfügen, die alle sicher in den Tokens übertragen und im Fall von opaken Tokens per Introspektion abgerufen werden können.
Wie funktionieren benutzerdefinierte Token-Ansprüche?
Logto ermöglicht es dir, benutzerdefinierte Ansprüche in das access token
über eine Callback-Funktion getCustomJwtClaims
einzufügen. Du kannst deine eigene Implementierung der Funktion getCustomJwtClaims
bereitstellen, um ein Objekt mit benutzerdefinierten Ansprüchen zurückzugeben. Der Rückgabewert wird mit der ursprünglichen Token-Nutzlast zusammengeführt und signiert, um das endgültige Zugangstoken zu generieren.
Logto-eigene Token-Ansprüche können NICHT überschrieben oder verändert werden. Benutzerdefinierte Ansprüche werden dem Token als zusätzliche Ansprüche hinzugefügt. Falls benutzerdefinierte Ansprüche mit den eingebauten Ansprüchen kollidieren, werden diese benutzerdefinierten Ansprüche ignoriert.
Verwandte Ressourcen
Benutzerdefinierte Ansprüche für JWT-Zugangstokens mit Logto hinzufügen, um deine Autorisierung zu verbessern