TL

Product Profile

JWT

トークン形式

「誰が・何ができるか」を署名付き JSON で運ぶトークン形式OIDC の ID トークンや API 認証で広く使われる詳しくは Web の [認証](/web/web-auth/) も参照

TL;DR要点だけ先に
  • 1.権限を署名付き JSON で運ぶトークン形式。
  • 2.ステートレスで API やマイクロサービス向き。
  • 3.即時失効が要るならセッション認証を選ぶ。

Specifications

基本情報

Introducing

JWT「誰が・何ができるか」を署名付き JSON で運ぶトークン形式。OIDC の ID トークンや API 認証で広く使われる。詳しくは Web の [認証](/web/web-auth/) も参照。
種別
トークン形式
目的
認証/認可情報の運搬
トークン/形式
署名付き JSON
最大の強み
ステートレスサーバ側に保存不要)署名で改ざん検知
代表的な用途
API 認証OIDC の ID トークン / サービス間のクレーム伝達

Decision Guide

選定ポイント

採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。

Why It Fits

選ぶ理由

  1. ステートレス(サーバ側に保存不要)
  2. 署名で改ざん検知
  3. API/マイクロサービスと相性が良い

Trade-offs

考慮すべき点

  1. 発行後すぐ失効できない(要設計)
  2. ペイロードは暗号化されない(署名のみ)
  3. 保存場所で XSS/CSRF リスク

Deep Dive

もっと詳しく

どんな仕組みか

JWT(JSON Web Token)は、署名付きで自己完結したトークンです。中身に「誰か」「いつまで有効か」といった情報(クレーム)を持ち、それ全体に署名が付くことで、受け取った側が改ざんを検知できます。

「自己完結」が肝で、トークン自体に必要な情報が入っているため、サーバ側にセッションを保持しなくても検証できます。

どう動くのか

JWT は 3 つの部分をドット区切りでつないだ文字列です。

header.payload.signature
- header:    署名アルゴリズムなど
- payload:   クレーム(sub, exp など)
- signature: header と payload への署名

受け取った側は署名を検証し、改ざんされていないこと、有効期限内であることを確認します。サーバに問い合わせず手元で検証できるため、ステートレスに扱えます。

他の方式との違い

サーバ側にセッション情報を持つ伝統的なセッション方式と対照的です。

  • セッション:状態はサーバが持つ。失効させやすいがストアが要る
  • JWT:状態はトークン自身が持つ。ストア不要だが失効させにくい

スケールしやすさと引き換えに、発行後の無効化が難しい、という性質を理解しておく必要があります。

使いどころ・注意点

複数のサーバにまたがる API 認可や、サーバ間でセッションを共有したくない構成に向きます。一方で、いったん発行した JWT は有効期限が切れるまで原則として使えてしまい、即時の失効が困難です。

  • 有効期限は短めにし、更新はリフレッシュトークンで行う
  • 署名はされるが暗号化はされない(中身は読める)ため、機密情報は入れない

Implementation View

JWTを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

API 認証

比較で見る軸

種別: トークン形式 / 目的: 認証/認可情報の運搬 / トークン/形式: 署名付き JSON

導入後に効く点

署名で改ざん検知

先に潰すリスク

発行後すぐ失効できない(要設計)

数字・仕様の読み方
種別
トークン形式
目的
認証/認可情報の運搬
トークン/形式
署名付き JSON

判断チェックリスト

  • 自社の用途が「API 認証 / OIDC の ID トークン」に近いか確認する。
  • 強みである「ステートレス(サーバ側に保存不要)」が本当に評価軸になるか確認する。
  • 注意点の「発行後すぐ失効できない(要設計)」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

API 認証OIDC の ID トークンサービス間のクレーム伝達

Best Fit

こんな用途に向く

API 認証OIDC の ID トークンサービス間のクレーム伝達
公式サイト