1. ホーム
  2. oauth

[解決済み】OAuth 2.0 Bearer Tokenとは、具体的にどのようなものですか?

2022-04-05 20:46:12

質問

によると RFC6750 -The OAuth 2.0 Authorization Framework: Bearer Token Usageでは、ベアラートークンは。

トークンを所有する当事者(ベアラ)は、トークンを所有する他の当事者と同様に、トークンを使用することができるという特性を持つセキュリティ・トークンです。

この定義は曖昧で、仕様も見当たりません。

  • 認可プロバイダを実装する場合、ベアラートークンに任意の文字列を指定できますか?
  • ランダムな文字列でもよいですか?
  • 一部の属性のBase64エンコーディングでなければならないのでしょうか?

    ハッシュ化する必要がありますか?
  • また、このトークンを検証するために、サービスプロバイダは認可プロバイダに問い合わせる必要がありますか?

ご指摘ありがとうございました。

どのように解決するのですか?

<ブロッククオート

ベアラートークン

セキュリティ・トークンのこと。 トークン(無記名者)は、他の人と同じようにトークンを使用することができます。 を所有することができる。 無記名式トークンの使用は 暗号鍵材料の所有を証明する必要があります。 (proof-of-possession) と呼ばれる。

ベアラ・トークンは、認証サーバーがあなたのために作成します。ユーザがあなたのアプリケーション(クライアント)を認証すると、認証サーバはあなたのためにトークンを生成します。 Bearer Token は OAuth 2.0 で使用されるアクセストークンの主要なタイプです。 ベアラートークンは、基本的に「このトークンの持ち主にアクセスを許可する」という意味です。

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

例えばAPIにアクセスするためには、アクセストークンを使用する必要があります。アクセストークンは短命です(1時間程度)。新しいアクセストークンを取得するには、ベアラートークンを使用します。アクセストークンを取得するには、このベアラートークンとクライアント ID を認証サーバーに送信します。こうすることで、サーバーは、ベアラートークンを使用しているアプリケーションが、ベアラートークンが作成されたのと同じアプリケーションであることを認識できます。例 例: あなたのアプリケーション用に作成されたベアラ トークンを、私のアプリケーションで使用することはできません。

Google Refresh トークンはこのようなものです。 1/mZ1edKKACtPAb7zGlwSzvs72PvhAbGmB8K1ZrGxpcNM

コメントからコピーしました。供給するベアラートークンには特に制限はないと思います。唯一考えられるのは、複数を許可するのが良いということです。例えば、ユーザーはアプリケーションを30回まで認証することができ、古いベアラートークンはまだ機能します。トークンの生成と検証を行うのは認証サーバーなので、トークンをどのようにフォーマットするかはあなた次第です。

更新してください。

Bearer Tokenは、すべてのInline Action HTTP RequestのAuthorizationヘッダーに設定されます。例えば

POST /rsvp?eventId=123 HTTP/1.1
Host: events-organizer.com
Authorization: Bearer AbCdEf123456
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/1.0 (KHTML, like Gecko; Gmail Actions)

rsvpStatus=YES

文字列 "AbCdEf123456" の例では、ベアラ認証トークンです。これは、認証サーバーが生成する暗号化トークンです。アクションとともに送信されるすべてのベアラ・トークンは、issueフィールドを持ち、audienceフィールドには、送信者ドメインをhttps:// という形式のURLで指定します。たとえば、メールが[email protected] からのものである場合、オーディエンスは次のようになります。 https://example.com .

ベアラートークンを使用する場合、リクエストが認証サーバーから来たものであり、送信者ドメイン向けであることを確認します。トークンが検証されない場合、サービスはHTTPレスポンスコード401(Unauthorized)でリクエストに応答する必要があります。

Bearer TokensはOAuth V2規格の一部であり、多くのAPIで広く採用されています。