前提条件
CIMDでアプリケーションを登録する前に、次の要件を満たしていることを確認してください。テナントとアプリケーションの設定
CIMD クライアントとして登録できるのは、サードパーティ製アプリケーションのみです。- API アクセスポリシーを設定する: サードパーティ製アプリケーションが API にアクセスするには、明示的なクライアントへの認可が必要です。
- 接続をドメインレベルに昇格する: ユーザーを認証できるよう、接続をドメインまたはテナントレベルで利用可能にします。これはサードパーティ製アプリケーションでは必須です。
- Resource Parameter Compatibility Profile (任意): MCP クライアントでは、テナント設定でこのプロファイルを有効にすることを推奨します。これにより、
audienceが指定されていない場合にresourceパラメーターを確認して、認可サーバーがリソース固有のリクエスト (RFC 8707) を処理できるようになります。
サポートされているクライアントタイプ
Auth0 では、CIMD で次のクライアントタイプを登録できます。- アプリケーションの種類: ネイティブアプリケーションまたは通常の Web アプリケーションである必要があります。
- サードパーティ製アプリケーション: サードパーティ製アプリケーション (
is_first_party: false) である必要があり、強化されたセキュリティ制御 が適用されます。
サポートされる認証方式
CIMDクライアントでは、client_secret_post、client_secret_basic、client_secret_jwt など、共有対称シークレットに基づく認証方式は使用できません。
クライアントがパブリックかコンフィデンシャルかに応じて、Auth0 は CIMDクライアントに対して次の認証方式をサポートしています。
- パブリッククライアント:
- トークンエンドポイントではクライアント認証は不要です。クライアントメタデータの
token_endpoint_auth_methodをnoneに設定してください - 認可フローでは Proof Key for Code Exchange (PKCE) を使用する必要があります
- トークンエンドポイントではクライアント認証は不要です。クライアントメタデータの
- コンフィデンシャルクライアント:
- Private Key JWT 認証 のみサポートされています。クライアントメタデータの
token_endpoint_auth_methodをprivate_key_jwtに設定してください - 公開キーをホストするための
jwks_uriを指定します。jwks_uriは、CIMD URL と完全に同一のオリジン (スキーム、ホスト、ポート) である必要があります。詳しくは、CIMD JSON 検証ルール をご覧ください。
- Private Key JWT 認証 のみサポートされています。クライアントメタデータの
Private Key JWT 認証 は Enterprise のお客様のみご利用いただけます。Enterprise プランの詳細については、Pricing をご確認いただくか、Auth0 Sales にお問い合わせください。
Private Key JWT 認証 を使用する手動登録の CIMDクライアントは、新しい一意の
kid を持つ新しいキーペアを生成してキーローテーションを実装する 必要があります。CIMD登録を有効にする
Auth0 DashboardまたはManagement APIを使用して、CIMD登録を有効にします。- Auth0 Dashboard
- Management API
- CIMDサポートの有効化:テナント設定で Client ID Metadata Document Registration トグルを有効にします。これにより、Auth0認可サーバーのメタデータにCIMDのサポートが示され、クライアントは接続時にこの機能を自動的に検出できるようになります。
- [Settings]>[Advanced] に移動し、 [Settings] セクションまでスクロールします。
- Client ID Metadata Document Registration をオンにします。
- 動的CIMD登録のサポート:テナント設定で、 Client ID Metadata Document Registration の下にある Dynamic CIMD Registration トグルを有効にします。有効にすると、新しいクライアントは動的CIMDで自身を登録できるようになります。無効にすると、新しいクライアントは動的CIMDで自身を登録できなくなりますが、既存の動的CIMDクライアントは引き続き通常どおり動作します。
CIMD を使用してアプリケーションを登録する
Auth0 でアプリケーションを作成する際は、Auth0 Dashboard または Management API を使用して、CIMD に手動で登録します。 動的 CIMD 登録が有効な場合、アプリケーションは実行時に自身の CIMD URL を介して Auth0 に登録を行います。動的 CIMD 登録を有効にするには、CIMD 登録を有効にするを参照してください。- Auth0 Dashboard
- Management API
Auth0 Dashboard を使用して手動で CIMD を使用するアプリケーションを登録するには、次の手順に従います。
- Applications > Applications に移動します。
- Create Application > Import from URL を選択します。
- CIMD URL を入力し、Preview を選択します。Auth0 は CIMD URL 検証ルール に従って CIMD URL を検証します。
- CIMD URL が有効な場合、Auth0 は CIMD を読み込んで CIMD JSON 検証ルール に従って検証します。クライアントメタデータをプレビューし、検証エラーがあれば対処してください。
- Create を選択します。
クライアントメタデータを更新する
手動CIMDクライアントと動的CIMDクライアントでは、クライアントメタデータの更新方法が異なります。- 手動CIMDクライアント
- 動的CIMDクライアント
手動CIMDクライアントでは、クライアントメタデータを手動で更新できます。Auth0がCIMDから最新のクライアントメタデータを取得するので、内容をプレビューしてから保存できます。クライアントメタデータを更新すると、Auth0はホストされているCIMDの値に合わせて
app_typeとgrant_typesを更新します。CIMDフィールドの詳細については、「CIMD JSON検証ルール」をお読みください。Auth0 Dashboardで以下を行います。- [Applications (アプリケーション) ]>[Applications (アプリケーション) ]に移動して、CIMDクライアントを選択します。
- 右上隅にある[Refresh Client Metadata (クライアントメタデータの更新) ]を選択します。
- [Refresh Preview (プレビューの更新) ]を選択して、CIMD内の最新のクライアントメタデータをプレビューします。バリデーションの警告やエラーがあれば確認します。
- [Save (保存) ]を選択します。
CIMDクライアントを取得する
CIMDクライアントを取得するには、GET リクエストを /v2/clients/{clientId} エンドポイントに送信します。{clientID} は、CIMDクライアントに割り当てられた Auth0 生成のクライアント ID です。
- Auth0 CLI
- cURL
external_client_id もしくは CIMD URL を、/v2/clients エンドポイントのクエリパラメーターとして渡します:
- Auth0 CLI
- cURL
external_client_id、name、callbacks、token_endpoint_auth_method、external_metadata_created_by、external_metadata_status などのフィールドを含む CIMD クライアント設定を含んだレスポンスを返します。
CIMDメタデータのステータス
すべてのCIMDクライアントにはexternal_metadata_status フィールドが含まれています。このフィールドは、Auth0がクライアントのホストされたメタデータドキュメントを解決できたかどうかを示します。
external_metadata_status: "unavailable" の動的CIMDクライアントは、メタデータURLに再び到達できるようになれば自動的に回復します。Auth0が以降の認証リクエスト時にメタデータを自動で再解決するため、手動での操作は必要ありません。ステータスが長期間 unavailable のままの場合は、回復を待ち続けるのではなく、クライアントの削除を検討してください。/api/v2/clients/cimd/preview エンドポイントに POST リクエストを送信します。URLには到達できてもCIMDメタデータドキュメントが無効な場合は、Auth0からバリデーションエラーが返されます。
CIMD クライアントを更新する
登録済みの CIMD クライアントについて、Auth0 データベース内のフィールドを更新できます。Auth0 内の CIMD クライアントを更新しても、アプリケーションのドメインでホストされている CIMD には自動的に反映されません。 CIMD クライアントで更新できるのは、次のフィールドのみです。動的 CIMD クライアントにはさらに制限があり、app_type、description、grant_types、name は更新できません。
CIMD クライアントを更新するには、
/v2/clients/{clientId} エンドポイントに PATCH リクエストを送信します。ここで、{clientID} は CIMD クライアントに割り当てられた Auth0 生成のクライアント ID です。
- Auth0 CLI
- cURL
セキュリティ上の考慮事項
private_key_jwt 認証のための CIMD クライアントのキーローテーション
Private Key JWT 認証を使用する CIMD クライアントのキーを適切にローテーションするには、新しく一意のkid を持つ新しいキーペアを生成してください。秘密キーをローテーションし、同じ kid のまま新しいキーマテリアルで JWKS を更新すると、Auth0 の CIMD 登録では新しいキーは拒否され、古いキーが保持されます。これは、キーローテーションでは新しいキーを明示的に追加する必要があり、気付かないうちに置き換えられることはないようにするためです。
手動 CIMD クライアントの場合は、キーをローテーションしたら、Auth0 でキー登録も忘れずに更新してください。詳しくは、署名キーのローテーション を参照してください。
動的 CIMD クライアントの場合、手動での更新は不要です。トークンの検証時に Auth0 が署名キー (kid) を見つけられない場合は、クライアントの jwks_uri から最新のキーが自動的に取得されます。
動的CIMDクライアントでは認証情報がサポートされない
動的CIMDクライアントはjwks_uriから解決されたキーで認証するため、保存された認証情報レコードを持ちません。動的CIMDクライアントに対して/v2/clients/{id}/credentialsエンドポイントへPOSTリクエストを送信すると、次のエラーが返されて失敗します。
jwks_uriドキュメントを更新します。新しいキーは、必要に応じてAuth0が自動的に取得します。動的CIMDクライアントの認証情報の読み取り、更新、削除はブロックされません。ただし、認証情報のレコードが存在しないため、これらのリクエストは、認証情報を持たないクライアントに対する場合と同じ結果になります (空のリストが返される、特定の認証情報IDに対しては404 Not Foundが返される、削除時には冪等な204 No Contentが返される) 。手動のCIMDクライアントや、その他のアプリケーションの種類のクライアントには、この制限は適用されません。