ルート ドメインが Microsoft Entra ID の一部である Azure Active Directory (Azure AD) に追加されると、Microsoft Entra ID 組織内のそのルートに追加された後続のすべてのサブドメインは、ルート ドメインから認証設定を自動的に継承します。 ただし、ルート ドメイン設定とは別にドメイン認証設定を管理する場合は、現在、Microsoft Graph API を使用できます。 たとえば、フェデレーション ルート ドメイン (contoso.com など) がある場合、この記事を参照すると、child.contoso.com などのサブドメインをフェデレーションではなくマネージドとして検証するために役立てることができます。
Azure portal で、親ドメインがフェデレーションされていて、管理者が [カスタム ドメイン名 ] ページでマネージド サブドメインの検証を試みると、"1 つ以上のプロパティに無効な値が含まれています" という理由で "ドメインの追加に失敗しました" というエラーが表示されます。Microsoft 365 管理センターからこのサブドメインを追加しようとすると、同様のエラーが表示されます。 エラーの詳細については、「 子ドメインが Office 365、Azure、または Intune で親ドメインの変更を継承しない」を参照してください。
サブドメインは既定でルート ドメインの認証の種類を継承するため、Microsoft Graph を使用してサブドメインを Microsoft Entra ID のルート ドメインに昇格させる必要があります。これにより、認証の種類を目的の種類に設定できます。
警告
この小さなスクリプトは、デモンストレーションを目的とした例です。 環境内で使用する場合は、最初にテストします。 要件を満たすようにコードを調整する必要があります。
サブドメインを追加する
- PowerShell を使用して、ルート ドメインの既定の認証の種類を持つ新しいサブドメインを追加します。 Microsoft Entra ID および Microsoft 365 管理センターでは、この操作はまだサポートされていません。
# Connect to Microsoft Graph with the required scopes
Connect-MgGraph -Scopes "Domain.ReadWrite.All"
# Define the parameters for the new domain
$domainParams = @{
Id = "child6.mydomain.com"
AuthenticationType = "Federated"
}
# Create a new domain with the specified parameters
New-MgDomain @domainParams
- ドメインを取得するには、次の例を使用します。 ドメインはルート ドメインではないため、ルート ドメインの認証の種類を継承します。 コマンドと結果は次のようになります。独自のテナント ID を使用しています。
注
この要求の発行は 、Graph エクスプローラーで直接実行できます。
GET https://graph.microsoft.com/v1.0/domains/foo.contoso.com/
Return:
{
"authenticationType": "Federated",
"availabilityStatus": null,
"isAdminManaged": true,
"isDefault": false,
"isDefaultForCloudRedirections": false,
"isInitial": false,
"isRoot": false, <---------------- Not a root domain, so it inherits parent domain's authentication type (federated)
"isVerified": true,
"name": "child.mydomain.com",
"supportedServices": [],
"forceDeleteState": null,
"state": null,
"passwordValidityPeriodInDays": null,
"passwordNotificationWindowInDays": null
},
サブドメインをルート ドメインに変更する
次のコマンドを使用して、サブドメインを昇格します。
POST https://graph.microsoft.com/v1.0/{tenant-id}/domains/foo.contoso.com/promote
コマンド エラー条件の昇格
シナリオ | メソッド | コード | メッセージ |
---|---|---|---|
親ドメインが検証されていないサブドメインを使用して API を呼び出す | POST | 400 | 未検証のドメインは昇格できません。 昇格する前にドメインを確認します。 |
フェデレーション検証済みサブドメインとユーザー参照を使用して API を呼び出す | POST | 400 | ユーザー参照を使用してサブドメインを昇格することはできません。 サブドメインを昇格する前に、ユーザーを現在のルート ドメインに移行します。 |
サブドメイン認証の種類をマネージドに変更する
重要
フェデレーション サブドメインの認証の種類を変更する場合は、次の手順を完了する前に、既存のフェデレーション構成値をメモしておく必要があります。 ドメインを昇格する前にフェデレーションを再実装する場合は、この情報が必要です。
次のコマンドを使用して、サブドメインの認証の種類を変更します。
Connect-MGGraph -Scopes "Domain.ReadWrite.All", "Directory.AccessAsUser.All" Update-MgDomain -DomainId "test.contoso.com" -BodyParameter @{AuthenticationType="Managed"}
Microsoft Graph API で GET を使って、サブドメイン認証の種類がマネージドになったことを確認します。
GET https://graph.microsoft.com/v1.0/domains/foo.contoso.com/ Return: { "authenticationType": "Managed", <---------- Now this domain is successfully added as Managed and not inheriting Federated status "availabilityStatus": null, "isAdminManaged": true, "isDefault": false, "isDefaultForCloudRedirections": false, "isInitial": false, "isRoot": true, <------------------------------ Also a root domain, so not inheriting from parent domain any longer "isVerified": true, "name": "child.mydomain.com", "supportedServices": [ "Email", "OfficeCommunicationsOnline", "Intune" ], "forceDeleteState": null, "state": null, "passwordValidityPeriodInDays": null, "passwordNotificationWindowInDays": null }