アプリケーションのホーム領域検出

ホーム領域検出 (HRD) は、ユーザーがサインイン時にどの ID プロバイダー (IDP) に対して認証する必要があるかを Microsoft Entra ID で決定できるようにするプロセスです。 ユーザーは、Microsoft Entra テナントにサインインしてリソース (または Microsoft Entra の共通サインイン ページ) にアクセスするとき、ユーザー名 (UPN) を入力します。 Microsoft Entra ID はそれを使用して、ユーザーがどこにサインインする必要があるかを決定します。

ユーザーは、認証を受けるため、以下のいずれかの ID プロバイダーに移動されます。

  • ユーザーのホーム テナント (ユーザーがアクセスしようとしているリソースと同じテナントである可能性があります)。

  • Microsoft アカウント。 ユーザーは、認証にコンシューマー アカウントを使用するリソース テナント内のゲストです。

  • Active Directory フェデレーション サービス (AD FS) など、オンプレミスの ID プロバイダー。

  • Microsoft Entra テナントとフェデレーションされた別の ID プロバイダー。

自動高速化

一部の組織では、その Microsoft Entra テナント内のドメインを別の IdP (ユーザー認証用の AD FS など) とフェデレーションするように構成します。

ユーザーがアプリケーションにサインインすると、最初に Microsoft Entra のサインイン ページが表示されます。 UPN を入力した後、フェデレーション ドメイン内にいると、そのドメインにサービスを提供している IdP のサインイン ページが表示されます。 状況によっては、管理者は特定のアプリケーションにサインインしたユーザーに対してサインイン ページを表示したい場合があります。

その結果、ユーザーは最初の Microsoft Entra ID ページをスキップできます。 このプロセスは、「サインイン自動高速化」と呼ばれます。FIDO などのより強力な認証方法を使用できない可能性があり、コラボレーションの妨げとなるため、Microsoft では自動高速化を構成することはもはやお勧めしていません。 自動高速化を構成しない利点については、「パスワードなしセキュリティ キーのサインインを有効にする」を参照してください。 サインインの自動高速化を防止する方法については、「自動高速化サインインを無効にする」を参照してください。

テナントがサインイン用の別の IdP にフェデレーションされている場合、自動高速化によりユーザー サインインがいっそう効率化されます。 自動高速化は個々 のアプリケーションに対して構成できます。 HRD を使用して自動高速化を強制する方法については、「自動高速化の構成」を参照してください。

注意

自動高速化のためにアプリケーションを構成する場合、ユーザーは管理された資格情報 (FIDO など) を使用できず、ゲスト ユーザーはサインインできません。 ユーザーが認証のためにフェデレーション IdP に直接アクセスした場合、そのユーザーが Microsoft Entra サインイン ページに戻ることはできません。 ゲスト ユーザーは、他のテナントや Microsoft アカウントなどの外部の IdP に移動されなければならない場合があり、HRD の手順がスキップされるため、そのアプリケーションにサインインすることはできません。

フェデレーション IdP に対する自動高速化を制御する方法は 3 つあります。

[ドメインの確認] ダイアログ

2023 年 4 月以降、自動高速化またはスマートリンクを使用する組織では、サインイン UI に追加された新しい画面が表示される可能性があります。 [ドメインの確認] ダイアログと呼ばれるこの画面は、セキュリティ強化に対する Microsoft の一般的なコミットメントの一部であり、ユーザーはサインイン先のテナントのドメインを確認する必要があります。 [ドメインの確認] ダイアログが表示されたが、一覧されたテナント ドメインを承認できない場合は、認証フローをキャンセルし、IT 管理者にお問い合わせください (該当する場合)。 [ドメインの確認] ダイアログの表示例を次に示します。

Screenshot of the domain confirmation dialog listing the sign-in identifier '<kelly@contoso.com>' with a tenant domain of 'contoso.com'.

ダイアログの上部にある識別子 (kelly@contoso.com) は、サインインに使用する識別子を表します。 ダイアログのヘッダーおよびサブヘッダーにリストされているテナント ドメインは、アカウントのホーム テナントのドメインを表示しています。

自動高速化またはスマート リンクのすべてのインスタンスに対して [ドメインの確認] ダイアログを表示する必要はありませんが、[ドメインの確認] ダイアログが表示されると、自動高速化とスマート リンクをシームレスに続行できなくなります。 ブラウザー ポリシーなどの理由で組織が Cookie をクリアした場合、[ドメインの確認] ダイアログが頻繁に表示されることがあります。 最後に、Microsoft Entra ID で自動高速化サインイン フローをエンドツーエンドで管理する場合、[ドメインの確認] ダイアログを導入しても、アプリケーションが破損することはありません。

さらに、テナント制限 v2 (TRv2) ポリシーを構成することで、ドメイン確認ダイアログを抑制できます。 TRv2 ポリシーは、ドメイン確認ダイアログと同じセキュリティ態勢を実現するため、TRv2 ポリシー ヘッダーが要求に存在する場合、ドメイン確認ダイアログは抑制されます。

ドメイン ヒント

ドメイン ヒントは、アプリケーションからの認証要求に含まれるディレクティブです。 ドメイン ヒントを使用して、ユーザーのフェデレーション IdP サインイン ページへの移動を高速化できます。 マルチテナント アプリケーションでもそれらを使用すれば、ユーザーが自分のテナント用にブランディングされた Microsoft Entra サインイン ページをすぐに表示することができます。

たとえば、"largeapp.com" というアプリケーションがあり、顧客が "contoso.largeapp.com" というカスタム URL でアプリケーションにアクセスできる場合は、認証要求に contoso.com へのドメイン ヒントが含まれている可能性があります。

ドメイン ヒントの構文は、使用されているプロトコルによって異なり、通常は次の方法によってアプリケーションで構成されます。

  • WS-Federation: whr クエリ文字列パラメーターを使用するアプリケーションの場合。 たとえば、whr=contoso.com とします。

  • SAML を使用するアプリケーションの場合: ドメイン ヒントを含む SAML 認証要求か、またはクエリ文字列 whr=contoso.com のどちらか。

  • Open ID Connect: domain_hint クエリ文字列パラメーターを使用するアプリケーションの場合。 たとえば、domain_hint=contoso.com とします。

既定では、次の両方に当てはまる場合、Microsoft Entra ID はドメインに対して構成されている IDP へのサインインのリダイレクトを試みます。

  • アプリケーションからの認証要求にドメイン ヒントが含まれていて、さらに
  • そのドメインとテナントがフェデレーションされている。

ドメイン ヒントが確認済みのフェデレーション ドメインを参照していない場合、ドメイン ヒントは無視されます。

Note

認証要求にドメイン ヒントが含まれていて、優先する必要がある場合、そのドメイン ヒントにより、HRD ポリシー内でアプリケーションに対して設定されている自動高速化がオーバーライドされます。

自動高速化のための HRD ポリシー

アプリケーションで、出力される認証要求を構成する手段が提供されていない場合があります。 そのような場合は、ドメイン ヒントを使って自動高速化を制御することはできません。 自動高速化をホーム領域検出ポリシーによって構成して、同じ動作を実現できます。

自動高速化を防止する HRD ポリシー

一部の Microsoft アプリケーションや SaaS アプリケーションには、自動的に domain_hints が含められます (たとえば https://outlook.com/contoso.com は、&domain_hint=contoso.com が追加されたログイン要求になります)。これによって、FIDO などの管理された資格情報のロールアウトが中断される可能性があります。 管理された資格情報のロールアウト中に、ホーム領域検出ポリシーを使用して、特定のアプリまたは特定のドメインのドメイン ヒントを無視できます。

レガシ アプリケーションに対するフェデレーション ユーザーの直接 ROPC 認証を有効にする

アプリケーションで Microsoft Entra ライブラリと対話型サインインを使用してユーザーを認証することがベスト プラクティスです。 ライブラリは、フェデレーション ユーザーのフローを処理します。 レガシ アプリケーションの中でも特にリソース所有者のパスワード資格情報 (ROPC) 付与を使用するアプリケーションは、ユーザー名とパスワードを Microsoft Entra ID に直接送信するため、フェデレーションを理解するようには書き込まれない場合があります。 これらは HRD を実行せず、正しいフェデレーション エンドポイントと連携してユーザーを認証することも行いません。 必要であれば、ホーム領域検出ポリシーを使用して、ROPC 許可を使用してユーザー名とパスワード資格情報を送信する特定のレガシ アプリケーションが Microsoft Entra ID に対して直接認証するようにできます。パスワード ハッシュの同期が有効になっている必要があります。

重要

直接認証を有効にするのは、パスワード ハッシュ同期がオンであり、なおかつオンプレミス IdP でポリシーを実装せずにこのアプリケーションを認証しても問題ないことがわかっている場合のみにしてください。 何らかの理由でパスワード ハッシュ同期をオフにした場合、または AD Connect によるディレクトリ同期をオフにした場合は、このポリシーを削除し、古いパスワード ハッシュを使用して直接認証が行われないようにしてください。

HRD ポリシーを設定する

フェデレーション サインイン自動高速化用のアプリケーション、または直接的なクラウドベース アプリケーションに対して HRD ポリシーを設定するには、以下の 3 つのステップを実行します。

  1. HRD ポリシーを作成します。

  2. ポリシーをアタッチするサービス プリンシパルを探します。

  3. サービス プリンシパルにポリシーをアタッチします。

ポリシーは、サービス プリンシパルにアタッチされてはじめて、特定のアプリケーションに対して有効になります。

サービス プリンシパル上でアクティブにできる HRD ポリシーは、一度に 1 つだけです。

Microsoft Graph PowerShell コマンドレットを使用して、HRD ポリシーを作成および管理できます。

JSON オブジェクトは、HRD ポリシーの定義の一例です。

{  
  "HomeRealmDiscoveryPolicy":
  {  
    "AccelerateToFederatedDomain":true,
    "PreferredDomain":"federated.example.edu",
    "AllowCloudPasswordValidation":false
  }
}

ポリシーの種類は、"HomeRealmDiscoveryPolicy" です。

AccelerateToFederatedDomain は、省略可能です。 AccelerateToFederatedDomain が false の場合、ポリシーが自動高速化に影響を与えることはありません。 AccelerateToFederatedDomain が true で、テナント内に検証およびフェデレーションされたドメインが 1 つのみある場合、ユーザーはフェデレーション IdP に直接移動してサインインすることができます。 この値が true で、テナント内に検証されたドメインが複数ある場合は、PreferredDomain を指定する必要があります。

PreferredDomain は、省略可能です。 PreferredDomain では、高速化するドメインを指定する必要があります。 テナントのフェデレーション ドメインが 1 つだけの場合は、これを省略できます。 これを省略した場合で、確認済みのフェデレーション ドメインが複数ある場合には、ポリシーは無効になります。

PreferredDomain を指定する場合は、テナントの検証済みのフェデレーション ドメインと一致している必要があります。 アプリケーションのすべてのユーザーがそのドメインにサインインできる必要があります。フェデレーション ドメインでサインインできないユーザーは、トラップされてサインインを完了できません。

AllowCloudPasswordValidation は、省略可能です。 AllowCloudPasswordValidation が true の場合、アプリケーションは、Microsoft Entra トークン エンドポイントに対して直接ユーザー名とパスワードの資格情報を提示することにより、フェデレーション ユーザーを認証できます。 これが機能するのは、パスワード ハッシュ同期が有効の場合に限られます。

さらに、上に示されていないテナント レベルの HRD オプションが 2 つ存在します。

HRD ポリシーの優先順位と評価

HRD ポリシーを作成し、特定の組織およびサービス プリンシパルに割り当てることができます。 これは、特定のアプリケーションに複数のポリシーを適用できることを意味するため、Microsoft Entra ID で、どのポリシーを優先するかを決定する必要があります。 一連の規則によって、(適用される多くのポリシーのうち) どの HRD ポリシー が有効になるかが決定されます。

  • 認証要求内にドメイン ヒントがある場合は、テナントに対する HRD ポリシー (テナントの既定値として設定されているポリシー) がチェックされ、ドメイン ヒントを無視する必要があるかどうかが確認されます。 ドメイン ヒントが許可されている場合は、ドメイン ヒントによって指定されてている動作が使用されます。

  • その他の場合、ポリシーがサービス プリンシパルに明示的に割り当てられていれば、そのポリシーが適用されます。

  • ドメイン ヒントが存在せず、サービス プリンシパルに明示的に割り当てられているポリシーがない場合は、サービス プリンシパルの親組織に明示的に割り当てられているポリシーが適用されます。

  • ドメイン ヒントが存在せず、サービス プリンシパルまたは組織にポリシーが割り当てられていない場合は、デフォルトの HRD 動作が使用されます。

次のステップ