テナントのmTLS認証の構成
テナントのmTLS認証を構成する方法を説明します。
まず最初に、カスタムドメインを構成して検証する必要があります。
カスタムドメインを作成する
Management APIでmTLSヘッダーを受け入れるためのカスタムドメインをテナントレベルで構成する必要があります。カスタマーエッジはクライアント証明書を検証する責任を負うため、POST要求でtype
をself_managed_certs
に設定します。
curl --location --request POST 'https://$tenant/api/v2/custom-domains' \
--header 'Authorization: Bearer $management_access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"domain":"string",
"type":"self_managed_certs",
"verification_method":"txt",
"tls_policy":"recommended",
"custom_client_ip_header":"true-client-ip"
}'
Was this helpful?
要求に成功すると、カスタムドメインを検証するために使われる識別子が返されます。詳しくは、APIドキュメントの「新規カスタムドメインの構成」をご覧ください。
既存のカスタムドメインをパッチする
Management APIでmTLSヘッダーを受け入れるための既存のカスタムドメインを構成できます。しかし、すでに存在するカスタムドメインのtype
は変更できません。
以下のPOST要求でmTLSヘッダーを受け入れるための既存のカスタムドメインを構成します。
curl --location --request POST 'https://$tenant/api/v2/custom-domains/:id' \
--header 'Authorization: Bearer $management_access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"tls_policy":"recommended",
"custom_client_ip_header":"true-client-ip"
}'
Was this helpful?
詳しくは、APIドキュメントの「カスタムドメイン構成の更新」をご覧ください。
カスタムドメインを検証する
Auth0は、カスタムドメインの作成と更新要求を受け入れる前に、まずドメインを検証する必要があります。Management APIを使って以下のPOST要求を送り、カスタムドメインを検証します。
curl --location --request POST 'https://$tenant/api/v2/custom-domains/:id/verify'
Was this helpful?
status
フィールドで検証ステータスを確認します。検証が完了後、カスタムドメインが要求を受け入れ始めるまで最大10分かかる場合があります。
Auth0がこのカスタムドメインを初めて検証した場合、応答にはcname_api_key
が含まれます。これはエッジ/リバースプロキシを構成する際に必要です。このキーは秘密にしておく必要があり、転送された要求の検証に使われます。
詳しくは、APIドキュメントの「カスタムドメインの検証」をご覧ください。
mTLSエンドポイントエイリアスを有効にする
mTLSハンドシェイクでクライアントからのクライアント証明書が要求される場合、Webブラウザーはユーザーに証明書を選択するためのモーダルダイアログを表示します。これではユーザーエクスペリエンスに摩擦が生じるため、/authorize
エンドポイントのようにmTLSが不要なエンドポイントでは回避すべきです。結果として、異なるドメインでmTLSトラフィックと非mTLSトラフィックに対応するお客様は、mTLSエンドポイントエイリアスを有効にするべきです。
mTLSエンドポイントエイリアスは、クライアントがOIDCディスカバリードキュメントのmtls_endpoint_aliases
プロパティで指定するエンドポイントにmTLSトラフィックを送るべきであることを示します。クライアントは非mTLSトラフィックを通常のエンドポイントに送ります。mtls_endpoint_aliases
プロパティに関する詳細は、「リソースサーバーの呼び出し」をお読みください。
mTLSエンドポイントエイリアスは、Auth0 DashboardとManagement APIで有効にすることができます。
Auth0 Dashboardを使用して、mTLSエンドポイントエイリアスを有効にする方法:
[Auth0 Dashboard]に行き、サイドメニューの[Settings(設定)]を選択します。
[Tenant Settings(テナント設定)]の下の、[Advanced(詳細設定)]タブを選択します。
[Allow mTLS Endpoint Aliases(mTLSエンドポイントエイリアスを許可する)]を見つけ、有効にしますこれにより
mtls.<your custom domain>
というエンドポイントにmTLSトラフィックを定めます。
Management APIを使用したmTLSエンドポイントエイリアスを有効にするには、テナントに対するenable_endpoint_aliases
プロパティをtrue
に設定します。
curl --location --request PATCH 'https://$tenant/api/v2/tenants/settings' \
--header 'Authorization: Bearer $management_access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"mtls": {
"enable_endpoint_aliases": true
}
}'
Was this helpful?
mTLSエンドポイントエイリアスは、構成されたカスタムドメインにmtls.
プレフィックスを追加します。たとえば、構成されたカスタムドメインがauth.saasapp.com
の場合、mTLSエンドポイントエイリアスはドメイン mtls.auth.saasapp.com
を使用します。フィードバックによって、お客様は将来的にmTLSエンドポイントエイリアスを構成できるようになるかもしれません。
mTLSエンドポイントエイリアスを無効にするには、enable_endpoint_aliases
値をfalse
に設定します。詳細については、「テナント設定の更新」のAPIドキュメントを参照してください。