OAuth 2のベアラートークンとtoken_typeとは何ですか?


140

OAuth 2仕様のリソース所有者とパスワードの認証情報フローを実装しようとしています。token_type有効な応答で返される値を理解できません。仕様ではすべての例が示されて"token_type":"example"いますが、

token_typeは必須です。セクション7.1の説明に従って発行されたトークンのタイプ 。値は大文字と小文字を区別しません。

誰かがこれを私に説明してくれませんか?

回答:


158

token_typeは、Authorizationサーバーへのアクセストークン生成呼び出しのパラメーターです。これは、リソースアクセス呼び出しに対してaccess_tokenがどのように生成および提示されるかを本質的に表します。認可サーバーへのアクセストークン生成呼び出しでtoken_typeを指定します。

あなたが与える場合Bearer(ほとんどの実装上のデフォルト)、access_token生成され、あなたに戻って送信されます。ベアラーは、「このトークンのベアラーへのアクセスを許可する」と簡単に理解できます。1つの有効なトークンと質問はありません。一方、Macand sign_typehmac-sha-1ほとんどの実装ではデフォルト)を選択すると、アクセストークンが生成され、Key Managerに属性として秘密として保持され、暗号化された秘密が次のように送信されます。access_token

はい、独自のの実装を使用できますがtoken_type、開発者はOAuthの標準の実装ではなくプロセスに従う必要があるため、あまり意味がありません。


28
「このトークンの所持者にアクセス権を与える」と理解しやすくなると思います。これは、「小切手の所持者にお金を与える」という小切手を発行するのと同じです。
NVM

@NVM提案をありがとう、それは確かに理にかなっています。同じものを更新しました。
Abhishek Tyagi

33

誰でも「token_type」をOAuth 2.0拡張機能として定義できますが、現在「ベアラー」トークンタイプが最も一般的です。

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

基本的にそれはFacebookが使用しているものです。ただし、その実装は最新の仕様から少し遅れています。

Facebookよりも安全にしたい場合(または「署名」を持つOAuth 1.0と同じくらい安全にしたい場合)、「mac」トークンタイプを使用できます。

ただし、Macの仕様はまだ急速に変化しているため、難しい方法です。

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


14

Mozilla MDNヘッダー情報

ベアラートークン
トークンを所持するすべての当事者(「ベアラー」)が、トークンを所持する他の当事者が使用できる方法でトークンを使用できるという特性を持つセキュリティトークン。ベアラートークンを使用する場合、ベアラーは暗号鍵素材(所有証明)の所有を証明する必要はありません。

Bearer TokenまたはRefreshトークンは、認証サーバーによって作成されます。ユーザーがアプリケーション(クライアント)を認証すると、認証サーバーは、ベアラートークン(更新トークン)を生成します。これを使用して、アクセストークンを取得できます。

Bearer Tokenは通常、認証サーバーによって作成されるある種の不可解な値であり、アクセスを許可するユーザーとアプリケーションがアクセスを取得するクライアントに基づいてランダムに作成されるものではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.