Was sind Inhaber-Token und Token-Typ in OAuth 2?

140

Ich versuche, den Fluss der Ressourcenbesitzer- und Kennwortanmeldeinformationen aus der OAuth 2-Spezifikation zu implementieren . Ich habe Probleme, den token_typeWert zu verstehen, der mit einer gültigen Antwort zurückgesendet wird. In der Spezifikation zeigen alle Beispiele "token_type":"example", sagt aber, dass es sein sollte

token_type ERFORDERLICH. Der Typ des ausgegebenen Tokens wie in Abschnitt 7.1 beschrieben . Der Wert unterscheidet nicht zwischen Groß- und Kleinschreibung.

Kann mir bitte jemand das erklären?

Micah
quelle

Antworten:

158

token_typeist ein Parameter in Access Token Generate Call to Authorization Server, der im Wesentlichen darstellt, wie ein Access_Token für Ressourcenzugriffsaufrufe generiert und dargestellt wird. Sie geben token_type im Aufruf zur Generierung von Zugriffstoken an einen Autorisierungsserver an.

Wenn Sie angeben Bearer(Standard bei den meisten Implementierungen), wird ein access_tokengeneriert und an Sie zurückgesendet. Träger kann einfach als "Zugang zum Träger dieses Tokens gewähren" verstanden werden. Ein gültiger Token und keine Frage gestellt. Wenn Sie dagegen Macund auswählen sign_type(Standardeinstellung hmac-sha-1bei den meisten Implementierungen), wird das Zugriffstoken generiert und im Key Manager als Attribut geheim gehalten, und ein verschlüsseltes Geheimnis wird als zurückgesendetaccess_token

Ja, Sie können Ihre eigene Implementierung von verwenden token_type, aber das ist möglicherweise nicht sehr sinnvoll, da Entwickler Ihren Prozess verfolgen müssen und nicht Standardimplementierungen von OAuth.

Abhishek Tyagi
quelle
28
Ich finde, "Zugriff auf den Inhaber dieses Tokens geben" erleichtert das Verständnis. Dies entspricht der Ausstellung eines Schecks "Geben Sie dem Inhaber des Schecks Geld".
NVM
@ NVM Danke für den Vorschlag, es macht auf jeden Fall Sinn. Ich habe das gleiche aktualisiert.
Abhishek Tyagi
33

Jeder kann "token_type" als OAuth 2.0-Erweiterung definieren, aber derzeit ist der "Bearer" -Token-Typ der häufigste.

https://tools.ietf.org/html/rfc6750

Grundsätzlich nutzt Facebook das. Ihre Implementierung liegt jedoch etwas hinter der neuesten Spezifikation zurück.

Wenn Sie sicherer als Facebook sein möchten (oder so sicher wie OAuth 1.0 mit "Signatur"), können Sie den Tokentyp "mac" verwenden.

Es wird jedoch schwierig, da sich die Mac-Spezifikation immer noch schnell ändert.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05

nov matake
quelle
14

Informationen zum Mozilla MDN-Header

Inhaber-Token
Ein Sicherheitstoken mit dem Eigentum, dass jede Partei, die den Token besitzt (ein "Inhaber"), den Token auf jede Weise verwenden kann, die jede andere Partei, die ihn besitzt, kann. Die Verwendung eines Inhaber-Tokens erfordert nicht, dass ein Inhaber den Besitz von kryptografischem Schlüsselmaterial nachweist (Besitznachweis).

Das Bearer Token oder Refresh Token wird vom Authentifizierungsserver für Sie erstellt. Wenn ein Benutzer Ihre Anwendung (Client) authentifiziert, generiert der Authentifizierungsserver für Sie ein Bearer-Token (Aktualisierungstoken), mit dem Sie ein Zugriffstoken abrufen können.

Das Bearer Token ist normalerweise eine Art kryptischer Wert, der vom Authentifizierungsserver erstellt wird. Er wird nicht zufällig erstellt, basierend auf dem Benutzer, der Ihnen Zugriff gewährt, und dem Client, auf den Ihre Anwendung Zugriff erhält.

user8307736
quelle