Bearer Token とは何か - 所持者が権限を使える仕組み

入門 | 8分 で読める | 2026.06.14

公式ドキュメント

Bearer Token の意味

Bearer Token の Bearer は「持参人」という意味です。

Bearer Tokenは、追加の所持証明なしに、トークンを提示した主体がその権限を行使できるトークンです。トークンの所持だけで人間の本人性が証明されるわけではありません。

APIリクエストでは、よく次のように送ります。

GET /api/user HTTP/1.1
Host: api.example.com
Authorization: Bearer xxxxx.yyyyy.zzzzz

resource serverはトークンの有効性、利用先、期限、scopeなどを仕様に従って検証し、その後に対象リソースへの認可を判断します。

パスワードとの違い

パスワードは本人だけが知っている秘密です。一方、Bearer Token は「持っていること」自体が権限になります。

種類使い方漏れたとき
パスワードログイン時に本人確認するアカウント乗っ取りにつながる
Bearer TokenAPI呼び出しごとに提示するトークンに与えられた権限を使われる

Bearer Token は、入館証に近いです。入館証を拾った人が建物に入れてしまうなら、入館証の管理は非常に重要です。

JWT は Bearer Token として使われることが多い

JWT はトークンの形式です。Bearer Token はトークンの使い方です。

JWTを Authorization: Bearer で送ると、JWTがBearer Tokenとして使われていることになります。

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

JWTでない不透明な文字列も、Bearer Tokenとして使えます。

Authorization: Bearer opaque_random_token_123

ポイント: JWT は「形式」、Bearer は「提示方式」です。JWT だから必ず Bearer とは限りませんが、API認証では組み合わせて使われることが多いです。

盗まれると危険な理由

Bearer tokenを持つ正規利用者も盗んだ攻撃者もAPIへ提示できる所持者性と、HTTPS、期限、scope、失効で扱う必要を示す図

Bearer Tokenは所持者が利用できるため、盗まれると攻撃者がそのまま提示できる可能性があります。

たとえば、トークンが localStorage にあるとします。

const token = localStorage.getItem("access_token");

XSSで攻撃者のJavaScriptが実行されると、同じオリジンから値を読み取られ、外部へ送られる可能性があります。このコードは推奨例ではなく、JavaScriptから読めること自体が攻撃面になることを示しています。

盗まれたトークンは、攻撃者の環境からAPIに送れます。

GET /api/me HTTP/1.1
Host: api.example.com
Authorization: Bearer stolen_token

これが「localStorage にJWTを置くな」と言われる大きな理由です。

Cookie認証では、ブラウザがCookieを自動送信します。

GET /mypage HTTP/1.1
Cookie: session_id=abc123

Bearer Token認証では、クライアントが Authorization ヘッダーに明示的に入れて送ります。

Authorization: Bearer token
観点CookieBearer Token
送信方法ブラウザが自動送信アプリがヘッダーに入れる
JSから読む必要HttpOnlyなら読めないクライアント構成による
CSRF注意が必要Cookieほど自動送信されない
トークン窃取HttpOnlyで軽減保存場所に依存

Bearer Token を安全に使う考え方

Bearer Token を使うときは、次の対策を組み合わせます。

  • HTTPSを必須にする
  • 有効期限を短くする
  • 必要最小限の権限にする
  • audienceとscopeをresource serverで検証する
  • refresh token を慎重に扱う
  • ブラウザに長期保存しない
  • サーバ側やBFFに隔離する
  • 失効・ローテーション・漏えい時の対応を決める

特にブラウザでは、JavaScriptから読める場所に長く保存しないことが重要です。

まとめ

Bearer Tokenは、所持者がトークンに与えられた権限を行使できる仕組みです。

  • Authorization: Bearer <token> でAPIに送る
  • 所持しているだけで人間の本人性が証明されるわけではない
  • JWT が Bearer Token として使われることが多い
  • 盗まれると攻撃者がそのままAPIを使える
  • localStorage に長く置くとXSS時に盗まれやすい
  • BFF構成では、Bearer Token をサーバ側に閉じ込める

Bearer Token の危険性を理解すると、「JWTが悪い」のではなく「Bearer Tokenをブラウザに読める形で置くのが危険」という整理ができます。

参考リソース

次に読む記事

← 一覧に戻る
PR
PR
PR
PR