web-dev-qa-db-ja.com

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

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

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

誰かがこれを私に説明してもらえますか?

133
Micah

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

Bearer(ほとんどの実装のデフォルト)を指定すると、access_tokenが生成されて返送されます。ベアラーは、単に「このトークンのベアラーへのアクセスを許可する」と理解できます。 1つの有効なトークンと質問なし。一方、 Mac およびsign_type(ほとんどの実装ではデフォルトのhmac-sha-1)を選択すると、アクセストークンが生成され、キーマネージャーで属性としてシークレットとして保持され、暗号化されたシークレットがaccess_tokenとして返送されます

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

154
Abhishek Tyagi

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

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

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

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

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

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

32
nov matake

Mozilla MDNヘッダー情報

ベアラートークン
トークンを所持する関係者(「持ち主」)が、トークンを所持する他の関係者が使用できる方法でトークンを使用できるプロパティを持つセキュリティトークン。ベアラトークンを使用する場合、ベアラは暗号化キーマテリアルの所有を証明する必要はありません(所有の証明)。

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

Bearer Tokenは通常、認証サーバーによって作成される何らかの種類の暗号値であり、ユーザーにアクセス権を与え、アプリケーションにアクセス権を与えているクライアントに基づいてランダムに作成されます。

12
user8307736