コンテンツへスキップ
uencoder

JWT

JWT(JSON Web Token)は、クレームを JSON オブジェクトとして安全に伝えるコンパクトで自己完結型のトークンである。ステートレス認証と情報交換に広く使われる。

目的

ステートレスなサービス間で認証情報を渡し、サーバー側のセッション保存をなくす。

メカニズム

Header(アルゴリズム).Payload(クレーム).Signature の 3 部構成で、すべて Base64URL 符号化される。署名は HMAC か RSA を使い、検証により完全性が保証される。クレームには iss(発行者)、exp(有効期限)、sub(主体)がある。トークンは暗号化されないため、ペイロードに機密データを入れないこと。

ユースケース

  • ステートレス API 認証
  • OAuth 2.0 トークン
  • SSO のクロスドメイン身元転送
  • サービス間認証

例

  • 入力
    header.payload.signature
    Output
    Read the payload after verifying the signature

    Base64URL plus signature

よくあるエラー

Placing sensitive data in the payload (it is only Base64, not encryption)
Keep only non-sensitive claims in the payload

関連用語

関連ツール

関連チュートリアル

References