重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
開始する前にこのページの上部にある ポリシーの種類 セレクターを使用して、設定するポリシーの種類を選択します。 Azure Active Directory B2C には、ユーザーがアプリケーションを操作する方法を定義する 2 つの方法 (定義済みのユーザー フローを使用する、または完全に構成可能なカスタム ポリシーを使用する) があります。 この記事で必要な手順は、方法ごとに異なります。
この記事では、Azure Active Directory B2C (Azure AD B2C) のリダイレクト URL でカスタム ドメインを有効にする方法について説明します。 検証済みカスタム ドメインの使用には、次の利点があります。
よりシームレスなユーザー エクスペリエンスを提供します。 ユーザーの観点からは、Azure AD B2C の既定のドメイン <テナント名>.b2clogin.com にリダイレクトするのではなく、サインイン プロセス中にドメインに残ります。
サインイン中にアプリケーションの同じドメインに留まることで、 サードパーティの Cookie ブロックの影響を軽減できます。
Azure AD B2C テナントで作成できるオブジェクト (ユーザー アカウントとアプリケーション) の数を、既定の 125 万から 525 万に増やします。
カスタム ドメインの概要
Azure Front Door を使用して、Azure AD B2C のカスタム ドメインを有効にすることができます。 Azure Front Door は、Microsoft グローバル エッジ ネットワークを使用して、高速で安全で、広くスケーラブルな Web アプリケーションを作成するグローバル エントリ ポイントです。 Azure Front Door の背後に Azure AD B2C コンテンツをレンダリングし、アプリケーションの URL のカスタム ドメインを介してコンテンツを配信するように Azure Front Door でオプションを構成できます。
Azure AD B2C カスタム ドメインの詳細については、このビデオをご覧ください。
次の図は、Azure Front Door の統合を示しています。
- アプリケーションからユーザーがサインイン ボタンを選択すると、Azure AD B2C サインイン ページに移動します。 このページでは、カスタム ドメイン名を指定します。
- Web ブラウザーは、カスタム ドメイン名を Azure Front Door の IP アドレスに解決します。 DNS 解決中、カスタム ドメイン名を持つ正規名 (CNAME) レコードは、Front Door の既定のフロントエンド ホスト (
contoso-frontend.azurefd.net
など) を指します。 - カスタム ドメイン (
login.contoso.com
など) に宛てられたトラフィックは、指定された Front Door の既定のフロントエンド ホスト (contoso-frontend.azurefd.net
) にルーティングされます。 - Azure Front Door は、Azure AD B2C
<tenant-name>.b2clogin.com
既定のドメインを使用して Azure AD B2C コンテンツを呼び出します。 Azure AD B2C エンドポイントへの要求には、元のカスタム ドメイン名が含まれています。 - Azure AD B2C は、関連するコンテンツと元のカスタム ドメインを表示することで、要求に応答します。
重要
ブラウザーから Azure Front Door への接続では、常に IPv6 ではなく IPv4 を使用する必要があります。
カスタム ドメインを使用する場合は、次の点を考慮してください。
- 複数のカスタム ドメインを設定できます。 サポートされているカスタム ドメインの最大数については、Azure AD B2C と Azure サブスクリプションの Microsoft Entra サービスの制限と制限 、Azure Front Door の サービス制限、クォータ、制約 に関するページを参照してください。
- Azure Front Door は別の Azure サービスであるため、追加料金が発生します。 詳細については、「 Front Door の価格」を参照してください。
- 複数のアプリケーションがある場合は、ブラウザーが現在使用されているドメイン名の下に Azure AD B2C セッションを格納するため、すべてのアプリケーションをカスタム ドメインに移行します。
- カスタム ドメインを構成しても、ユーザーは引き続き Azure AD B2C の既定のドメイン名 <テナント名>.b2clogin.com にアクセスできるようになります。 攻撃者が既定のドメインを使用してアプリにアクセスしたり、分散型サービス拒否 (DDoS) 攻撃を実行したりできないように、既定のドメインへのアクセスをブロックする必要があります。 サポート チケットを送信 して、既定のドメインへのアクセスのブロックを要求します。
警告
カスタム ドメインが正常に動作するまで、既定のドメインのブロックを要求しないでください。
[前提条件]
- ユーザーが サインアップしてアプリケーションにサインインできるように、ユーザー フローを作成します。
- Web アプリケーションを登録します。
- 「Active Directory B2C でのカスタム ポリシーの概要」の手順を完了してください。 このチュートリアルでは、Azure AD B2C テナント構成を使用するようにカスタム ポリシー ファイルを更新する方法について説明します。
- Web アプリケーションを登録します。
手順 1: Azure AD B2C テナントにカスタム ドメイン名を追加する
Azure AD B2C テナントを作成すると、初期ドメイン名 <domainname>.onmicrosoft.com が含まれます。 初期ドメイン名を変更または削除することはできませんが、独自のカスタム ドメインを追加することはできます。
Azure AD B2C テナントにカスタム ドメインを追加するには、次の手順に従います。
カスタム ドメイン名を Microsoft Entra ID に追加します。
重要
これらの手順では、 必ず Azure AD B2C テナントにサインインし、 Microsoft Entra ID サービスを選択してください。
DNS 情報をドメイン レジストラーに追加します。 カスタム ドメイン名を Microsoft Entra ID に追加したら、ドメインの DNS
TXT
またはMX
レコードを作成します。 ドメインのこの DNS レコードを作成することで、ドメイン名の所有権が検証されます。次の例では、login.contoso.com と account.contoso.com の TXT レコードを示します。
名前 (ホスト名) タイプ データ ログイン TXT MS=ms12345678 アカウント TXT MS=ms87654321 TXT レコードは、ドメインのサブドメインまたはホスト名に関連付けられている必要があります。 たとえば、contoso.com ドメインのログイン部分などです。 ホスト名が空または
@
場合、Microsoft Entra ID は追加したカスタム ドメインを確認できません。 次の例では、両方のレコードが正しく構成されていません。名前 (ホスト名) タイプ データ TXT MS=ms12345678 @ TXT MS=ms12345678 ヒント
GoDaddy など、パブリックに利用可能な DNS サービスを使用してカスタム ドメインを管理できます。 DNS サーバーがない場合は、 Azure DNS ゾーンまたは App Service ドメインを使用できます。
カスタム ドメイン名を確認します。 使用する各サブドメインまたはホスト名を確認します。 たとえば、 login.contoso.com と account.contoso.com でサインインできるようにするには、最上位ドメイン contoso.com だけでなく、両方の サブドメインを確認する必要があります。
重要
ドメインが検証されたら、作成した DNS TXT レコードを 削除します 。
手順 2: 新しい Azure Front Door インスタンスを作成する
Azure Front Door を作成するには、こちらの手順に従います。
Azure portal にサインインします。
Azure AD B2C テナントを含むディレクトリ ではなく 、Azure Front Door に使用する Azure サブスクリプションを含むディレクトリを選択するには、上部メニューの [設定] アイコンを選択し、[ ディレクトリ + サブスクリプション ] メニューから Azure AD B2C テナントに切り替えます。
次の設定を使用して、 Front Door プロファイルの作成 - 簡易作成 の手順に従って、Azure AD B2C テナントの Front Door を作成します。
鍵 価値 サブスクリプション Azure のサブスクリプションを選択します。 リソースグループ 既存のリソース グループを選択するか、新しいものを作成します。 名前 プロファイルに b2cazurefrontdoor
などの名前を付けます。レベル Standard と Premium のいずれかのレベルを選択します。 Standard レベルは、コンテンツ配信に最適化されています。 Premium レベルは、Standard レベルをベースに、セキュリティにも重点が置かれています。 階層の比較を参照してください。 エンドポイント名 グローバルに一意のエンドポイント名 ( b2cazurefrontdoor
など) を入力します。 エンドポイント ホスト名は自動的に生成されます。配信元の種類 [ Custom
] を選択します。配信元のホスト名 「 <tenant-name>.b2clogin.com
」と入力します。<tenant-name>
を、に置き換えます。キャッシュと WAF ポリシーは空のままにします。
Azure Front Door リソースが作成されたら、[ 概要] を選択し、 エンドポイントのホスト名をコピーします。 これは後で必要になります。 これは、
b2cazurefrontdoor-ab123e.z01.azurefd.net
のように表示されます。配信元の ホスト名 と 配信元のホスト ヘッダー の値が同じであることを確認します。
- [ 設定] で、[ 配信元グループ] を選択します。
- 一覧から配信元グループ ( default-origin-group など) を選択します。
- 右側のウィンドウで など
contoso.b2clogin.com
を選択します。 - [ 配信元の更新 ] ウィンドウで、 ホスト名 と 配信元のホスト ヘッダー を同じ値に更新します。
手順 3: Azure Front Door でカスタム ドメインを設定する
この手順では、 手順 1 で登録したカスタム ドメインを Azure Front Door に追加します。
3.1. CNAME DNS レコードを作成する
カスタム ドメインを追加するには、ドメイン プロバイダーで正規名 (CNAME) レコードを作成します。 CNAME レコードは、ソース ドメイン名を宛先ドメイン名 (別名) にマップする DNS レコードの一種です。 Azure Front Door の場合、ソース ドメイン名はカスタム ドメイン名、宛先ドメイン名は手順 2 で構成した Front Door の既定のホスト名です 。新しい Azure Front Door インスタンスを作成します。 たとえば、b2cazurefrontdoor-ab123e.z01.azurefd.net
のようにします。
作成した CNAME レコードが Front Door によって検証されると、ソース カスタム ドメイン ( login.contoso.com
など) に宛てられたトラフィックは、指定された宛先 Front Door の既定のフロントエンド ホスト ( contoso-frontend.azurefd.net
など) にルーティングされます。 詳細については、「 Front Door にカスタム ドメインを追加する」を参照してください。
カスタム ドメインの CNAME レコードを作成するには:
カスタム ドメインのドメイン プロバイダーの Web サイトにサインインします。
プロバイダーのドキュメントを参照するか、ドメイン名、DNS、またはネーム サーバー管理というラベルの付いた Web サイトの領域を検索して、DNS レコードを管理するためのページを見つけます。
カスタム ドメインの CNAME レコード エントリを作成し、次の表に示すようにフィールドに入力します (フィールド名は異なる場合があります)。
情報源 タイプ 行き先 <login.contoso.com>
CNAME(シー・ネーム) contoso-frontend.azurefd.net
ソース: カスタム ドメイン名 (たとえば、login.contoso.com) を入力します。
型: CNAME を入力します。
宛先: 手順 2 で作成した既定の Front Door フロントエンド ホストを入力します。 名前は、 <ホスト名> .azurefd.net の形式である必要があります。 たとえば、
contoso-frontend.azurefd.net
のようにします。
変更を保存します。
3.2. カスタム ドメインを Front Door と関連付ける
Azure portal ホームで、Azure Front Door リソース
myb2cazurefrontdoor
を検索して選択し、開きます。左側のメニューの [設定] で [ ドメイン] を選択します。
[ ドメインの追加] を選択します。
[DNS 管理] で、[その他すべての DNS サービス] を選択します。
[カスタム ドメイン] には、
login.contoso.com
などのカスタム ドメインを入力します。その他の値は既定値のままにし、[ 追加] を選択します。 入力したカスタム ドメインが一覧に追加されます。
追加したドメインの 検証状態 で、[ 保留中] を選択します。 TXT レコード情報を含むペインが開きます。
カスタム ドメインのドメイン プロバイダーの Web サイトにサインインします。
プロバイダーのドキュメントを参照するか、ドメイン名、DNS、またはネーム サーバー管理というラベルの付いた Web サイトの領域を検索して、DNS レコードを管理するためのページを見つけます。
次に示すとおりに新しい TXT DNS レコードを作成し、フィールドを完成させます。
- 名前:
_dnsauth.login.contoso.com
。ただし、_dnsauth
とだけ入力します。 - タイプ:
TXT
- 値:
75abc123t48y2qrtsz2bvk......
のようなものです。
TXT DNS レコードを追加すると、Front Door リソースの 検証状態 が最終的に [保留中] から [承認済み] に変わります。 変更を行うには、ページの再読み込みが必要になる場合があります。
- 名前:
Azure portal に戻ります。 追加したドメインの [エンドポイントの関連付け ] で、[ 関連付け解除] を選択します。
[ エンドポイントの選択] で、ドロップダウンからホスト名エンドポイントを選択します。
「ルートの選択」リストで「既定のルート」 を選択し、次に 「関連付け」 を選択します。
3.3. ルートを有効にする
既定のルートでは、クライアントから Azure Front Door にトラフィックがルーティングされます。 その後、Azure Front Door は構成を使用して Azure AD B2C にトラフィックを送信します。 次の手順に従って、既定のルートを有効にします。
Front Door マネージャーを選択します。
既定のルートを有効にするには、まず Front Door マネージャーのエンドポイントの一覧からエンドポイントを展開します。 次に、 既定のルートを選択します。
次のスクリーンショットは、既定のルートを選択する方法を示しています。
[ ルートを有効にする] チェック ボックスをオンにします。
[ 更新] を選択して変更を保存します。
手順 4: CORS を構成する
カスタム HTML テンプレートを使用して Azure AD B2C ユーザー インターフェイスをカスタマイズする場合は、カスタム ドメインで CORS を構成 する必要があります。
次の手順で、クロスオリジン リソース共有用に Azure Blob Storage を構成します。
- Azure portal のストレージ アカウントに移動します。
- メニューで [ CORS] を選択します。
-
[許可されるオリジン] には、
https://your-domain-name
を入力します。your-domain-name
をドメイン名に置き換えます。 たとえば、https://login.contoso.com
のようにします。 テナント名を入力するときは、すべて小文字を使用します。 -
[許可されるメソッド] で、
GET
とOPTIONS
の両方を選択します。 - [許可されたヘッダー] に、アスタリスク (*) を入力します。
- [公開ヘッダー] には、アスタリスク (*) を入力します。
- [最長年齢] に「200」と入力します。
- 保存 を選択します。
カスタム ドメインのテスト
Azure portal にサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
Azure portal で、 [Azure AD B2C] を検索して選択します。
[ ポリシー] で、[ ユーザー フロー (ポリシー)] を選択します。
ユーザー フローを選択し、[ ユーザー フローの実行] を選択します。
[アプリケーション] で、以前に登録した webapp1 という名前の Web アプリケーションを選択します。 応答 URL に
https://jwt.ms
が表示されます。[ ユーザー フロー エンドポイントの実行] の下の URL をコピーします。
カスタム ドメインを使用したサインインをシミュレートするには、Web ブラウザーを開き、コピーした URL を使用します。 Azure AD B2C ドメイン (<テナント名>.b2clogin.com) をカスタム ドメインに置き換えます。
たとえば、次の表記の代わりに、
https://contoso.b2clogin.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_susi&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login
を使う代わりに、
https://login.contoso.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_susi&client_id=00001111-aaaa-2222-bbbb-3333cccc4444&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login
Azure AD B2C が正しく読み込まれたことを確認します。 次に、ローカル アカウントでサインインします。
残りのポリシーでテストを繰り返します。
ID プロバイダーを構成する
ユーザーがソーシャル ID プロバイダーを使用してサインインすることを選択すると、Azure AD B2C は承認要求を開始し、選択した ID プロバイダーにユーザーを移動してサインイン プロセスを完了します。 承認要求では、Azure AD B2C の既定のドメイン名を持つ redirect_uri
を指定します。
https://<tenant-name>.b2clogin.com/<tenant-name>/oauth2/authresp
外部 ID プロバイダーによるサインインを許可するようにポリシーを構成した場合は、OAuth リダイレクト URI をカスタム ドメインで更新します。 ほとんどの ID プロバイダーでは、複数のリダイレクト URI を登録できます。 Azure AD B2C の既定のドメイン名を使用するアプリケーションに影響を与えずにカスタム ポリシーをテストできるように、リダイレクト URI を置き換える代わりに追加することをお勧めします。
次のリダイレクト URI に対して、以下を行います。
https://<custom-domain-name>/<tenant-name>/oauth2/authresp
-
<
custom-domain-name
>をカスタム ドメイン名に置き換えます。 -
<
tenant-name
>をテナントの名前またはテナント ID に置き換えます。
有効な OAuth リダイレクト URI の例を次に示します。
https://login.contoso.com/contoso.onmicrosoft.com/oauth2/authresp
SAML ID プロバイダーのメタデータは、次の例のようになります。
https://<custom-domain-name>.b2clogin.com/<tenant-name>/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
アプリケーションを設定する
カスタム ドメインを構成してテストした後、アプリケーションを更新して、Azure AD B2C ドメインではなくホスト名としてカスタム ドメインを指定する URL を読み込むことができます。
カスタム ドメイン統合は、Azure AD B2C ポリシー (ユーザー フローまたはカスタム ポリシー) を使用してユーザーを認証する認証エンドポイントに適用されます。 これらのエンドポイントは、次の例のようになります。
https://<custom-domain>/<tenant-name>/<policy-name>/v2.0/.well-known/openid-configuration
https://<custom-domain>/<tenant-name>/<policy-name>/oauth2/v2.0/authorize
https://<custom-domain>/<tenant-name>/<policy-name>/oauth2/v2.0/token
次のように置換します。
-
<
custom-domain
> カスタム ドメインを使用する -
<
tenant-name
> お客様のテナント名またはテナント ID -
<
policy-name
> をポリシー名と共に使用します。
SAML サービス プロバイダーのメタデータは、次の例のようになります。
https://custom-domain-name/tenant-name/policy-name/Samlp/metadata
(省略可能)テナント ID を使用する
URL 内の B2C テナント名をテナント ID GUID に置き換えて、URL 内の "b2c" へのすべての参照を削除できます。 テナント ID GUID は、Azure portal の B2C の [概要] ページで確認できます。
たとえば、https://account.contosobank.co.uk/contosobank.onmicrosoft.com/
を https://account.contosobank.co.uk/<tenant ID GUID>/
に変更します
テナント名の代わりにテナント ID を使用する場合は、それに応じて ID プロバイダー の OAuth リダイレクト URI を 更新してください。 テナント名の代わりにテナント ID を使用する場合、有効な OAuth リダイレクト URI は次の例のようになります。
https://login.contoso.com/11111111-1111-1111-1111-111111111111/oauth2/authresp
詳細については、「 ID プロバイダーの構成」を参照してください。
トークンの発行
トークン発行者名 (iss) 要求は、使用されているカスタム ドメインに基づいて変更されます。 例えば次が挙げられます。
https://<domain-name>/11111111-1111-1111-1111-111111111111/v2.0/
(省略可能) Azure Front Door の高度な構成
Azure Web Application Firewall (WAF) などの Azure Front Door の高度な構成を使用できます。 Azure WAF では、一般的な悪用や脆弱性からの Web アプリケーションの一元的な保護が提供されます。
カスタム ドメインを使用するときは、次の点を考慮してください。
- WAF ポリシーは、Azure Front Door プロファイルと同じレベルに配置する必要があります。 Azure Front Door で使用する WAF ポリシーを作成する方法の詳細については、「 WAF ポリシーの構成」を参照してください。
- WAF で管理される規則の機能は、擬陽性を引き起こし、正当な要求の通過を妨げる可能性があるため、公式にはサポートされていません。したがって、WAF カスタム規則を使用するのは、必要な場合のみにしてください。
トラブルシューティング
Azure AD B2C がページが見つからないエラーを返す
- 現象 - カスタム ドメインを構成しますが、カスタム ドメインでサインインしようとすると、HTTP 404 エラー メッセージが表示されます。
- 考えられる原因 - この問題は、DNS 構成または Azure Front Door バックエンド構成に関連している可能性があります。
-
解決方法:
- カスタム ドメインが Azure AD B2C テナントに 登録され、正常に検証されていることを 確認します。
-
カスタム ドメインが正しく構成されていることを確認します。 カスタム ドメインの
CNAME
レコードは、Azure Front Door の既定のフロントエンド ホスト (例: contoso-frontend.azurefd.net) をポイントしていなければなりません。
現在、Microsoft のサービスは利用できません
現象 - カスタム ドメインを構成しますが、カスタム ドメインでサインインしようとすると、次のエラー メッセージが 表示されます。すべてのサービスをできるだけ早く復元できるように取り組んでいます。しばらくお待ちください。
考えられる原因 - この問題は、Azure Front Door ルートの構成に関連している可能性があります。
解決策: 既定のルートの状態を確認します。 無効になっている場合は、 ルートを有効にします。 次のスクリーンショットは、既定のルートの外観を示しています。
Azure AD B2C は、探しているリソースが削除されたか、名前が変更されたか、または一時的に使用できなくなったことを返します。
- 現象 - カスタム ドメインを構成しますが、カスタム ドメインでサインインしようとすると、 探しているリソースが削除されたか、名前が変更されたか、一時的に使用できない エラー メッセージが表示されます。
- 考えられる原因 - この問題は、Microsoft Entra カスタム ドメイン検証に関連している可能性があります。
- 解決策: カスタム ドメインが Azure AD B2C テナントに登録され、正常に検証されていることを確認します。
ID プロバイダーからエラーが返される
- 現象 - カスタム ドメインを構成すると、ローカル アカウントでサインインできるようになります。 ただし、外部 のソーシャル ID プロバイダーまたはエンタープライズ ID プロバイダーの資格情報を使用してサインインすると、ID プロバイダーにエラー メッセージが表示されます。
- 考えられる原因 - Azure AD B2C がユーザーをフェデレーション ID プロバイダーでサインインさせると、リダイレクト URI が指定されます。 リダイレクト URI は、ID プロバイダーがトークンを返すエンドポイントです。 リダイレクト URI は、アプリケーションが承認要求で使用するドメインと同じです。 リダイレクト URI がまだ ID プロバイダーに登録されていない場合は、新しいリダイレクト URI を信頼できない可能性があり、エラー メッセージが表示されます。
- 解決策 - ID プロバイダーを構成 して新しいリダイレクト URI を追加する手順に従います。
よく寄せられる質問
[今すぐ実行] を使用してポリシーを実行しようとすると、カスタム ドメインが表示されないのはなぜですか?
URL をコピーし、ドメイン名を手動で変更してから、ブラウザーに貼り付けます。
Azure AD B2C に表示される IP アドレスはどれですか? ユーザーの IP アドレスか、Azure Front Door の IP アドレスか。
Azure Front Door は、ユーザーの元の IP アドレスを渡します。 これは、監査レポートまたはカスタム ポリシーに表示される IP アドレスです。
重要
クライアントが x-forwarded-for
ヘッダーを Azure Front Door に送信する場合、Azure AD B2C は、x-forwarded-for
と{Context:IPAddress}
のユーザーの IP アドレスとして発信者のを使用します。
B2C でサードパーティの Web アプリケーション ファイアウォール (WAF) を使用できますか?
はい。Azure AD B2C では、BYO-WAF (Bring Your Own Web Application Firewall) がサポートされています。 ただし、WAF をテストして、Azure AD B2C ユーザー フローまたはカスタム ポリシーに対する正当な要求がブロックまたはアラートされないようにする必要があります。 Azure AD B2C で Akamai WAF と Cloudflare WAF を 構成する方法について説明します。
Azure Front Door インスタンスは、Azure AD B2C テナントとは異なるサブスクリプションでホストできますか?
はい。Azure Front Door は別のサブスクリプションに含めることができます。
関連コンテンツ
- OAuth 承認要求について説明します。
- OpenID Connect 承認要求について説明します。
- 承認コード フローについて説明します。