JWT 401/403 切り分け手順
401は「認証不成立」、403は「認可拒否」が基本です。HTTPヘッダーとトークン検証を分けて確認すると再現性が上がります。
最初に分ける観点
- 401は WWW-Authenticate の challenge 情報を優先確認
- 403は scope/role/policy を優先確認
- 両方混在する場合は、時刻ズレと鍵ローテーションを疑う
診断ステップ
- 1) Authorization Inspect でスキーム・形式を確認する
- 2) WWW-Authenticate Inspect で error / description / scope を確認する
- 3) JWT Decoder で exp/nbf/aud/iss/scope を可視化する
- 4) JWT Verifier で署名・kid・iss/aud検証を実施する
- 5) JWT TTL Check で期限・時刻ズレを定量確認する
典型原因
- 401: トークン形式不正、期限切れ、署名不一致
- 403: scope/role不足、リソースポリシー不一致
- 混在: iss/aud環境差、鍵配布遅延、NTP未同期
運用チェックリスト
- 401/403の reason code をログに残す
- iss/aud/scope の期待値を設定ファイルで固定
- kidローテーション時の旧鍵猶予期間を確保
- サーバー時刻同期状態(NTP)を監視
- 機密claimsをログに残さない
修正後の再確認
- 401/403 の発生率が想定値に戻るか
- challenge内容と実装エラーコードが一致するか
- トークン更新後に正常リクエストが復帰するか
使うツール
- JWT 401/403 Troubleshooting
- Authorization Inspect
- WWW-Authenticate Inspect
- JWT Decoder
- JWT Verifier
- JWT TTL Check
FAQ
- 401 と 403 はどう使い分けるべきですか?
- 401 は認証不成立、403 は認可拒否で分離します。WWW-Authenticate と scope/role 判定を分けて運用してください。
- 期限内なのに 401 になることはありますか?
- あります。署名不一致、iss/aud 不一致、nbf、時刻ズレなどでも 401 は発生します。
参照仕様
次に見る(診断順)
site_map ルールに基づいて、次に確認すべきページを表示しています。
- JWT 401/403 Troubleshooting — 401/403の認証失敗をヘッダーとJWTクレームから症状別に切り分け
- Authorization Inspect — Authorization ヘッダー形式を解析
- WWW-Authenticate Inspect — WWW-Authenticate challenge を解析
- JWT Decoder — JWTのheader/payloadを復号して整形表示
- JWT Verifier — JWT署名(HS/RS/ES)を検証
- JWT TTL Check — exp/iat/nbf から有効期間と残TTLを算出
- 症状別診断ガイド(入口) — キャッシュ/CORS/JWT/MIME系の実運用トラブルを、症状起点で最短導線に振り分ける総合ハブ
- 304が返らない時の診断手順 — ETag / Last-Modified と If-* の往復を確認して 304 不発を切り分ける
同テーマの導線
事例クラスタ一覧
実運用トラブル別に、最短の診断ルートへ入るためのシナリオ集
- 症状別診断ガイド(入口) — キャッシュ/CORS/JWT/MIME系の実運用トラブルを、症状起点で最短導線に振り分ける総合ハブ
- 304が返らない時の診断手順 — ETag / Last-Modified と If-* の往復を確認して 304 不発を切り分ける
- 更新したのに反映されない時の診断手順 — HTML/API/静的アセット別にキャッシュ方針を確認し、反映遅延を短時間で切り分ける
- CORS preflight失敗時の診断手順 — OPTIONS応答、Allow-*、Origin条件を順に確認して preflight 失敗を解消する
- 429/503で再試行が止まらない時の診断手順 — Retry-After の秒/日時解釈とクライアント実装差を切り分け、過剰再試行を抑える
- nosniffでJS/CSSがブロックされる時の診断手順 — Content-Type と nosniff の不一致、404/302混入、配信経路の上書きを切り分ける
- Set-Cookie が保存されない時の診断手順 — Domain/Path/Secure/SameSite を順に確認して Cookie 非保持の原因を切り分ける
- OAuth戻りでログインが維持されない時の診断手順 — IdP戻りで起きる Cookie 不達を SameSite・Secure・Path/Domain・競合で順に切り分ける
- 同名Cookie競合で不安定な時の診断手順 — 同名CookieのPath/Domain差分・上書き順・送信衝突を整理して不安定挙動を解消する
- Cookie障害の運用チェックリスト — 保存失敗・OAuth戻り失敗・同名競合を一本化し、トリアージから恒久対策まで運用手順を標準化する