Tworzenie domeny zarządzanej Azure Active Directory Domain Services przy użyciu szablonu usługi Azure Resource Manager Domain Services

Azure Active Directory Domain Services (Azure AD DS) zapewnia zarządzane usługi domenowe, takie jak przyłączanie do domeny, zasady grupy, LDAP, uwierzytelnianie Kerberos/NTLM, które jest w pełni zgodne z Windows Server Active Directory. Te usługi domenowe są używane bez konieczności samodzielnie wdrażania i poprawiania kontrolerów domeny oraz zarządzania nimi. Azure AD DS integruje się z istniejącą dzierżawą usługi Azure AD. Dzięki tej integracji użytkownicy mogą logować się przy użyciu poświadczeń firmowych, a do zabezpieczania dostępu do zasobów można użyć istniejących grup i kont użytkowników.

W tym artykule pokazano, jak utworzyć domenę zarządzaną przy użyciu szablonu usługi Azure Resource Manager szablonu. Zasoby obsługi są tworzone przy użyciu Azure PowerShell.

Wymagania wstępne

Do ukończenia tego artykułu potrzebne są następujące zasoby:

Wymagania dotyczące nazewnictwa DNS

Podczas tworzenia Azure AD DS domenie zarządzanej należy określić nazwę DNS. Wybierając tę nazwę DNS, należy wziąć pod uwagę pewne kwestie:

  • Wbudowana nazwa domeny: Domyślnie jest używana wbudowana nazwa domeny katalogu (sufiks .onmicrosoft.com ). Jeśli chcesz włączyć bezpieczny dostęp LDAP do domeny zarządzanej przez Internet, nie możesz utworzyć certyfikatu cyfrowego w celu zabezpieczenia połączenia z tą domeną domyślną. Firma Microsoft jest właścicielem domeny .onmicrosoft.com , więc urząd certyfikacji nie wystawia certyfikatu.
  • Niestandardowe nazwy domen: Najbardziej typowa metoda to określenie niestandardowej nazwy domeny, zwykle już posiadanej i z możliwością routowalnego działania. W przypadku korzystania z routowalnej domeny niestandardowej ruch może prawidłowo przepływać zgodnie z potrzebami w celu obsługi aplikacji.
  • Sufiksy domeny bez obsługi danych routowalnych: Zazwyczaj zaleca się unikanie sufiksu nazwy domeny bez obsługi obsługi rout, takiego jak contoso.local. Sufiks .local nie jest routowalny i może powodować problemy z rozpoznawaniem nazw DNS.

Porada

W przypadku tworzenia niestandardowej nazwy domeny należy zająć się istniejącymi przestrzeniami nazw DNS. Zaleca się używanie nazwy domeny oddzielnej od istniejącej przestrzeni nazw DNS na platformie Azure lub w środowisku lokalnym.

Jeśli na przykład masz istniejącą przestrzeń nazw DNS contoso.com, utwórz domenę zarządzaną z niestandardową nazwą domeny aaddscontoso.com. Jeśli musisz użyć protokołu Secure LDAP, musisz zarejestrować tę niestandardową nazwę domeny i być jej właścicielem w celu wygenerowania wymaganych certyfikatów.

Może być konieczne utworzenie dodatkowych rekordów DNS dla innych usług w środowisku lub warunkowych usług przesyłania dalej DNS między istniejącymi przestrzeniami nazw DNS w środowisku. Jeśli na przykład uruchamiasz serwer sieci Web hostując witrynę przy użyciu głównej nazwy DNS, mogą być konflikty nazw, które wymagają dodatkowych wpisów DNS.

W tym przykładowym i niestandardowych artykułach domena aaddscontoso.com jest używana jako krótki przykład. We wszystkich poleceniach określ własną nazwę domeny.

Obowiązują również następujące ograniczenia nazw DNS:

  • Ograniczenia prefiksu domeny: Nie można utworzyć domeny zarządzanej z prefiksem dłuższym niż 15 znaków. Prefiks określonej nazwy domeny (na przykład aaddscontoso w nazwie aaddscontoso.com domeny) musi zawierać co najmniej 15 znaków.
  • Konflikty nazw sieci: Nazwa domeny DNS dla domeny zarządzanej nie powinna jeszcze istnieć w sieci wirtualnej. W szczególności sprawdź następujące scenariusze, które mogą prowadzić do konfliktu nazw:
    • Jeśli masz już domenę usługi Active Directory o tej samej nazwie domeny DNS w sieci wirtualnej platformy Azure.
    • Jeśli sieć wirtualna, w której chcesz włączyć domenę zarządzaną, ma połączenie sieci VPN z siecią lokalną. W tym scenariuszu upewnij się, że w sieci lokalnej nie masz domeny o tej samej nazwie domeny DNS.
    • Jeśli masz istniejącą usługę w chmurze platformy Azure o tej nazwie w sieci wirtualnej platformy Azure.

Tworzenie wymaganych zasobów usługi Azure AD

Azure AD DS wymaga jednostki usługi i grupy usługi Azure AD. Te zasoby umożliwiają domenie zarządzanej synchronizowanie danych i definiowanie użytkowników, którzy mają uprawnienia administracyjne w domenie zarządzanej.

Najpierw zarejestruj dostawcę Azure AD Domain Services zasobów przy użyciu polecenia cmdlet Register-AzResourceProvider :

Register-AzResourceProvider -ProviderNamespace Microsoft.AAD

Utwórz jednostkę usługi Azure AD przy użyciu polecenia cmdlet New-AzureADServicePrincipal , aby Azure AD DS się komunikować i uwierzytelniać. Określony identyfikator aplikacji jest używany o nazwie Usługi kontrolera domeny o identyfikatorze 6ba9a5d4-8456-4118-b521-9c5ca10cdf84. Nie zmieniaj tego identyfikatora aplikacji.

New-AzureADServicePrincipal -AppId "6ba9a5d4-8456-4118-b521-9c5ca10cdf84"

Teraz utwórz grupę usługi Azure AD o AAD administratorów kontrolerów domeny przy użyciu polecenia cmdlet New-AzureADGroup. Użytkownicy dodani do tej grupy mają następnie uprawnienia do wykonywania zadań administracyjnych w domenie zarządzanej.

New-AzureADGroup -DisplayName "AAD DC Administrators" `
  -Description "Delegated group to administer Azure AD Domain Services" `
  -SecurityEnabled $true -MailEnabled $false `
  -MailNickName "AADDCAdministrators"

Po utworzeniu AAD administratorzy kontrolera domeny dodaj użytkownika do grupy przy użyciu polecenia cmdlet Add-AzureADGroupMember. Najpierw identyfikator obiektu grupy Administratorzy kontrolera domeny usługi AAD uzyskać za pomocą polecenia cmdlet Get-AzureADGroup, a następnie identyfikator obiektu żądanego użytkownika za pomocą polecenia cmdlet Get-AzureADUser.

W poniższym przykładzie identyfikator obiektu użytkownika dla konta z upn o .admin@contoso.onmicrosoft.com Zastąp to konto użytkownika przy użyciu nazwy UPN użytkownika, który chcesz dodać do AAD administratorów kontrolera domeny:

# First, retrieve the object ID of the newly created 'AAD DC Administrators' group.
$GroupObjectId = Get-AzureADGroup `
  -Filter "DisplayName eq 'AAD DC Administrators'" | `
  Select-Object ObjectId

# Now, retrieve the object ID of the user you'd like to add to the group.
$UserObjectId = Get-AzureADUser `
  -Filter "UserPrincipalName eq 'admin@contoso.onmicrosoft.com'" | `
  Select-Object ObjectId

# Add the user to the 'AAD DC Administrators' group.
Add-AzureADGroupMember -ObjectId $GroupObjectId.ObjectId -RefObjectId $UserObjectId.ObjectId

Na koniec utwórz grupę zasobów przy użyciu polecenia cmdlet New-AzResourceGroup . W poniższym przykładzie grupa zasobów nosi nazwę myResourceGroup i jest tworzona w regionie westus . Użyj własnej nazwy i żądanego regionu:

New-AzResourceGroup `
  -Name "myResourceGroup" `
  -Location "WestUS"

Jeśli wybierzesz region, który obsługuje Strefy dostępności, zasoby Azure AD DS rozproszone w różnych strefach w celu zapewnienia dodatkowej nadmiarowości. Strefy dostępności to unikatowe fizyczne lokalizacje w regionie świadczenia usługi Azure. Każda strefa składa się z co najmniej jednego centrum danych wyposażonego w niezależne zasilanie, chłodzenie i sieć. W celu zapewnienia odporności istnieją co najmniej trzy osobne strefy we wszystkich włączonych regionach.

Nie musisz nic konfigurować, aby Azure AD DS dystrybuowane między strefami. Platforma Azure automatycznie obsługuje dystrybucję stref zasobów. Aby uzyskać więcej informacji i zobaczyć dostępność regionów, zobacz Co to są Strefy dostępności platformie Azure?.

Definicja zasobu dla Azure AD DS

W ramach definicji Resource Manager zasobów wymagane są następujące parametry konfiguracji:

Parametr Wartość
Nazwa_domeny Nazwa domeny DNS dla domeny zarządzanej, biorąc pod uwagę poprzednie punkty dotyczące nazewnictwa prefiksów i konfliktów.
filteredSync Azure AD DS umożliwia synchronizowanie wszystkich użytkowników i grup dostępnych w usłudze Azure AD lub synchronizację w zakresie tylko określonych grup.

Aby uzyskać więcej informacji na temat synchronizacji w zakresie, zobacz Azure AD Domain Services synchronizacji o zakresie.
notificationSettings Jeśli w domenie zarządzanej są generowane jakiekolwiek alerty, można wysyłać powiadomienia e-mail.

Dla tych powiadomień można włączyć administratorów globalnych dzierżawy platformy Azure AAD grupy Administratorzy kontrolera domeny.

W razie potrzeby możesz dodać kolejnych adresatów powiadomień, gdy istnieją alerty wymagające uwagi.
domainConfigurationType Domyślnie domena zarządzana jest tworzona jako las użytkownika. Ten typ lasu synchronizuje wszystkie obiekty z usługi Azure AD, w tym wszystkie konta użytkowników utworzone w środowisku AD DS lokalnym. Nie musisz określać wartości domainConfiguration , aby utworzyć las użytkownika.

Las zasobów synchronizuje tylko użytkowników i grupy utworzone bezpośrednio w usłudze Azure AD. Ustaw wartość ResourceTrusting, aby utworzyć las zasobów.

Aby uzyskać więcej informacji na temat lasów zasobów, w tym przyczyn ich użycia oraz sposobu tworzenia relacji zaufania lasu z lokalnymi domenami AD DS, zobacz omówienie Azure AD DS zasobów.

Następująca definicja skróconych parametrów pokazuje sposób deklarowania tych wartości. Zostanie utworzony las użytkowników aaddscontoso.com z synchronizami wszystkich użytkowników z usługi Azure AD z domeną zarządzaną:

"parameters": {
    "domainName": {
        "value": "aaddscontoso.com"
    },
    "filteredSync": {
        "value": "Disabled"
    },
    "notificationSettings": {
        "value": {
            "notifyGlobalAdmins": "Enabled",
            "notifyDcAdmins": "Enabled",
            "additionalRecipients": []
        }
    },
    [...]
}

Poniższe skrócone Resource Manager typu zasobu szablonu są następnie używane do definiowania i tworzenia domeny zarządzanej. Sieć wirtualna i podsieć platformy Azure muszą już istnieć lub zostać utworzone w ramach Resource Manager szablonu. Domena zarządzana jest połączona z tą podsiecią.

"resources": [
    {
        "apiVersion": "2017-06-01",
        "type": "Microsoft.AAD/DomainServices",
        "name": "[parameters('domainName')]",
        "location": "[parameters('location')]",
        "dependsOn": [
            "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]"
        ],
        "properties": {
            "domainName": "[parameters('domainName')]",
            "subnetId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/', parameters('subnetName'))]",
            "filteredSync": "[parameters('filteredSync')]",
            "notificationSettings": "[parameters('notificationSettings')]"
        }
    },
    [...]
]

Te parametry i typ zasobu mogą być używane jako część szerszego Resource Manager do wdrażania domeny zarządzanej, jak pokazano w poniższej sekcji.

Tworzenie domeny zarządzanej przy użyciu przykładowego szablonu

Poniższy kompletny Resource Manager przykładowy szablon tworzy domenę zarządzaną oraz regułę sieci wirtualnej, podsieci i sieciowej grupy zabezpieczeń. Reguły sieciowej grupy zabezpieczeń są wymagane do zabezpieczenia domeny zarządzanej i zapewnienia prawidłowego przepływu ruchu. Zostanie utworzony las użytkownika o nazwie DNS aaddscontoso.com z synchronizami wszystkich użytkowników z usługi Azure AD:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "apiVersion": {
            "value": "2017-06-01"
        },
        "domainConfigurationType": {
            "value": "FullySynced"
        },
        "domainName": {
            "value": "aaddscontoso.com"
        },
        "filteredSync": {
            "value": "Disabled"
        },
        "location": {
            "value": "westus"
        },
        "notificationSettings": {
            "value": {
                "notifyGlobalAdmins": "Enabled",
                "notifyDcAdmins": "Enabled",
                "additionalRecipients": []
            }
        },
        "subnetName": {
            "value": "aadds-subnet"
        },
        "vnetName": {
            "value": "aadds-vnet"
        },
        "vnetAddressPrefixes": {
            "value": [
                "10.1.0.0/24"
            ]
        },
        "subnetAddressPrefix": {
            "value": "10.1.0.0/24"
        },
        "nsgName": {
            "value": "aadds-nsg"
        }
    },
    "resources": [
        {
            "apiVersion": "2017-06-01",
            "type": "Microsoft.AAD/DomainServices",
            "name": "[parameters('domainName')]",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[concat('Microsoft.Network/virtualNetworks/', parameters('vnetName'))]"
            ],
            "properties": {
                "domainName": "[parameters('domainName')]",
                "subnetId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/', parameters('subnetName'))]",
                "filteredSync": "[parameters('filteredSync')]",
                "domainConfigurationType": "[parameters('domainConfigurationType')]",
                "notificationSettings": "[parameters('notificationSettings')]"
            }
        },
        {
            "type": "Microsoft.Network/NetworkSecurityGroups",
            "name": "[parameters('nsgName')]",
            "location": "[parameters('location')]",
            "properties": {
                "securityRules": [
                    {
                        "name": "AllowSyncWithAzureAD",
                        "properties": {
                            "access": "Allow",
                            "priority": 101,
                            "direction": "Inbound",
                            "protocol": "Tcp",
                            "sourceAddressPrefix": "AzureActiveDirectoryDomainServices",
                            "sourcePortRange": "*",
                            "destinationAddressPrefix": "*",
                            "destinationPortRange": "443"
                        }
                    },
                    {
                        "name": "AllowPSRemoting",
                        "properties": {
                            "access": "Allow",
                            "priority": 301,
                            "direction": "Inbound",
                            "protocol": "Tcp",
                            "sourceAddressPrefix": "AzureActiveDirectoryDomainServices",
                            "sourcePortRange": "*",
                            "destinationAddressPrefix": "*",
                            "destinationPortRange": "5986"
                        }
                    },
                    {
                        "name": "AllowRD",
                        "properties": {
                            "access": "Allow",
                            "priority": 201,
                            "direction": "Inbound",
                            "protocol": "Tcp",
                            "sourceAddressPrefix": "CorpNetSaw",
                            "sourcePortRange": "*",
                            "destinationAddressPrefix": "*",
                            "destinationPortRange": "3389"
                        }
                    }
                ]
            },
            "apiVersion": "2018-04-01"
        },
        {
            "type": "Microsoft.Network/virtualNetworks",
            "name": "[parameters('vnetName')]",
            "location": "[parameters('location')]",
            "apiVersion": "2018-04-01",
            "dependsOn": [
                "[concat('Microsoft.Network/NetworkSecurityGroups/', parameters('nsgName'))]"
            ],
            "properties": {
                "addressSpace": {
                    "addressPrefixes": "[parameters('vnetAddressPrefixes')]"
                },
                "subnets": [
                    {
                        "name": "[parameters('subnetName')]",
                        "properties": {
                            "addressPrefix": "[parameters('subnetAddressPrefix')]",
                            "networkSecurityGroup": {
                                "id": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/NetworkSecurityGroups/', parameters('nsgName'))]"
                            }
                        }
                    }
                ]
            }
        }
    ],
    "outputs": {}
}

Ten szablon można wdrożyć przy użyciu preferowanej metody wdrażania, takiej jak Azure Portal, Azure PowerShell lub potoku ci/CD. W poniższym przykładzie użyto polecenia cmdlet New-AzResourceGroupDeployment . Określ własną nazwę grupy zasobów i nazwę pliku szablonu:

New-AzResourceGroupDeployment -ResourceGroupName "myResourceGroup" -TemplateFile <path-to-template>

Utworzenie zasobu i powrót kontrolki do wiersza polecenia programu PowerShell może potrwać kilka minut. Domena zarządzana jest nadal aprowizowana w tle i ukończenie wdrożenia może potrwać do godziny. W Azure Portal stronie Przegląd domeny zarządzanej jest przedstawiany bieżący stan na tym etapie wdrażania.

Gdy Azure Portal, że domena zarządzana zakończyła aprowizowanie, należy ukończyć następujące zadania:

  • Zaktualizuj ustawienia DNS dla sieci wirtualnej, aby maszyny wirtualne znalazły domenę zarządzaną na czas dołączania do domeny lub uwierzytelniania.
    • Aby skonfigurować usługę DNS, wybierz domenę zarządzaną w portalu. W oknie Przegląd zostanie wyświetlony monit o automatyczne skonfigurowanie tych ustawień DNS.
  • Włącz synchronizację haseł Azure AD DS , aby użytkownicy końcowi mogą logować się do domeny zarządzanej przy użyciu poświadczeń firmowych.

Następne kroki

Aby zobaczyć, jak zarządzana domena jest w akcji, możesz dołączyć do domeny maszynę wirtualną Windows wirtualnej, skonfigurować bezpieczny LDAP i skonfigurować synchronizację skrótów haseł.