tellogs.com

JWTのヘッダーとペイロードを理解する

JWTデコーダー

JWTトークンはドットで区切られた3つの部分から構成されています。最初の部分がヘッダー、2番目がペイロード、3番目が署名です。ヘッダーとペイロードはBase64URLエンコードされたJSONオブジェクトで、それぞれ異なる役割を果たします。

ヘッダーにはトークンに関するメタデータが格納されます。最も一般的なのは「alg」と「typ」の2つのクレームです。「alg」は署名に使用されたアルゴリズムを示し、HS256、RS256、ES256などが使われます。「typ」はトークンのタイプを示し、通常は「JWT」となります。カスタムヘッダーフィールドを追加することも可能です。

ペイロードにはクレーム情報が含まれます。クレームとはJWTが持つ主張のことで、3つのカテゴリに分類されます。レジスタードクレーム(iss、sub、aud、exp、nbf、iat、jti)、パブリッククレーム、プライベートクレームがあります。標準化的なフィールドと独自のカスタムフィールドを混在させることができます。

ヘッダーとペイロードはBase64URLエンコードされるため、Base64URLデコーダーを使ってもデコードできますが、JWTデコーダーは互換性と安全性を確保したデコードを提供します。暗号化されたJWT(JWE)の場合は、ペイロードが暗号化されているため、復号化が必要です。

実際のAPI開発では、ユーザー情報や権限情報、セッションIDなどをペイロードに格納します。ただし、ペイロードはBase64URLエンコードされるだけであり、暗号化ではありません。機密情報はペイロードに含めないよう注意してください。署名による改ざん検知は可能ですが、傍受された場合の暗号化保護はありません。

JWTデコーダーを使ってみましょう

このページの内容を、JWTデコーダーで実際に試してみましょう。

JWTデコーダーを開く