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>
を使用します。
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 の制約にあります。
SupportMultipleDomain パラメーター
この制約を回避するには、別の IssuerUri を追加する必要があります。これは -SupportMultipleDomain
パラメーターを使用して実行できます。 このパラメーターは以下のコマンドレットで使用します。
New-MsolFederatedDomain
Convert-MsolDomaintoFederated
Update-MsolFederatedDomain
このパラメーターを使用すると、Microsoft Entra ID で IssuerUri がドメイン名に基づくように構成されます。 IssuerUri は Microsoft Entra ID 内のディレクトリ間で一意になります。 このパラメーターを指定することで、PowerShell コマンドが正常に実行されます。
-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
を実行してみても、エラーが生じます。
下記の手順で、もう 1 つのトップレベル ドメインを追加します。 既にドメインを 1 つ、-SupportMultipleDomain
パラメーターを使わずに追加している場合は、最初に元のドメインを削除して更新します。 トップレベル ドメインをまだ追加していない場合は、Microsoft Entra Connect の PowerShell を使用してドメインを追加することから始めます。
以下の手順で、Microsoft Online の信頼を削除し、元のドメインを更新します。
- AD FS フェデレーション サーバーで、 AD FS 管理を開きます。
- 左側で、[信頼関係]と[証明書利用者の信頼] を展開します。
- 右側で、 [Microsoft Office 365 ID プラットフォーム] エントリを削除します。
- Azure AD PowerShell モジュールをインストールしているマシンで、次の PowerShell を実行します:
$cred=Get-Credential
。 - フェデレーションの対象である Microsoft Entra ドメインのハイブリッド ID 管理者のユーザー名とパスワードを入力します
- PowerShell で、
Connect-MsolService -Credential $cred
を実行します。 - PowerShell で、
Update-MSOLFederatedDomain -DomainName <Federated Domain Name> -SupportMultipleDomain
を実行します。 この更新は元のドメインに対するコマンドです。 上記のドメインを使用するので、次のようになります:Update-MsolFederatedDomain -DomainName bmcontoso.com -SupportMultipleDomain
次の手順で、PowerShell を使用して新しいトップレベル ドメインを追加します。
- Azure AD PowerShell モジュールをインストールしているマシンで、次の PowerShell を実行します:
$cred=Get-Credential
。 - フェデレーションの対象である Microsoft Entra ドメインのハイブリッド ID 管理者のユーザー名とパスワードを入力します
- PowerShell で、
Connect-MsolService -Credential $cred
を入力します - PowerShell で、
New-MsolFederatedDomain –SupportMultipleDomain –DomainName
次の手順で、Microsoft Entra Connect を使用して新しいトップレベル ドメインを追加します。
- デスクトップまたは [スタート] メニューから、Microsoft Entra Connect を起動します。
- [Add an additional Microsoft Entra Domain](Microsoft Entra ドメインを追加します) を選択します。
- Microsoft Entra ID と Active Directory の資格情報を入力します。
- フェデレーションを構成する 2 つ目のドメインを選択します。
- [インストール] をクリックします。
新しいトップレベル ドメインの確認
PowerShell コマンド Get-MsolDomainFederationSettings -DomainName <your domain>
を使用して、更新された IssuerUri を確認できます。 下のスクリーンショットは、元のドメイン http://bmcontoso.com/adfs/services/trust
でフェデレーション設定が更新されたことを示しています。
また、新しいドメインの IssuerUri として、https://bmcontoso.com/adfs/services/trust
が設定されています。
サブドメインのサポート
サブドメインの追加では、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)。
以下の手順に従い、サブドメインをサポートするためのカスタム要求を追加します。
- AD FS 管理を開きます。
- [Microsoft Online RP 信頼] を右クリックして、[要求規則の編集] を選択します。
- 3 番目の要求規則を選択し、置き換えます。
- 現在の要求:
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/"));
- [OK] をクリックします。 [適用] をクリックします。 [OK] をクリックします。 AD FS 管理を閉じます。
次のステップ
Microsoft Entra Connect がインストールされたので、インストールを確認し、ライセンスを割り当てることができます。
インストールの結果有効になった機能については、自動アップグレード、誤った削除操作を防止する機能、Microsoft Entra Connect Health に関する各ページを参照してください。
一般的なトピックについては、スケジューラの使用と同期のトリガー方法に関するページを参照してください。
オンプレミス ID と Microsoft Entra ID の統合についての詳細情報を参照してください。