tellogs.com

JWTクレームの種類と使用方法

JWTデコーダー

JWTクレームはトークンが持つ情報を格納するキーと値のペアです。クレームはペイロードセクションに含まれ、JSONオブジェクトとして表現されます。JWTのクレームには3つのカテゴリがあり、それぞれ異なる役割と標準化レベルを持ちます。

レジスタードクレームはRFC 7519で標準化されたクレームです。iss(Issuer)はトークンの発行者を、sub(Subject)はトークンの主体を、aud(Audience)はトークンの対象者を示します。exp、nbf、iatは有効期限関連で、jti(JWT ID)はトークンの一意な識別子です。これらは必須ではありませんが、 interoperability を高めるために推奨されます。

パブリッククレームはIANAのJWTクレームレジストリに登録されているクレームです。IETFで標準化されたものと、IANAで管理されているものがあります。カスタムクレームを使用する際は、パブリッククレームと衝突しないよう注意が必要です。名前の衝突を避けるため、ドメイン固有のプレフィックスを使用することが推奨されます。

プライベートクレームは開発者が独自に定義するクレームです。組織固有の情報を格納するために使用されます。例えば「role」でユーザーロールを、「tenant_id」でテナント識別子を格納できます。プライベートクレームはJWTの柔軟性を最大限に活用できる方法ですが、クレームの数とサイズを制限し、パフォーマンスに配慮する必要があります。

クレームの設計において、必要な情報のみを含め、過剰な情報を避けることが重要です。ペイロードのサイズはBase64URLエンコードされるため、元のJSONの約1.33倍のサイズになります。また、クレームの値には文字列、数値、ブール値、配列、ネストされたオブジェクトを指定できますが、深いネストは可読性とパフォーマンスに影響する可能性があります。

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

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

JWTデコーダーを開く