JWTとは?
じぇいだぶりゅーてぃー
JWTとは、JSON形式のデータをコンパクトに署名・検証できるトークン規格で、Web APIの認証や情報交換に広く使われています。
JWT(ジェイダブリュティー/JSON Web Token)とは、JSON形式のデータをBase64URLエンコードしてコンパクトにまとめ、デジタル署名によって改ざんを検証できるようにしたトークンの規格です。RFC 7519として標準化されています。
JWTは「ヘッダー」「ペイロード」「署名」の3つの部分をドット(.)で区切った文字列で構成されます。ヘッダーには署名アルゴリズム、ペイロードにはユーザーIDや有効期限などのクレーム(claims)と呼ばれる情報、署名にはヘッダーとペイロードを秘密鍵で署名したデータが入ります。
JWTが特に有用な点は次のとおりです。
- サーバー側でセッション状態を保持しなくてよい(ステートレス認証)
- 署名を検証するだけでトークンの正当性が確認できる
- マイクロサービス間の認証情報の受け渡しに向いている
- モバイルアプリやSPA(シングルページアプリ)との親和性が高い
一方で注意点もあります。ペイロードはBase64URLエンコードされているだけで暗号化はされていないため、機密情報をそのまま入れてはいけません。また、トークンを無効化(失効)させる仕組みが標準では存在しないため、有効期限の設計や失効リストの管理が重要になります。
使い方・例文
ログイン成功後にサーバーがJWTを発行し、以後のAPIリクエストではそのトークンをAuthorizationヘッダーに付けて送ることで、サーバーはセッションを保持せずに利用者を認証できます。
この用語をシェア
最終更新: