> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-fix-docs-5528-php-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# JSON Web Tokenクレーム

> JSON Web Token（JWT）クレームとそのAuth0での使い方について説明します。

[JSON Web Token（JWT）](/docs/ja-jp/tokens/concepts/jwts)クレームは対象について主張された情報です。たとえば、[IDトークン](/docs/ja-jp/secure/tokens/id-tokens)（必ず<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-3" href="/docs/ja-jp/glossary?term=json-web-token" tip="JSON Web Token（JWT）: 二者間のクレームを安全に表現するために使用される標準IDトークン形式（および多くの場合、アクセストークン形式）。" cta="用語集の表示">JWT</Tooltip>）には、認証しようとしているユーザーの名前が「John Doe」であると主張する`name`クレームが含まれています。JWTでは、クレームは名前と値のペアで表記され、名前は常に文字列で、値は任意のJSON値になります。一般的に、JWTに関してクレームと言えば、名前（または鍵）のことを指します。たとえば、以下のJSONオブジェクトには3つのクレーム（`sub`、`name`、`admin`）が含まれています。

```json lines theme={null}
{
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
    }
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  OpenID Connect（OIDC）の標準クレームについては、「[OpenID Connectのスコープ](/docs/ja-jp/get-started/apis/scopes/openid-connect-scopes)」と「[OpenID Connectの標準クレーム](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)」を参照してください。
</Callout>

JWTクレームには以下の2種類があります。

* **登録済み** ：[インターネット番号割当機関（IANA：Internet Assigned Numbers Authority）](https://www.iana.org/assignments/jwt/jwt.xhtml)に登録された標準クレームで、サードパーティーや外部アプリケーションとの相互運用性を確保するために[JWT仕様](https://tools.ietf.org/html/rfc7519)により定義されています。OIDCの標準クレームは予約済みのクレームです。
* **カスタム** ：未登録のパブリッククレームと未登録のプライベートクレームがあります。パブリッククレームには衝突耐性がありますが、プライベートクレームは衝突する可能性があります。

## 登録クレーム

JTW仕様は、予約済みのクレームを7つ定義しています。これらは必須ではありませんが、[サードパーティーアプリケーション](/docs/ja-jp/get-started/applications/third-party-applications/configure-third-party-applications)との相互運用性を確保するために推奨されています。これには、以下が含まれます。

* `iss`（発行者）：JWTの発行者
* `sub`（件名）：JWT（ユーザー）の件名
* `aud`（オーディエンス）：JWTの意図された受信者
* `exp`（有効期限）：JWTの有効期限
* `nbf`（有効期限の開始日時）：この日時より前にJWTの処理を受け付けてはいけない
* `iat`（発行日時）：JWTが発行された日時。JWTの経過時間を決定するのに使用可能
* `jti`（JWT ID）：一意の識別子。JWTがリプレイされるのを防ぐために使用可能（トークンの使用を一度に限定）

登録クレームの全リストについては、[IANA JSON Web Token Claims Registry](https://www.iana.org/assignments/jwt/jwt.xhtml#claims)を参照してください。

## カスタムクレーム

独自のカスタムクレームを定義することができます。独自に制御し、アクションを使ってトークンに追加することができます。例としては以下が挙げられます。

* ユーザーのメールアドレスをアクセストークンに追加して、ユーザーを一意に識別するために使用する
* Auth0のユーザープロファイルに保管されているカスタム情報をIDトークンに追加する

アクションが実行されている限り、アクションによって追加されるカスタムクレームは、[リフレッシュトークン](/docs/ja-jp/secure/tokens/refresh-tokens)を使って発行される新しいトークンに含まれます。

カスタムクレームをトークンに追加する方法を示す例については、「[ユースケースの例：スコープとクレーム](/docs/ja-jp/get-started/apis/scopes/sample-use-cases-scopes-and-claims)」を参照してください。

### パブリッククレーム

名前やメールなど、一般的な情報を含んだカスタムクレームを公開して使用するために作成することができます。パブリッククレームを作成する場合には、登録するか、名前空間を使って衝突耐性のあるものにして、使用する名前空間を必ず制御できるように合理的な予防策をとってください。

[IANA JSON Web Token Claims Registry](https://www.iana.org/assignments/jwt/jwt.xhtml#claims)には、以下のように、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=openid" tip="OpenID: アプリケーションがログイン情報を収集および保存することなくにユーザーのIDを検証できるようにする認証用のオープン標準。" cta="用語集の表示">OpenID</Tooltip> Connect（OIDC）によって登録されたパブリッククレームがいくつかあります。

* `auth_time`
* `acr`
* `nonce`

### プライベートクレーム

プライベートのカスタムクレームを作成して、アプリケーションに特有の情報を共有することができます。たとえば、パブリッククレームには、名前やメールなど、一般的な情報を含めることができますが、プライベートクレームにはより特定的な、従業員IDや部署などの情報を含めます。

## Auth0の制約

Auth0はカスタムクレームに以下の一般的制約を適用します。

* カスタムクレームのペイロードは最大100 KBに設定される
* OIDCのサブセットや他の標準の登録クレーム、またはAuth0によって内部的に使用されるクレームはカスタマイズや変更できない
* `/userinfo`エンドポイントを除いて、Auth0 APIオーディエンスのアクセストークンには、名前空間のない、プライベートなカスタムクレームが含まれてはいけない
* 指定されたOIDCユーザープロファイルクレームしかアクセストークンに追加できない

カスタムクレームの詳細については、「[カスタムクレームを作成する](/docs/ja-jp/secure/tokens/json-web-tokens/create-custom-claims)」をお読みください。

## もっと詳しく

* [JSON Web Tokenを検証する](/docs/ja-jp/secure/tokens/json-web-tokens/validate-json-web-tokens)
* [JSON Web Tokenの構造](/docs/ja-jp/secure/tokens/json-web-tokens/json-web-token-structure)
* [JSON Web Key Set](/docs/ja-jp/secure/tokens/json-web-tokens/json-web-key-sets)
* [JSON Web Key Setのプロパティ](/docs/ja-jp/secure/tokens/json-web-tokens/json-web-key-set-properties)
