メインコンテンツへスキップ
Customer Provided Signing Key は現在、早期アクセスです。詳細については、Product Release Stages を参照してください。Customer Provided Signing Keys への参加を希望する場合は、Enterprise プランが必要です。詳しくは、Technical Account Manager にお問い合わせください。
Auth0 は、トークンが Auth0 によって発行されたものであることを保証するために、への署名に暗号鍵を使用します。Auth0 は秘密の署名鍵でトークンに署名し、公開鍵をテナントの “well-known” Key Set (JWKS) エンドポイント https://{yourDomain}/.well-known/``jwks.json で公開します。 独自の署名鍵を生成する場合は、その公開鍵をテナントの /.well-known JWKS エンドポイントにインポートできます。これにより、Auth0 は Auth0 の署名鍵とカスタム署名鍵の単一の配布ポイントとして機能できます。ビジネス要件上、アプリケーションをリモートデバイスに埋め込む必要がある場合は、既存の署名鍵を移行し、Auth0 が公開鍵を /.well-known エンドポイントで公開できるようにできます。 ユーザー認証との結果として、カスタム署名鍵によるアクセストークンが発行される場合:
  • 生成して提供した署名鍵の保護は、Auth0 の Key Management System が担います。
  • Auth0 は、として、認証と認可のためのトークンを発行します。
  • Auth0 は、テナント固有の配布 URL で有効な公開鍵の一覧を公開します。
  • プロキシソリューションは Auth0 が発行したトークンを受け取り、レガシーアプリケーションや API で利用できるようにします。
    お客様の鍵で署名されたトークンは、Auth0 APIs では使用できません。
  • お客様のアプリケーションは、発行されたアクセストークンを使用して API やリソースにアクセスします。
  • API とリソースサーバーは、Auth0 の JWKS 配布から公開鍵を取得してトークン署名を検証することで、提示されたアクセストークンの署名を検証します。

仕組み

  1. 署名鍵の公開鍵が Auth0 にインポートされ、集約されたJWKSとして Auth0 の鍵に公開されるのを待機します。
  2. 公開署名鍵は、テナントのカスタムドメインの well-known エンドポイント {yourCustomDomain}/.well-known/jwks.json で公開されます。
  3. Auth0 はアクセストークンを発行します。これらのトークンはカスタマイズされ、署名鍵で再署名されます。
  4. アプリケーションは、API などのリソースにアクセスするために、カスタマイズされたトークンを使用します。
  5. Auth0 は、/.wellknown エンドポイントで公開することで、署名鍵を配布します。

前提条件

Auth0 にカスタム署名鍵をインポートするには、以下を満たしている必要があります。
  • を設定する。集約 JWKS はカスタムドメインから提供され、正規ドメインでは利用できません。詳細については、カスタムドメインを参照してください。
  • Auth0 の Private Cloud を使用する。署名鍵をインポートできるのは Private Cloud 環境のみです。詳細については、AWSAzure の Private Cloud に関するドキュメントを参照してください。

Management API を使用してカスタム鍵を設定する

JWKS 形式でカスタム鍵をアップロードするには、 を使用します。 新しいカスタム鍵を作成する (既存のカスタム鍵をすべて置き換える) には、Create or replace custom signing keys エンドポイントに PUT リクエストを送信して、一連のカスタム公開鍵を Auth0 にインポートします。既存のカスタム鍵は新しいセットに置き換えられます。JWKS 形式で最大 10 個のカスタム鍵をインポートできます。
インポート後、カスタム公開鍵は Auth0 生成の鍵一覧の先頭に追加され、JWKS を配布するためにテナントの well-known エンドポイント URL で公開されます。
既存のカスタム鍵の一覧を取得するには、Get custom signing keys エンドポイントに GET リクエストを送信して、カスタム鍵のセットを JWK オブジェクトの配列として取得します。 既存のカスタム鍵を削除するには、Delete custom keys エンドポイントに DELETE リクエストを送信して、カスタム鍵を削除します。