基本概念
ドメインパラメーター
domain パラメーターが必要です。カスタムドメインを使用する場合は、このパラメーターにAuth0の正規ドメインではなく、カスタムドメインを設定します。
カスタムドメインを使用しない場合:
トークン発行者
iss (発行者) クレームには、カスタムドメインが設定されます:
認証 SDK
MCD を使用する場合、すべてのカスタムドメインの提供と検証は顧客の責任となります。SDK でドメインリゾルバー関数を使用してテナントのカスタムドメインを解決するよう設定する場合は、解決されたすべてのドメインが信頼できるものであることを確認する責任があります。ドメインリゾルバーの設定を誤ると、Relying Party 側で認証が回避されたり、アプリケーションがサーバーサイドリクエストフォージェリにさらされたりするおそれがあります。ドメインとプロキシサーバーを適切に設定しないと、重大なセキュリティ脆弱性が生じる可能性があり、Okta はそれに対して責任を負いません。
Auth0 SPA SDK (JavaScript)
Next.js
- 単一の Auth0 テナント、複数のドメイン: すべてのカスタムドメインは同じ Auth0 テナントに属しているため、同じ
clientIdとclientSecretを共有します。 - DomainResolver 関数:
domainパラメータには、(config: { headers: Headers; url?: URL }) => Promise<string> | stringという関数を渡せます。これにより、受信したリクエストヘッダーに基づいて、リクエストごとに動的にドメインを解決できます。 - インスタンスのキャッシュ: SDK はパフォーマンス向上のため、
Auth0Clientインスタンスをドメインごとに上限付きの LRU キャッシュ (最大 100 エントリ) で自動的にキャッシュします。 - セッションの分離: あるカスタムドメイン経由で作成されたセッションはそのドメインに限定され、別のドメインのセッションと相互に使い回すことはできません。
- URL パラメータ: リゾルバー内の
urlパラメータは、Server Components と Server Actions ではundefinedです。利用できるのは middleware または API ルート内のみです。 - Discovery キャッシュの調整:
discoveryCacheオプションを使用して OIDC メタデータのキャッシュを設定します。
Auth0 React SDK
Auth0.js
Node.js (Express)
モバイル SDK
iOS (Swift)
Android (Kotlin)
React Native
Flutter
Management SDKs
auth0-custom-domain ヘッダーを含めるか、デフォルトドメイン を使用する必要があることがあります。
Node.js 管理用 SDK
Python向け管理SDK
Go向け管理SDK
トークンの検証
Node.js (Express)
Python (Flask)
Java (Spring Boot)
環境ごとの設定
.env ファイルの構造
設定の読み込み
トラブルシューティング
よくある問題
| 問題 | 原因 | 解決策 |
|---|---|---|
| 発行者 が無効というエラー | token の検証では正規ドメインを想定しているが、カスタムドメインを受け取っている | 発行者 としてカスタムドメインを受け入れるよう、token の検証を更新する |
| JWKS の取得に失敗する | JWKS URI が正規ドメインを指している | JWKS URI がカスタムドメインを使用するように更新する: https://custom-domain/.well-known/jwks.json |
| リダイレクト URI の不一致 | callback URL が設定済みのリダイレクト URI と一致していない | カスタムドメインの callback URL をアプリケーション設定に追加する |
| クロスオリジン エラー (CORS) | カスタムドメインが許可済みオリジンに含まれていない | アプリケーション設定の Allowed Web Origins にカスタムドメインを追加する |
| Lock の読み込みに失敗する | configurationBaseUrl が指定されていない | リージョンに対応する CDN URL を指定して configurationBaseUrl パラメーターを追加する |
ベストプラクティス
- 環境変数を使用する: カスタムドメインは、環境ごとの設定ファイルに保存します
- 複数の発行者を検証する: 複数のカスタムドメインを使用する場合は、トークンの検証でそれらすべてを有効な発行者として受け入れるように設定します
- コールバックURLを更新する: すべてのカスタムドメインが、アプリケーション設定のAllowed Callback URLsに追加されていることを確認します
- 十分にテストする: 本番環境に移行する前に、各カスタムドメイン経由での認証を十分にテストします
- トークン発行者を監視する: 正しいカスタムドメインが使用されていることを確認するため、トークン内の
issクレームを記録し、監視します - ドメインの対応関係を文書化する: どのアプリケーションがどのカスタムドメインを使用しているかを、わかりやすく文書化します
- 障害を適切に処理する: 認証の失敗に対する適切なエラー処理を実装します
- JWKSをキャッシュする: パフォーマンスを向上させ、リクエスト数を減らすために、JWKSデータをキャッシュします