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

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