レッスン 1

JWT とは何か

JSON Web Token の目的、構造、認証・認可フローでの位置づけを学びます。

JWT は JSON Web Token の略で、claim と呼ばれる情報をコンパクトな文字列として表すための形式です。認証済みユーザー、発行者、有効期限、対象 audience などを含めることができます。

JWT はよく認証・認可の文脈で使われますが、JWT そのものは「ログイン機能」ではありません。情報を表し、署名付きでやり取りできるトークン形式です。

3 つのパート

JWT は通常、ピリオドで区切られた 3 つの部分で構成されます。

header.payload.signature
  • header: アルゴリズムやトークン種別
  • payload: subexpiss などの claim
  • signature: トークンが改ざんされていないか確認するための署名

header と payload は Base64URL で表されているため、デコードすれば読めます。

デコードと信頼は別

JWT の payload が読めることと、その内容を信頼できることは別です。ブラウザー上のデコーダーで claim を見ることはデバッグに役立ちますが、アプリケーションで認可判断に使うには署名、発行者、audience、有効期限などの検証が必要です。

JWT を扱うときは「何が書かれているか」と「誰がどの条件で署名したか」を分けて考えることが重要です。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る