JWT 401/403 切り分け手順

401は「認証不成立」、403は「認可拒否」が基本です。HTTPヘッダーとトークン検証を分けて確認すると再現性が上がります。

最初に分ける観点

診断ステップ

  1. 1) Authorization Inspect でスキーム・形式を確認する
  2. 2) WWW-Authenticate Inspect で error / description / scope を確認する
  3. 3) JWT Decoder で exp/nbf/aud/iss/scope を可視化する
  4. 4) JWT Verifier で署名・kid・iss/aud検証を実施する
  5. 5) JWT TTL Check で期限・時刻ズレを定量確認する

典型原因

運用チェックリスト

修正後の再確認

使うツール

FAQ

401 と 403 はどう使い分けるべきですか?
401 は認証不成立、403 は認可拒否で分離します。WWW-Authenticate と scope/role 判定を分けて運用してください。
期限内なのに 401 になることはありますか?
あります。署名不一致、iss/aud 不一致、nbf、時刻ズレなどでも 401 は発生します。

参照仕様

site_map ルールに基づいて、次に確認すべきページを表示しています。

  1. JWT 401/403 Troubleshooting — 401/403の認証失敗をヘッダーとJWTクレームから症状別に切り分け
  2. Authorization Inspect — Authorization ヘッダー形式を解析
  3. WWW-Authenticate Inspect — WWW-Authenticate challenge を解析
  4. JWT Decoder — JWTのheader/payloadを復号して整形表示
  5. JWT Verifier — JWT署名(HS/RS/ES)を検証
  6. JWT TTL Check — exp/iat/nbf から有効期間と残TTLを算出
  7. 症状別診断ガイド(入口) — キャッシュ/CORS/JWT/MIME系の実運用トラブルを、症状起点で最短導線に振り分ける総合ハブ
  8. 304が返らない時の診断手順 — ETag / Last-Modified と If-* の往復を確認して 304 不発を切り分ける

事例クラスタ一覧

実運用トラブル別に、最短の診断ルートへ入るためのシナリオ集