JWT 開発者リファレンス

JWT Claims リファレンス

JWT を調べるときは、誰が発行したか、誰向けか、いつ有効か、アプリがどの authorization data を理解するかという文脈で読みます。

48 / 48

JWT 登録済み Claims

iss

発行者

stringRFC 7519 §4.1.1

JWT を発行した主体を識別します。

検証: アプリが事前に信頼している issuer と完全一致で比較します。

sub

主体

stringRFC 7519 §4.1.2

issuer の名前空間内で JWT が表す主体を識別します。

検証: issuer を検証した後、その issuer の名前空間内だけで解釈します。

aud

対象者

string | string[]RFC 7519 §4.1.3

JWT の想定受信者を識別します。

検証: Resource server が期待する audience が含まれていることを必須にします。

exp

有効期限

NumericDateRFC 7519 §4.1.4

この時刻以降は JWT を受け入れてはいけません。

検証: 小さく明示した clock tolerance だけを許し、exp 後は拒否します。

nbf

利用開始時刻

NumericDateRFC 7519 §4.1.5

この時刻より前は JWT を受け入れてはいけません。

検証: 設定した clock tolerance を除き、nbf より前は拒否します。

iat

発行時刻

NumericDateRFC 7519 §4.1.6

JWT が発行された時刻を示します。

検証: Token age/lifetime policy に使い、不自然な未来時刻は拒否します。

jti

JWT ID

stringRFC 7519 §4.1.7

JWT を一意に識別するための値です。

検証: Replay 検出や revocation が必要な場合だけ、サーバー側状態と組み合わせて使います。

OpenID Connect Identity / ID Token Claims

azp

認可されたパーティ

stringOIDC Core §2

ID Token の発行先となった認可済みパーティを示します。

検証: 複数 audience の ID Token など、client policy が必要とする場合に確認します。

nonce

Nonce

stringOIDC Core §2

認証リクエストと ID Token を結び付ける値です。

検証: Authorization request 用に保存した nonce と完全一致で比較します。

auth_time

認証時刻

NumericDateOIDC Core §2

エンドユーザー認証が行われた時刻です。

検証: max_age や再認証ポリシーで認証の古さを判定するときに使います。

acr

認証コンテキストクラス

stringOIDC Core §2

達成された認証コンテキストクラスを示します。

検証: アプリが明示的に理解する assurance level だけを受け入れます。

amr

認証方式

string[]OIDC Core §2

password や MFA など実際に使われた認証方式を示します。

検証: 未知の値から assurance を推測せず issuer の定義に従います。

at_hash

Access Token ハッシュ

stringOIDC Core §3.1.3.6

Access Token と ID Token を結び付けるためのハッシュ由来値です。

検証: 利用中の OIDC flow/response type が要求する場合に検証します。

c_hash

認可コードハッシュ

stringOIDC Core §3.3.2.11

認可コードと ID Token を結び付けるハッシュ由来値です。

検証: OIDC response type が要求する場合に検証します。

s_hash

State ハッシュ

stringOIDC FAPI / registered claim

一部の OIDC/FAPI プロファイルで state を署名済みレスポンスに結び付ける値です。

検証: 利用中の OIDC/FAPI profile が要求する場合だけ検証します。

sid

セッション ID

stringOpenID Connect Session Management

OpenID Provider のセッションを識別します。

検証: issuer scope の session metadata として扱い、global user ID にしません。

name

氏名

stringOIDC Core §5.1

エンドユーザーの表示用氏名です。

検証: 表示用プロフィール情報であり、安定した認可 ID に使いません。

given_name

stringOIDC Core §5.1

エンドユーザーの名です。

検証: 表示用プロフィール情報として扱い、ローカライズを考慮します。

family_name

stringOIDC Core §5.1

エンドユーザーの姓です。

検証: 一意性を前提にしません。

middle_name

ミドルネーム

stringOIDC Core §5.1

エンドユーザーのミドルネームです。

検証: 任意プロフィール情報として扱います。

nickname

ニックネーム

stringOIDC Core §5.1

エンドユーザーの呼び名です。

検証: 表示用途だけに使います。

preferred_username

優先ユーザー名

stringOIDC Core §5.1

ユーザーが希望する短いユーザー名です。

検証: グローバルな一意性や不変性を仮定しません。

profile

プロフィール URL

URL stringOIDC Core §5.1

エンドユーザーのプロフィールページ URL です。

検証: リンクとして表示する前に URL を安全に扱います。

picture

画像 URL

URL stringOIDC Core §5.1

プロフィール画像の URL です。

検証: 外部 URL を表示するときは未信頼リモートコンテンツとして扱います。

website

Web サイト URL

URL stringOIDC Core §5.1

エンドユーザーの Web サイト URL です。

検証: 未信頼プロフィールデータとして扱います。

email

メールアドレス

stringOIDC Core §5.1

エンドユーザーの優先メールアドレスです。

検証: email_verified=true かつ issuer が信頼済みの場合だけ確認済みと扱います。

email_verified

メール確認済み

booleanOIDC Core §5.1

issuer がメールアドレスの管理権限を確認したかを示します。

検証: issuer と確認方式を信頼できる場合だけ意味を持たせます。

gender

性別

stringOIDC Core §5.1

issuer が提供する性別情報です。

検証: 不要なら収集しないなどデータ最小化を優先します。

birthdate

生年月日

stringOIDC Core §5.1

エンドユーザーの生年月日です。

検証: 機微プロフィール情報であり認証要素として使いません。

zoneinfo

タイムゾーン

stringOIDC Core §5.1

エンドユーザーのタイムゾーン識別子です。

検証: 表示やプロフィール設定にのみ使います。

locale

ロケール

BCP 47 stringOIDC Core §5.1

エンドユーザーのロケール設定です。

検証: 表示用途に使い、trust decision には使いません。

phone_number

電話番号

stringOIDC Core §5.1

エンドユーザーの優先電話番号です。

検証: phone_number_verified=true かつ issuer が信頼済みの場合だけ確認済みと扱います。

phone_number_verified

電話番号確認済み

booleanOIDC Core §5.1

issuer が電話番号の管理権限を確認したかを示します。

検証: issuer の確認ポリシーと確認方式を前提に評価します。

address

住所

objectOIDC Core §5.1

構造化された郵便住所情報です。

検証: 表示前にネストされた値を検証し、機微情報として扱います。

updated_at

プロフィール更新時刻

NumericDateOIDC Core §5.1

エンドユーザー情報が最後に更新された時刻です。

検証: プロフィールの鮮度を示す metadata としてのみ使います。

OAuth Access Token / Authorization Claims

client_id

クライアント ID

stringRFC 9068 §2.2

Access Token に関連する OAuth client を識別します。

検証: Resource server policy が特定 client を要求する場合だけ比較します。

scope

OAuth スコープ

space-delimited stringRFC 9068 §2.2.3 / RFC 8693

Access Token に付与された委任権限を示します。

検証: Resource が理解し、かつ token audience に適用される scope だけで認可します。

roles

ロール

string[]RFC 9068 §2.2.3.1 / RFC 7643

ロールベース認可に使う値を示します。

検証: issuer/resource 固有 semantics を定義し、未知の role は既定で拒否します。

groups

グループ

string[]RFC 9068 §2.2.3.1 / RFC 7643

認可判断に使うグループ所属情報を示します。

検証: issuer 間で名称や階層 semantics が同じと仮定しません。

entitlements

権利

string[]RFC 9068 §2.2.3.1 / RFC 7643

権利や許可を表す entitlement 値を示します。

検証: 各 entitlement を許可操作へ明示的にマッピングします。

cnf

確認情報

objectRFC 7800

Proof-of-Possession 用の確認鍵情報を保持します。

検証: 利用中の token/profile が要求する confirmation method を実際に検証します。

act

Actor

objectRFC 8693 §4.1

委任や impersonation で実際に行為する主体を示します。

検証: 認可・監査では actor と subject を区別します。

may_act

代理可能主体

objectRFC 8693 §4.4

subject の代理として行為できる主体を示します。

検証: 明示的な delegation policy を持つ token exchange でのみ利用します。

Private / Vendor Authorization Claims

permissions

権限

string[]Private claim

アプリ固有の許可された操作一覧としてよく使われます。

検証: Private claim として issuer・audience・permission semantics を明示します。

role

ロール

string | string[]Private claim

単一または複数ロールを表すアプリ固有の慣習です。

検証: roles と同じ意味だと仮定せず issuer ごとにマッピングします。

tenant

テナント

stringPrivate claim

テナントや組織のルーティングに使われる一般的な private claim です。

検証: tenant 値だけで issuer trust を確立せず、認証済み context と照合します。

org_id

組織 ID

stringPrivate claim

SaaS の認可モデルで組織を識別する一般的な値です。

検証: issuer 固有値として扱い、resource membership を別途強制します。

token_use

Token 用途

stringVendor/private claim

Access/Identity など token の用途を区別する vendor 固有の慣習です。

検証: issuer の公式仕様がある場合だけ使い、可能なら標準 typ/profile ルールを優先します。