アクセストークンプロファイル

アクセストークンプロファイルは、APIに発行されるアクセストークンの形式とクレームを定義します。Auth0は以下のアクセストークンプロファイル(別名トークンダイアレクト)をサポートしています。

トークンプロファイル 説明 トークンダイアレクト
Auth0トークンプロファイル デフォルトのトークンプロファイル。JSON Web Token (JWT)としてフォーマットされたアクセストークンを発行します。 Auth0トークンプロファイルは、2つのトークンダイアレクトと関連しています:
  • access_token
  • access_token_authz、またはpermissionsクレームを含んだaccess_tokenプロファイル。
RFC 9068トークンプロファイル JWTフォーマットのOAuth 2.0アクセストークンのエンコードのためのIETF標準に準拠したJSON Web Token (JWT)としてフォーマットされたアクセストークンを発行します。 The RFC 9068トークンプロファイルは、2つのトークンダイアレクトと関連しています:
  • rfc9068_profile
  • rfc9068_profile_authzまたはpermissionsクレームを含んだrfc9068_profileプロファイル

どちらのアクセストークンプロファイルもJWTを発行しますが、JWTのトークン形式は異なります。どちらのアクセストークンプロファイルもRole-Based Access Control(RBAC)を有効にして、アクセストークンへのアクセス許可クレームを追加できます。

APIのアクセストークンプロファイルを構成するには、「アクセストークンプロファイルを構成する」をお読みください。

Auth0プロファイルのサンプルトークン

{
  "iss": "https://my-domain.auth0.com/",
  "sub": "auth0|123456",
  "aud": [
    "https://example.com/health-api",
    "https://my-domain.auth0.com/userinfo"
  ],
  "azp": "my_client_id",
  "exp": 1311281970,
  "iat": 1311280970,
  "scope": "openid profile read:patients read:admin",
  "my_custom_claim": "my_custom_value"
}

Was this helpful?

/

RFC 9068プロファイルのサンプルトークン

{
  "iss": "https://my-domain.auth0.com/",
  "sub": "auth0|123456",
  "aud": [
    "https://example.com/health-api",
    "https://my-domain.auth0.com/userinfo"
  ],
  "client_id": "my_client_id",
  "exp": 1311281970,
  "iat": 1311280970,
  "jti":"73WakrfVbNJBaAmhQtEeDv",
  "scope": "openid profile read:patients read:admin",
  "my_custom_claim": "my_custom_value"
}

Was this helpful?

/

トークンプロファイルの違い

Auth0プロファイルとRFC 9068プロファイルはトークン形式の異なるJWTを発行します。主な違いは以下の通りです。

  • RFC 9068プロファイルにはjtiクレームが組み込まれており、JWTに一意の識別子を提供する。

  • Auth0プロファイルはazpクレームを使用してクライアントIDを表すが、RFC 9068プロファイルはclient_idクレームを使用する。

  • RFC 9068プロファイルは、認証フローを表すAuth0固有のクレームであるgtyクレームは使用しない。

ヘッダー

データ RFC 9068プロファイル Auth0プロファイル
type at+jwt JWT
alg 署名アルゴリズム。例:RS256 署名アルゴリズム。例:RS256

クレーム

クレーム
説明
RFC 9068プロファイルに存在
Auth0プロファイルに存在
サンプルのクレーム
iss アクセストークンを発行するAuth0テナントの発行者識別子です。 テナントドメイン:https://tenant.auth0.com/
sub サブジェクトクレームは、アクセストークンがどのユーザーまたはアプリケーションに発行されたかを示します:
  • 認可コードフローなど、エンドユーザーが関わる付与の場合、subクレームはuser_idになります。
  • クライアント資格情報付与を用いたM2Mアプリケーションで、エンドユーザーが関わらない場合、subクレームはアプリケーションの一意の識別子になります。
  • ユーザーID:auth0
aud オーディエンスクレームは、アクセストークンの意図された受信者を示します。 "https://test-server/api"または[ "https://test-server/api", "https://test.local.dev.auth0.com/userinfo" ]
client_id アクセストークンを要求したアプリケーションのクライアントIDです。 クライアント ID:K1AUPhZq8mRi0Q0pjhkfu1D7y6KjDQja
azp アクセストークンを要求したアプリケーションのクライアントIDです。 クライアント ID:K1AUPhZq8mRi0Q0pjhkfu1D7y6KjDQja
exp 有効期限です。これ以降、アクセストークンを受け付けて処理してはいけません。 エポックタイムスタンプ(秒単位):1516238022
iat アクセストークン発行のタイムスタンプです。 エポックタイムスタンプ(秒単位):1516239022
scope 発行されたアクセストークンのスコープです。詳細については、「スコープ」をお読みください。 "openid profile offline_access"
jti アクセストークンの一意の識別子です。 一意の文字列識別子です。aBv9njtYfwL4xfPZyEwz9m
gty アプリケーションがアクセストークンの要求に使用した付与タイプです。passwordrefresh_token付与タイプにのみ存在します。 状況による 付与タイプ:password
permissions ロールに応じて、ユーザーまたはアプリケーションに付与可能な権限です。APIで__[Enable RBAC(RBACを有効にする)][Add permissions in the Access Token(アクセストークンに権限を追加する)]__が有効化されている場合にのみ含まれます。詳細については、「APIにロールベースのアクセス制御を有効にする」をお読みください。 状況による 状況による [ "create:bar", "create:foo", "read:bar", "read:foo" ]
org_id 組織IDです。ユーザーが組織を通して認証した場合に追加されます。詳細については、「トークンと組織で作業する」をお読みください。 状況による 状況による 組織ID:org_9ybsU1dN2dKfDkBi
org_name 組織名。ユーザーが組織を通して認証し、__[Organization Names in Authentication API(Authentication APIで組織名を使用する)]__の設定が有効な場合に追加されます。詳細については「Authentication APIで組織名を使用する」をお読みください。 状況による 状況による 組織名:my_organization
authorization_details Rich Authorization Request(RAR)で使用されている認可の詳細情報です。詳細については、「Rich Authorization Requestsを使用した認可コードフロー」をお読みください。 状況による 状況による { "type": "money_transfer", "instructedAmount": {"amount": 2500, "currency": "USD"}, "destinationAccount": "xxxxxxxxxxx9876", "beneficiary": "Hanna Herwitz", }
cnf mTLSトークンバインディングに対応の確認クレームです。 状況による 状況による {"x5t#S256":"A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0"}
カスタムクレーム カスタムクレームは、アクションを使ってアクセストークンに追加することができます。詳細については「カスタムクレームを作成する」をお読みください。 状況による 状況による "favorite_color": “blue”