Microsoft Entra ID とのフェデレーションに使用する複数ドメインのサポート

ここでは、Microsoft 365 または Microsoft Entra のドメインとのフェデレーション時に、複数のトップレベル ドメインとサブドメインを使用する方法について説明します。

複数のトップレベル ドメインのサポート

複数のトップレベル ドメインと Microsoft Entra ID のフェデレーションを行うには、単一のトップレベル ドメインを使用するフェデレーションでは行う必要のない構成を、いくつか追加で実施する必要があります。

単一のドメインと Microsoft Entra のフェデレーションを行う場合は、Azure でそのドメインに関する複数のプロパティが設定されます。 重要なプロパティの 1 つは IssuerUri です。 これは、トークンが関連付けられているドメインを識別するために Microsoft Entra で使われる URI です。 この URI は解決される必要はありませんが、有効な URI である必要があります。 既定では、Microsoft Entra ID により、オンプレミス AD FS 構成内のフェデレーション サービス識別子の値に URI が設定されます。

Note

フェデレーション サービス識別子は、フェデレーション サービスを一意に識別する URI です。 フェデレーション サービスは、セキュリティ トークン サービスとして機能する AD FS のインスタンスです。

IssuerUri を表示するには、PowerShell コマンド Get-MsolDomainFederationSettings -DomainName <your domain> を使用します。

PowerShell で

Note

Azure AD および MSOnline PowerShell モジュールは、2024 年 3 月 30 日の時点で非推奨となります。 詳細については、非推奨の最新情報を参照してください。 この日以降、これらのモジュールのサポートは、Microsoft Graph PowerShell SDK への移行支援とセキュリティ修正プログラムに限定されます。 非推奨になるモジュールは、2025 年 3 月 30 日まで引き続き機能します。

Microsoft Entra ID (旧称 Azure AD) を使用するには、Microsoft Graph PowerShell に移行することをお勧めします。 移行に関する一般的な質問については、「移行に関する FAQ」を参照してください。 注: バージョン 1.0.x の MSOnline では、2024 年 6 月 30 日以降に中断が発生する可能性があります。

複数のトップレベル ドメインを追加しようとすると、問題が生じます。 たとえば、Microsoft Entra とオンプレミス環境の間でフェデレーションを設定しているとします。 このドキュメントでは、ドメインとして bmcontoso.com が使用されています。 ここでは、2 番目のトップレベル ドメインとして bmfabrikam.com が追加されています。

複数のトップレベル ドメインのスクリーンショット

bmfabrikam.com ドメインを変換してフェデレーションしようとすると、エラーが発生します。 その原因は、IssuerUri プロパティで複数のドメインに同じ値を設定できないという Microsoft Entra の制約にあります。

PowerShell でのフェデレーション エラーを示すスクリーンショット。

SupportMultipleDomain パラメーター

この制約を回避するには、別の IssuerUri を追加する必要があります。これは -SupportMultipleDomain パラメーターを使用して実行できます。 このパラメーターは以下のコマンドレットで使用します。

  • New-MsolFederatedDomain
  • Convert-MsolDomaintoFederated
  • Update-MsolFederatedDomain

このパラメーターを使用すると、Microsoft Entra ID で IssuerUri がドメイン名に基づくように構成されます。 IssuerUri は Microsoft Entra ID 内のディレクトリ間で一意になります。 このパラメーターを指定することで、PowerShell コマンドが正常に実行されます。

PowerShell コマンドが正常に完了したことを示すスクリーンショット。

bmfabrikam.com ドメインのスクリーンショットを見ると、以下の設定を確認できます。

-SupportMultipleDomain は、adfs.bmcontoso.com 上のフェデレーション サービスをポイントするように構成されている他のエンドポイントを変更しません。

-SupportMultipleDomain を使用すると、AD FS システムが Microsoft Entra ID 用に発行するトークンに、適切な発行者の値を確実に含めることもできます。 この値は、ユーザーの UPN のドメイン部分を取得し、それを IssuerUri のドメインとして使用することによって設定されます。つまり、https://{upn suffix}/adfs/services/trust です。

そのため、Microsoft Entra ID または Microsoft 365 に対する認証中に、ユーザーのトークンに含まれる IssuerUri 要素を使用して、Microsoft Entra ID 内のドメインが特定されます。 一致するものが見つからなければ、認証は失敗します。

たとえば、ユーザーの UPN が bsimon@bmcontoso.com である場合、トークンの IssuerUri 要素、つまり AD FS 発行者は http://bmcontoso.com/adfs/services/trust に設定されます。 この要素は Microsoft Entra の構成と一致し、認証は成功します。

次のカスタマイズ済みの要求規則はこのロジックを実装するものです。

c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)", "http://${domain}/adfs/services/trust/"));

重要

新しいドメインを追加する際や既存のドメインを変換する際に -SupportMultipleDomain スイッチを使用するには、あらかじめそれらのドメインをサポートするためにフェデレーションによる信頼を設定しておく必要があります。

AD FS と Microsoft Entra ID の間の信頼を更新するには

AD FS と Microsoft Entra ID インスタンスとの間でフェデレーションによる信頼を設定していない場合には、改めてこの信頼の作成が必要になる場合があります。 これは、-SupportMultipleDomain パラメーターを使わずに設定すると、IssuerUri が既定値で設定されるためです。 下記のスクリーンショットでは、IssuerUri が https://adfs.bmcontoso.com/adfs/services/trust に設定されていることがわかります。

Microsoft Entra 管理センターに新しいドメインを正常に追加した後、Convert-MsolDomaintoFederated -DomainName <your domain> を使ってドメインを変換しようとすると、次のエラーが発生します。

そこで、-SupportMultipleDomain スイッチを追加して試してみると、次のエラーが発生します。

単純に元のドメインで Update-MsolFederatedDomain -DomainName <your domain> -SupportMultipleDomain を実行してみても、エラーが生じます。

Federation error

下記の手順で、もう 1 つのトップレベル ドメインを追加します。 既にドメインを 1 つ、-SupportMultipleDomain パラメーターを使わずに追加している場合は、最初に元のドメインを削除して更新します。 トップレベル ドメインをまだ追加していない場合は、Microsoft Entra Connect の PowerShell を使用してドメインを追加することから始めます。

以下の手順で、Microsoft Online の信頼を削除し、元のドメインを更新します。

  1. AD FS フェデレーション サーバーで、 AD FS 管理を開きます。
  2. 左側で、[信頼関係][証明書利用者の信頼] を展開します。
  3. 右側で、 [Microsoft Office 365 ID プラットフォーム] エントリを削除します。 Microsoft オンラインの削除
  4. Azure AD PowerShell モジュールをインストールしているマシンで、次の PowerShell を実行します: $cred=Get-Credential
  5. フェデレーションの対象である Microsoft Entra ドメインのハイブリッド ID 管理者のユーザー名とパスワードを入力します。
  6. PowerShell で、Connect-MsolService -Credential $cred を実行します。
  7. PowerShell で、Update-MSOLFederatedDomain -DomainName <Federated Domain Name> -SupportMultipleDomain を実行します。 この更新は元のドメインに対するコマンドです。 上記のドメインを使用するので、次のようになります: Update-MsolFederatedDomain -DomainName bmcontoso.com -SupportMultipleDomain

次の手順で、PowerShell を使用して新しいトップレベル ドメインを追加します。

  1. Azure AD PowerShell モジュールをインストールしているマシンで、次の PowerShell を実行します: $cred=Get-Credential
  2. フェデレーションの対象である Microsoft Entra ドメインのハイブリッド ID 管理者のユーザー名とパスワードを入力します
  3. PowerShell で、Connect-MsolService -Credential $cred
  4. PowerShell で、New-MsolFederatedDomain –SupportMultipleDomain –DomainName

次の手順で、Microsoft Entra Connect を使用して新しいトップレベル ドメインを追加します。

  1. デスクトップまたは [スタート] メニューから、Microsoft Entra Connect を起動します。
  2. [Add an additional Microsoft Entra Domain](Microsoft Entra ドメインを追加します) を選択します。[Add an additional Microsoft Entra domain]\(Microsoft Entra ドメインを追加します\) が選択された [追加タスク] ページを示すスクリーンショット。
  3. Microsoft Entra ID と Active Directory の資格情報を入力します。
  4. フェデレーションを構成する 2 つ目のドメインを選択します。 その他の Microsoft Entra ドメインを追加する
  5. [インストール] をクリックします。

新しいトップレベル ドメインの確認

PowerShell コマンド Get-MsolDomainFederationSettings -DomainName <your domain>を使用して、更新された IssuerUri を確認できます。 下のスクリーンショットは、元のドメイン http://bmcontoso.com/adfs/services/trust でフェデレーション設定が更新されたことを示しています。

元のドメインでフェデレーション設定が更新されたことを示すスクリーンショット。

また、新しいドメインの IssuerUri として、https://bmcontoso.com/adfs/services/trust が設定されています。

Get-MsolDomainFederationSettings

サブドメインのサポート

サブドメインの追加では、Microsoft Entra ID がドメインを処理する方法のために、親の設定を継承します。 そのため、IssuerUri は親に一致させる必要があります。

たとえば、bmcontoso.com を運用している状況で、corp.bmcontoso.com を追加するとします。 この場合、corp.bmcontoso.com に属するユーザーの IssuerUri は、 http://bmcontoso.com/adfs/services/trust とする必要があります。 しかし、上で Microsoft Entra ID に適用した標準ルールでは、発行者を http://corp.bmcontoso.com/adfs/services/trust としてトークンが生成されます。 としてトークンを生成するので、ドメインに必要な値と一致せず、認証に失敗します。

サブドメインのサポートを有効にする方法

この動作を回避するには、Microsoft Online 用 AD FS 証明書利用者の信頼を更新する必要があります。 そのためには、カスタム Issuer 値の構築時にユーザーの UPN サフィックスからサブドメインを削除するよう、カスタム要求規則を構成する必要があります。

次の要求を使用します。

c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));

[!注] 正規表現セットの最後の数字は、ルート ドメインにある親ドメインの数です。 ここでは bmcontoso.com が使用されているので、2 つの親ドメインが必要です。 3 つの親ドメインを保持する (つまり corp.bmcontoso.com) 場合、この数字は 3 になります。 範囲を指示できますが、常にドメインの最大数と一致させるための突き合わせが行われます。 "{2,3}" は、2 から 3 つのドメインと一致します (つまり、bmfabrikam.com と corp.bmcontoso.com)。

以下の手順に従い、サブドメインをサポートするためのカスタム要求を追加します。

  1. AD FS 管理を開きます。

  2. [Microsoft Online RP 信頼] を右クリックして、[要求規則の編集] を選択します。

  3. 3 番目の要求規則を選択し、置き換えます。[Edit claim]\(要求の編集\)

  4. 現在の要求:

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)","http://${domain}/adfs/services/trust/"));
    

    with

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));
    

    Replace claim

  5. [OK] をクリックします。 [適用] をクリックします。 [OK] をクリックします。 AD FS 管理を閉じます。

次のステップ

Microsoft Entra Connect がインストールされたので、インストールを確認し、ライセンスを割り当てることができます。

インストールの結果有効になった機能については、自動アップグレード誤った削除操作を防止する機能Microsoft Entra Connect Health に関する各ページを参照してください。

一般的なトピックについては、スケジューラの使用と同期のトリガー方法に関するページを参照してください。

オンプレミス ID と Microsoft Entra ID の統合についての詳細情報を参照してください。