本文へスキップ

JWTとは?

じぇいだぶりゅーてぃー

JWTとは、JSON形式のデータコンパクトに署名・検証できるトークン規格で、Web APIの認証や情報交換に広く使われています。

JWT(ジェイダブリュティー/JSON Web Token)とは、JSON形式のデータをBase64URLエンコードしてコンパクトにまとめ、デジタル署名によって改ざんを検証できるようにしたトークンの規格です。RFC 7519として標準化されています。

JWTは「ヘッダー」「ペイロード」「署名」の3つの部分をドット(.)で区切った文字列で構成されます。ヘッダーには署名アルゴリズム、ペイロードにはユーザーIDや有効期限などのクレーム(claims)と呼ばれる情報、署名にはヘッダーとペイロードを秘密鍵で署名したデータが入ります。

JWTが特に有用な点は次のとおりです。

  • サーバー側でセッション状態を保持しなくてよい(ステートレス認証)
  • 署名を検証するだけでトークンの正当性が確認できる
  • マイクロサービス間の認証情報の受け渡しに向いている
  • モバイルアプリやSPA(シングルページアプリ)との親和性が高い

一方で注意点もあります。ペイロードはBase64URLエンコードされているだけで暗号化はされていないため、機密情報をそのまま入れてはいけません。また、トークンを無効化(失効)させる仕組みが標準では存在しないため、有効期限の設計や失効リストの管理が重要になります。

使い方・例文

ログイン成功後にサーバーがJWTを発行し、以後のAPIリクエストではそのトークンをAuthorizationヘッダーに付けて送ることで、サーバーはセッションを保持せずに利用者を認証できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語