JWTとは

概要

JWT(JSON Web Token)は、ユーザー認証や情報の安全な受け渡しに使われるトークン形式の一つです。
サーバーやクライアント間でデータをやり取りする際に、
改ざんされていないことを確認できる仕組みを提供します。
WebアプリケーションやAPIの認証・認可に広く利用されています。

正式名称

JSON Web Token(ジェイソン・ウェブ・トークン)

略称

JWT(ジェイ・ダブリュー・ティー)

特徴

  • コンパクト:トークンは短く、URLやHTTPヘッダ、Cookieに容易に載せられる。
  • 自己完結型:トークン内部に必要な情報(ユーザーIDや有効期限など)が含まれており、追加のデータベース問い合わせが不要な場合がある。
  • 署名付き:改ざん防止のため、秘密鍵や公開鍵による署名が施される。
  • 柔軟な利用:認証以外にも、情報の安全なやり取り全般に利用できる。
  • 短期利用が前提:長期保存には向かず、有効期限(exp)を設定して使うのが基本。

具体例

例えば、ユーザーがWebアプリにログインすると、サーバーはユーザーのIDなどを含むJWTを発行します。
JWTは以下の3つの部分で構成されています:

  • Header(ヘッダー):アルゴリズムやトークンのタイプを記載
{ "alg": "HS256", "typ": "JWT" }
  • Payload(ペイロード):ユーザー情報や有効期限などを記載
{ "sub": "1234567890", "name": "Taro Yamada", "exp": 1735689600 }
  • Signature(署名):HeaderとPayloadを秘密鍵で署名したもの

これらを「ドット区切り」で連結した文字列がJWTです:

xxxxx.yyyyy.zzzzz

ログイン後、クライアントはこのJWTをHTTPリクエストの Authorization ヘッダに付与してAPIにアクセスします。
サーバー側は署名を検証し、改ざんされていないかを確認した上でリクエストを処理します。

関連用語

用語解説
認証(Authentication)ユーザーが誰であるか確認する仕組み
認可(Authorization)ユーザーが何をできるか制御する仕組み
セッション従来のログイン管理方法(サーバー側に情報保持)
OAuth 2.0認可のためのプロトコルで、JWTと併用されることが多い
Access Token / Refresh TokenJWT形式で発行されることが多いトークンの種類

タイトルとURLをコピーしました