インフラ用語集へ戻る

セキュリティ・認証 / 認証

JWTとは

JSON Web Token。ログイン状態や権限情報をJSON形式で持つトークンです。

用語集内のカードを見る

詳細な図解

JWTを検証して使う流れ
クライアントAuthorizationヘッダーで送信
JWTheader/payload/signatureを分解
検証処理署名とclaimを検証
API判断権限範囲で許可/拒否
  • alg noneや署名未検証を防ぐ
  • exp/iss/audを必ず見る
  • 機密情報をpayloadへ入れない

この記事で学べること

JWTを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。

  1. JWTを読むときの前提
  2. payloadだけで判断しない
  3. 鍵更新とkidを見る
  4. Claimの権限過多を確認する
  5. 変更証跡と引き継ぎ

実務メモ

payloadを読むだけでなく、署名、issuer、audienceを検証する

どこで効くか

JWTはAPI認証、SSO、Webアプリのセッション、サービス間連携で効きます。ログイン成功後のAPI拒否、鍵更新後の検証失敗、権限過多調査で確認します。

残す証跡

証跡にはissuer、audience、kid、JWKS取得先、exp、nbf、scope、role、検証エラー、Request IDを残します。トークン全文は秘密値としてマスクします。

避けたい誤解

JWTはデコードできても信用できるとは限りません。署名未検証、alg none、issuer違い、audience違い、期限切れ、JWKSキャッシュ不一致を分けて確認します。

まず確認すること

  • 署名検証を確認する
  • iss/aud/expを確認する
  • JWKSとkidの一致を確認する

JWTを読むときの前提

JWT(JSON Web Token)は、JSON形式のheader、payload、signatureをドットで連結したトークンです。ログイン状態、API認証、SSO、サービス間連携で使われます。

実務では、デコードできることと信用できることを分けます。alg、kid、iss、aud、exp、nbf、iat、sub、scope、role、署名検証、鍵更新を確認します。

証跡には、トークン種別、発行元、対象API、検証に使ったJWKS、kid、期限、audience、scope、検証エラー、トークン全文を残さない運用を記録します。

payloadだけで判断しない

JWTのpayloadはBase64URLでデコードできるため、中身は簡単に読めます。しかし読めることは、署名検証済みであることを意味しません。

APIやアプリは、署名、発行元、対象者、期限を検証してからClaimを使います。alg noneや想定外の署名アルゴリズム、別issuerのトークン受け入れを防ぎます。

  • 署名検証を必ず行う。
  • iss、aud、expを確認する。
  • payloadだけをログ判定に使わない。

鍵更新とkidを見る

JWTの署名検証では、発行元の公開鍵やJWKSを使います。IdP側で鍵が更新されると、古いキャッシュだけを持つAPIが検証に失敗することがあります。

kidはどの鍵で署名されたかを示します。障害時は、tokenのkid、JWKSのkid、キャッシュ期限、API側の鍵取得ログを確認します。

  • JWKS取得先とキャッシュ時間を確認する。
  • kidの一致を確認する。
  • 鍵更新時の再取得手順を確認する。

Claimの権限過多を確認する

JWTにはユーザーID、メール、グループ、role、scopeなどが入ることがあります。必要以上の属性や権限を入れると、漏えい時の影響や認可ミスが大きくなります。

画面表示用のClaimとAPI認可に使うClaimは分けて考えます。フロントエンドに渡るトークンへ機密属性を入れないことも重要です。

  • 認可に使うClaimを明記する。
  • 不要な個人情報を入れない。
  • scopeやroleの過不足を棚卸しする。

変更証跡と引き継ぎ

JWT対応では、issuer、audience、scope、検証ライブラリ、JWKS、鍵更新、エラー時のログ項目を残します。トークン全文は秘密値として扱い、証跡ではマスクします。

引き継ぎでは、API担当、認証基盤担当、セキュリティ担当、関連語としてOAuth、OIDC、Claim、Tokenを残すと確認しやすくなります。

  • 検証条件を設定値として残す。
  • 失敗ログにRequest IDを残す。
  • トークン全文を保存しない。

関連語

同じ主要カテゴリの用語

セキュリティ・認証の学習順

同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。

InfraEngKit内の関連機能