始める前に
続行する前に、Auth0 Dashboard で新しいアプリケーションを作成するか、既存のアプリケーションを変換しておく必要があります。詳しくは、Private Key JWT 認証の設定 を参照してください。
private_key_jwt で認証するには、次の 2 つの手順を完了する必要があります。
- クライアントアサーションを作成します。このアサーションは、キーペアの生成時に作成した秘密鍵で署名された JWT です。キーペアの生成方法については、Private Key JWT 認証の設定 を参照してください。
- そのアサーションを使用して Auth0 に対する認証を行います。
アサーションを作成する
特に明記されていない限り、すべてのクレームが必須です。JWT クレームの詳細については、JSON Web Token Claims を参照してください。
-
ヘッダー
alg: アサーションの署名に使用するアルゴリズムです。このアルゴリズムは、アプリケーションの認証情報を作成したときに指定したアルゴリズムと一致している必要があります。kid: (任意) 認証情報に対して Auth0 によって生成されたkidです。kidは認証情報の作成時に生成されます。
-
ペイロード
-
iss: アプリケーションのクライアントIDです。この値は、Auth0 Dashboard > Applications > Applications の Settings タブにあるアプリケーション設定で確認できます。 -
sub: アプリケーションのクライアントIDです。この値もアプリケーション設定で確認できます。Auth0 Dashboard > Applications > Applications の Settings タブを選択してください。 -
aud: アサーションを受け取る Auth0 テナントまたはカスタムドメインの URL です。例:https://{yourTenant}.auth0.com/**。**末尾のスラッシュを含めてください。Auth0 テナントにカスタムドメインを設定している場合は、それをaudクレームとして使用できます。この場合は、カスタムドメインを使用することを推奨します。 -
iat(任意) 、nbf(任意) 、およびexp: 正しいタイムスタンプに設定された Issued At、Not Before、Expiration の各クレームです。相互運用性を確保するため、iatとnbf(存在する場合) には最大 10 秒のクロックスキューが許容されます。クライアントアサーションは 1 回限り使用するトークンであるため、有効期限は可能な限り短くすることを推奨します。Auth0 でサポートされるトークンの lifetime の上限は 5 分です。 -
jti: クライアントが作成する一意のクレーム ID です。Universally Unique Identifier (UUID) 形式の使用を推奨します。
-
例

アサーションをアクセストークンに交換する
次の例では、Client Credential Flow を使用します。Private Key JWT 認証は、
client_secret を client_assertion に置き換えられる他のグラントタイプでも使用できます。$client_assertion: JWT アサーション$resource_server_identifier: の識別子。詳しくは、API を登録する を参照してください。
サポート対象のエンドポイント
private_key_jwt 認証を使用できます。
アサーションの制限
iss: 64 文字sub: 64 文字jti: 64 文字alg: 16 文字