JSON Web Tokenクレーム

JSON Web Token(JWT)クレームは対象について主張された情報です。たとえば、IDトークン(必ずJWT)には、認証しようとしているユーザーの名前が「John Doe」であると主張するnameクレームが含まれています。JWTでは、クレームは名前と値のペアで表記され、名前は常に文字列で、値は任意のJSON値になります。一般的に、JWTに関してクレームと言えば、名前(または鍵)のことを指します。たとえば、以下のJSONオブジェクトには3つのクレーム(subnameadmin)が含まれています。

{
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
    }

Was this helpful?

/

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

  • 登録済みインターネット番号割当機関(IANA:Internet Assigned Numbers Authority)に登録された標準クレームで、サードパーティーや外部アプリケーションとの相互運用性を確保するためにJWT仕様により定義されています。OIDCの標準クレームは予約済みのクレームです。

  • カスタム:未登録のパブリッククレームと未登録のプライベートクレームがあります。パブリッククレームには衝突耐性がありますが、プライベートクレームは衝突する可能性があります。

登録クレーム

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

  • iss(発行者):JWTの発行者

  • sub(件名):JWT(ユーザー)の件名

  • aud(オーディエンス):JWTの意図された受信者

  • exp(有効期限):JWTの有効期限

  • nbf(有効期限の開始日時):この日時より前にJWTの処理を受け付けてはいけない

  • iat(発行日時):JWTが発行された日時。JWTの経過時間を決定するのに使用可能

  • jti(JWT ID):一意の識別子。JWTがリプレイされるのを防ぐために使用可能(トークンの使用を一度に限定)

登録クレームの全リストについては、IANA JSON Web Token Claims Registryを参照してください。

カスタムクレーム

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

  • ユーザーのメールアドレスをアクセストークンに追加して、ユーザーを一意に識別するために使用する

  • Auth0のユーザープロファイルに保管されているカスタム情報をIDトークンに追加する

アクションが実行されている限り、アクションによって追加されるカスタムクレームは、リフレッシュトークンを使って発行される新しいトークンに含まれます。

カスタムクレームをトークンに追加する方法を示す例については、「ユースケースの例:スコープとクレーム」を参照してください。

パブリッククレーム

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

IANA JSON Web Token Claims Registryには、以下のように、OpenID Connect(OIDC)によって登録されたパブリッククレームがいくつかあります。

  • auth_time

  • acr

  • nonce

プライベートクレーム

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

Auth0の制約

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

  • カスタムクレームのペイロードは最大100 KBに設定される

  • OIDCのサブセットや他の標準の登録クレーム、またはAuth0によって内部的に使用されるクレームはカスタマイズや変更できない

  • /userinfoエンドポイントを除いて、Auth0 APIオーディエンスのアクセストークンには、名前空間のない、プライベートなカスタムクレームが含まれてはいけない

  • 指定されたOIDCユーザープロファイルクレームしかアクセストークンに追加できない

カスタムクレームの詳細については、「カスタムクレームを作成する」をお読みください。

もっと詳しく