Zum Hauptinhalt springen

3. Token-Typ-Bezeichner

Mehrere Parameter in dieser Spezifikation verwenden einen Bezeichner als Wert, um das betreffende Token zu beschreiben. Konkret sind dies die Parameter requested_token_type, subject_token_type und actor_token_type der Anforderung und das Mitglied issued_token_type der Antwort. Token-Typ-Bezeichner sind URIs. Der Token-Austausch kann sowohl mit Tokens arbeiten, die von anderen Parteien ausgestellt wurden, als auch mit Tokens des gegebenen Autorisierungsservers. Für erstere gibt der Token-Typ-Bezeichner die Syntax an (z. B. JWT oder SAML 2.0), damit der Autorisierungsserver es parsen kann; für letztere gibt er an, wofür der gegebene Autorisierungsserver es ausgestellt hat (z. B. access_token oder refresh_token).

Die folgenden Token-Typ-Bezeichner werden durch diese Spezifikation definiert. Andere URIs KÖNNEN verwendet werden, um andere Token-Typen anzugeben.

urn:ietf:params:oauth:token-type:access_token Gibt an, dass das Token ein OAuth 2.0-Zugriffstoken ist, das vom angegebenen Autorisierungsserver ausgestellt wurde.

urn:ietf:params:oauth:token-type:refresh_token Gibt an, dass das Token ein OAuth 2.0-Refresh-Token ist, das vom angegebenen Autorisierungsserver ausgestellt wurde.

urn:ietf:params:oauth:token-type:id_token Gibt an, dass das Token ein ID-Token ist, wie in Abschnitt 2 von [OpenID.Core] definiert.

urn:ietf:params:oauth:token-type:saml1 Gibt an, dass das Token eine base64url-kodierte SAML 1.1 [OASIS.saml-core-1.1] Assertion ist.

urn:ietf:params:oauth:token-type:saml2 Gibt an, dass das Token eine base64url-kodierte SAML 2.0 [OASIS.saml-core-2.0-os] Assertion ist.

Der Wert urn:ietf:params:oauth:token-type:jwt, der in Abschnitt 9 von [JWT] definiert ist, gibt an, dass das Token ein JWT ist.

Die Unterscheidung zwischen einem Zugriffstoken und einem JWT ist subtil. Ein Zugriffstoken repräsentiert eine delegierte Autorisierungsentscheidung, wohingegen JWT ein Token-Format ist. Ein Zugriffstoken kann als JWT formatiert sein, muss dies aber nicht zwangsläufig. Und ein JWT könnte durchaus ein Zugriffstoken sein, aber nicht alle JWTs sind Zugriffstokens. Die Absicht dieser Spezifikation ist, dass urn:ietf:params:oauth:token-type:access_token ein Indikator dafür ist, dass das Token ein typisches OAuth-Zugriffstoken ist, das vom betreffenden Autorisierungsserver ausgestellt wurde, für den Client undurchsichtig ist und auf dieselbe Weise wie jedes andere von diesem Autorisierungsserver erhaltene Zugriffstoken verwendet werden kann. (Es könnte durchaus ein JWT sein, aber der Client ist sich dieser Tatsache nicht bewusst und muss es auch nicht sein.) Wohingegen urn:ietf:params:oauth:token-type:jwt spezifisch angeben soll, dass ein JWT angefordert oder gesendet wird (vielleicht in einem domänenübergreifenden Anwendungsfall, in dem das JWT als Autorisierungsgenehmigung verwendet wird, um ein Zugriffstoken von einem anderen Autorisierungsserver zu erhalten, wie dies durch [RFC7523] erleichtert wird).

Beachten Sie, dass für Tokens, die binärer Natur sind, der für deren Übermittlung verwendete URI mit der Semantik einer base64- oder anderen Kodierung verknüpft sein muss, die für die Verwendung mit HTTP und OAuth geeignet ist.