アクセストークンプロファイル
アクセストークンプロファイルは、APIに発行されるアクセストークンの形式とクレームを定義します。Auth0は以下のアクセストークンプロファイル(別名トークンダイアレクト)をサポートしています。
Auth0のトークンプロファイル(デフォルトのアクセストークンプロファイル)
RFC 9068トークンプロファイル(IETF JWT Profile for OAuth 2.0 Access Tokens(RFC 9068)
トークンプロファイル | 説明 | トークンダイアレクト |
---|---|---|
Auth0トークンプロファイル | デフォルトのトークンプロファイル。JSON Web Token (JWT)としてフォーマットされたアクセストークンを発行します。 | Auth0トークンプロファイルは、2つのトークンダイアレクトと関連しています:
|
RFC 9068トークンプロファイル | JWTフォーマットのOAuth 2.0アクセストークンのエンコードのためのIETF標準に準拠したJSON Web Token (JWT)としてフォーマットされたアクセストークンを発行します。 | The RFC 9068トークンプロファイルは、2つのトークンダイアレクトと関連しています:
|
どちらのアクセストークンプロファイルも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 |
サブジェクトクレームは、アクセストークンがどのユーザーまたはアプリケーションに発行されたかを示します:
|
有 | 有 |
|
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 |
アプリケーションがアクセストークンの要求に使用した付与タイプです。password やrefresh_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” |