Настройка доверия к облаку между локальными доменными службами AD DS и Microsoft Entra ID для доступа к Azure Files

Область применения: ✔️ общие папки SMB

Многие организации хотят использовать аутентификацию на основе идентификации для общих папок SMB Azure в средах, охватывающих как локальные Active Directory Domain Services (AD DS), так и Microsoft Entra ID (ранее Azure Active Directory), но не соответствуют необходимым системным требованиям или требованиям к домену.

В таких сценариях можно включить аутентификацию Kerberos Microsoft Entra для гибридных идентификаторов пользователей, а затем установить доверие в облаке между локальными доменными службами AD DS и Entra ID для доступа к общим папкам SMB с помощью локальных учетных данных. В этой статье объясняется, как работает доверие к облаку, а также приведены инструкции по настройке и проверке. Кроме того, он включает шаги по смене ключа Kerberos для учетной записи службы в Entra ID и доверенном объекте домена, а также шаги по удалению доверенного объекта домена и всех параметров Kerberos, если потребуется.

В этой статье рассматривается проверка подлинности удостоверений пользователей hybrid, которые являются локальными удостоверениями AD DS, синхронизированными с Microsoft Entra ID с помощью Microsoft Entra Connect Sync или Microsoft Entra Cloud Sync.

Сценарии

В следующих примерах описаны сценарии, в которых может потребоваться настроить доверие к облаку:

  • У вас есть традиционная локальная служба AD DS, но ее нельзя использовать для проверки подлинности, так как у вас нет единого сетевого подключения к контроллерам домена.

  • Вы начали миграцию в облако, но в настоящее время у вас есть приложения, которые все еще работают на традиционных локальных AD DS.

  • Некоторые или все клиентские компьютеры не соответствуют требованиям операционной системы для проверки подлинности Microsoft Entra Kerberos.

Разрешения

Чтобы выполнить действия, описанные в этой статье, вам потребуется следующее:

  • Имя пользователя и пароль администратора локального Active Directory. Эта учетная запись должна быть членом группы администраторов домена или членом группы администраторов предприятия леса домена.
  • Имя пользователя и пароль учетной записи глобального администратора Microsoft Entra.

Предварительные условия

Перед реализацией потока проверки подлинности на основе доверия убедитесь, что выполнены следующие предварительные требования:

Необходимые условия Описание
Клиент должен запускать Windows 10, Windows Server 2012 или более позднюю версию Windows.
Клиенты должны быть присоединены к Active Directory (AD). Домен должен иметь функциональный уровень Windows Server 2012 или более поздней версии. Можно определить, присоединяется ли клиент к Active Directory, выполнив команду dsregcmd: dsregcmd.exe /status
Клиент Microsoft Entra. Клиент Microsoft Entra — это граница безопасности удостоверений, которая находится под контролем ИТ-отдела организации. Это экземпляр Microsoft Entra ID, в котором находятся сведения о одной организации.
Подписка Azure в том же клиенте Entra, который вы планируете использовать для аутентификации.
Учетная запись хранения Azure в подписке Azure. Учетная запись Azure storage — это ресурс, который выступает в качестве контейнера для группировки всех служб данных из Azure Storage, включая файлы.
необходимо установить Microsoft Entra Connect Sync или Microsoft Entra Cloud Sync. Эти решения используются в гибридных средах, где удостоверения существуют как в Microsoft Entra ID, так и в локальных AD DS.
Если у вас есть политики управления приложениями, они должны разрешать добавление симметричного ключа на служебные принципы на 366 дней или более. Если политики не допускают это, необходимо настроить политику или предоставить исключение для службы "Поставщик ресурсов хранилища" (идентификатор a6aa9161-5291-40bb-8c5c-923b567bee3bприложения). При использовании Центра администрирования Entra эти политики определяются в параметрах "Блокировать добавление пароля" и "Ограничить максимальное время существования пароля". При использовании API Graph эти политики определены symmetricKeyAddition и symmetricKeyLifetime ограничениями.servicePrincipalRestrictions.passwordCredentials

Включение проверки подлинности Microsoft Kerberos Entra

Если вы уже включили проверку подлинности Kerberos Microsoft Entra для вашей учетной записи хранения, этот шаг можно пропустить и перейти к созданию и настройке доверенного объекта домена Microsoft Entra Kerberos.

Вы можете включить Microsoft Entra проверку подлинности Kerberos в Azure Files для гибридных учетных записей пользователей с помощью портала Azure, PowerShell или Azure CLI.

Чтобы включить проверку подлинности Kerberos Microsoft Entra с помощью портала Azure выполните следующие действия.

  1. Войдите на портал Azure и выберите учетную запись хранения, для которой требуется включить проверку подлинности Kerberos Microsoft Entra.

  2. В разделе Хранилище данных выберите Общие папки.

  3. Рядом с доступом на основе удостоверений выберите состояние конфигурации, например "Не настроено".

    Скриншот портала Azure с параметрами файла общего доступа для хранилища.

  4. В разделе Microsoft Entra Kerberos выберите Set up.

  5. Установите флажок Microsoft Entra Kerberos.

    Скриншот портала Azure, отображающий параметры настройки доступа на основании удостоверений для аккаунта хранилища. Выбран Microsoft Entra Kerberos.

  6. Optional: Чтобы настроить разрешения каталога и уровня файлов с помощью проводника Windows, укажите доменное имя и GUID домена для on-premises Active Directory. Эти сведения можно получить от администратора домена или, выполнив следующий командлет PowerShell из клиента, подключенного к Active Directory Get-ADDomain. Имя домена отображается в выходных данных под DNSRoot, а GUID домена — под ObjectGUID. Если вы предпочитаете настраивать разрешения на уровне каталога и файлов с помощью icacls, можно пропустить этот шаг. Тем не менее, если вы хотите использовать icacls, клиенту требуется бесперебойное сетевое подключение к локальной Active Directory.

  7. Нажмите Сохранить.

Предупреждение

Если вы ранее включили проверку подлинности Microsoft Entra Kerberos с помощью ручных шагов ограниченной предварительной версии для хранения профилей FSLogix на Azure Files для виртуальных машин, присоединенных к Entra, пароль основного объекта для учетной записи хранения истекает каждые шесть месяцев. После истечения срока действия пароля пользователи не могут получить билеты Kerberos в общую папку. Чтобы устранить эту проблему, см. раздел "Ошибка — срок действия пароля субъекта-службы истек в Microsoft Entra ID" в разделе Потенциальные ошибки при включении проверки подлинности Kerberos в Microsoft Entra для гибридных пользователей.

После включения проверки подлинности Kerberos Microsoft Entra предоставьте администратору согласие на новое приложение Entra, зарегистрированное в клиенте Entra. Процесс автоматически создает этот субъект-службу. Он не используется для авторизации в общей папке, поэтому не вносите никаких изменений в служебный принципал, кроме описанных здесь. Если вы это сделаете, может возникнуть ошибка.

Разрешения API можно настроить на портале Azure, выполнив следующие действия.

  1. Откройте Microsoft Entra ID.
  2. В меню службы в разделе Manage выберите App registrations.
  3. Выберите Все приложения.
  4. Выберите приложение с именем, совпадающим с [Storage Account] <your-storage-account-name>.file.core.windows.net.
  5. В меню службы в разделе "Управление" выберите разрешения API.
  6. Выберите "Предоставить согласие администратора" для [имени каталога] , чтобы предоставить согласие для трех запрошенных разрешений API (openid, profile и User.Read) для всех учетных записей в каталоге.
  7. Выберите Да для подтверждения.

Внимание

Если вы подключаетесь к учетной записи хранения через частную конечную точку или приватную связь с помощью проверки подлинности Microsoft Entra Kerberos, добавьте FQDN приватной связи в Entra приложение учетной записи хранения. Инструкции см. в руководстве по устранению неполадок.

Отключение многофакторной проверки подлинности в учетной записи хранения

Microsoft Entra Kerberos не поддерживает использование MFA для доступа к общим папкам Azure, настроенным с помощью Microsoft Entra Kerberos. Необходимо исключить приложение Microsoft Entra, представляющее вашу учетную запись хранения, из политик условного доступа MFA, если они относятся ко всем приложениям.

Приложение учетной записи хранения должно иметь то же имя, что и учетная запись хранения в списке исключений условного доступа. Во время поиска приложения учетной записи для хранения в списке исключений условного доступа ищите: [Учетная запись для хранения] <your-storage-account-name>.file.core.windows.net

Не забудьте заменить <your-storage-account-name> правильным значением.

Внимание

Если вы не исключаете политики MFA из приложения учетной записи хранения, вы не сможете получить доступ к общей папке. Попытка сопоставить общую папку с помощью net use приводит к появлению сообщения об ошибке "Системная ошибка 1327: ограничения учетной записи препятствуют входу этого пользователя." Например: пустые пароли не допускаются, время входа ограничено или применяется ограничение политики".

Рекомендации по отключению MFA см. в следующих статьях:

Назначение разрешений на уровне общего ресурса

При включении доступа на основе удостоверений необходимо назначить, какие пользователи и группы имеют доступ к каждому общему ресурсу. После разрешения доступа пользователя или группы к общей папке списки управления доступом Windows (также называемые разрешениями NTFS) берут на себя управление отдельными файлами и каталогами. Эта система разрешений позволяет точно контролировать разрешения, аналогичные общей папке SMB в Windows Server.

Чтобы задать разрешения на уровне общего доступа, следуйте инструкциям в статье Назначение разрешений на уровне общего доступа для идентификатора.

Настройка разрешений на уровне каталога и файлов

После того как разрешения на уровне общего доступа будут установлены, вы можете назначить разрешения на уровне каталога и файлов пользователю или группе. Этот шаг требует использования устройства с без препятствий сетевым подключением к локальной Active Directory.

Чтобы настроить разрешения на уровне каталога и файлов, следуйте инструкциям в статье Настройка разрешений на уровне каталога и файлов по протоколу SMB.

Создание и настройка объекта доверенного домена Kerberos Microsoft Entra

Чтобы создать и настроить объект доверенного домена Entra Kerberos, используйте модуль Azure ad Hybrid Authentication Management PowerShell. С помощью этого модуля организации гибридных идентификаций могут использовать современные учетные данные для своих приложений, а идентификатор Entra становится доверенным источником для аутентификации в облаке и на узле.

Настройка объекта доверенного домена

Используйте модуль PowerShell для управления гибридной проверкой подлинности Azure AD для настройки доверенного объекта в домене Active Directory и регистрации сведений о доверии с помощью Entra ID. Это действие создает входящее отношение доверия, которое позволяет Entra ID доверять локальной Active Directory.

Настроить объект доверенного домена нужно только один раз для каждого домена. Если вы уже настроили этот объект для домена, можно пропустить этот раздел и перейти к настройке клиентов для получения билетов Kerberos.

Установка модуля powerShell для управления гибридной проверкой подлинности AD Azure

  1. Запустите сеанс PowerShell Windows с помощью параметра Run as administrator.

  2. Установите модуль PowerShell для управления гибридной проверкой подлинности AD Azure с помощью следующего сценария. Сценарий:

    • Включает протокол TLS 1.2 для обмена данными.
    • Устанавливает поставщика пакетов NuGet.
    • Регистрирует репозиторий PSGallery.
    • Устанавливает модуль PowerShellGet.
    • Устанавливает модуль powerShell для управления гибридной проверкой подлинности AZURE AD.
      • PowerShell управления гибридной аутентификацией Azure AD использует модуль AzureADPreview, который предоставляет расширенные функции управления Entra.
      • Чтобы защититься от ненужных конфликтов установки с модулем Azure AD PowerShell, эта команда включает флаг параметра -AllowClobber.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-PackageProvider -Name NuGet -Force

if (@(Get-PSRepository | ? {$_.Name -eq "PSGallery"}).Count -eq 0){
    Register-PSRepository -DefaultSet-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
}

Install-Module -Name PowerShellGet -Force

Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber

Создание объекта доверенного домена

  1. Запустите сеанс PowerShell Windows с помощью параметра Run as administrator.

  2. Задайте общие параметры. Настройте скрипт перед запуском.

    • Задайте для параметра $domain имя домена локальной службы Active Directory.
    • При появлении запроса Get-Credential, введите имя пользователя и пароль администратора локального Active Directory. Эта учетная запись должна быть членом группы администраторов домена или членом группы администраторов предприятия леса домена.
    • $cloudUserName Задайте для параметра имя пользователя привилегированной учетной записи глобального администратора для доступа к облаку Entra ID.

    Примечание.

    Если вы хотите использовать вашу текущую учетную запись Windows для доступа к локальному Active Directory, можно пропустить шаг, на котором вы назначаете учетные данные параметру $domainCred. Если вы используете этот подход, не включайте -DomainCredential параметр в команды PowerShell после этого шага.

    $domain = "your on-premises domain name, for example contoso.com" 
    $domainCred = Get-Credential
    $cloudUserName = "Microsoft Entra ID user principal name, for example admin@contoso.onmicrosoft.com"
    
  3. Проверьте текущие параметры домена Kerberos.

    Чтобы проверить текущие параметры домена Kerberos, выполните следующую команду:

    Get-AzureADKerberosServer -Domain $domain `
     -DomainCredential $domainCred `
     -UserPrincipalName $cloudUserName
    

    Если это первый вызов любой команды Kerberos Microsoft Entra, вам будет предложено получить доступ к облаку entra ID.

    • Введите пароль для учетной записи глобального администратора Entra ID.
    • Если в организации используются другие современные методы проверки подлинности, такие как многофакторная проверка подлинности Entra или Смарт-карта, следуйте инструкциям, запрошенным для входа.

    Если вы впервые настраиваете параметры Kerberos Microsoft Entra, командлет Get-AzureADKerberosServer отображает пустые сведения, как в следующем примере выходных данных:

    ID                  :
    UserAccount         :
    ComputerAccount     :
    DisplayName         :
    DomainDnsName       :
    KeyVersion          :
    KeyUpdatedOn        :
    KeyUpdatedFrom      :
    CloudDisplayName    :
    CloudDomainDnsName  :
    CloudId             :
    CloudKeyVersion     :
    CloudKeyUpdatedOn   :
    CloudTrustDisplay   :
    

    Если ваш домен уже поддерживает аутентификацию FIDO, командлет Get-AzureADKerberosServer отображает сведения об учетной записи сервиса Entra, как видно из следующего примера выходных данных. Поле CloudTrustDisplay возвращает пустое значение.

    ID                  : XXXXX
    UserAccount         : CN=krbtgt-AzureAD, CN=Users, DC=contoso, DC=com
    ComputerAccount     : CN=AzureADKerberos, OU=Domain Controllers, DC=contoso, DC=com
    DisplayName         : XXXXXX_XXXXX
    DomainDnsName       : contoso.com
    KeyVersion          : 53325
    KeyUpdatedOn        : 2/24/2024 9:03:15 AM
    KeyUpdatedFrom      : ds-aad-auth-dem.contoso.com
    CloudDisplayName    : XXXXXX_XXXXX
    CloudDomainDnsName  : contoso.com
    CloudId             : XXXXX
    CloudKeyVersion     : 53325
    CloudKeyUpdatedOn   : 2/24/2024 9:03:15 AM
    CloudTrustDisplay   :
    
  4. Добавьте объект доверенного домена.

    Выполните командлет PowerShell Set-AzureADKerberosServer, чтобы добавить доверенный объект домена. Не забудьте добавить параметр -SetupCloudTrust. Если учетная запись службы Entra отсутствует, эта команда создает новую учетную запись службы Entra. Эта команда создает только запрошенный объект доверенного домена, если есть учетная запись службы Entra.

    Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $cloudUserName -DomainCredential $domainCred -SetupCloudTrust
    

    Примечание.

    В многоуровневом лесу доменов, чтобы избежать ошибки LsaCreateTrustedDomainEx 0x549 при выполнении команды в дочернем домене:

    1. Выполните команду в корневом домене (включите -SetupCloudTrust параметр).
    2. Выполните ту же команду в дочернем домене без параметра -SetupCloudTrust.

    После создания доверенного объекта домена можно проверить обновленные параметры Kerberos с помощью командлета Get-AzureADKerberosServer PowerShell, как показано на предыдущем шаге. Если командлет Set-AzureADKerberosServer успешно работает с параметром -SetupCloudTrust, поле CloudTrustDisplay возвращает Microsoft.AzureAD.Kdc.Service.TrustDisplay, как показано в следующем примере выходных данных:

    ID                  : XXXXX
    UserAccount         : CN=krbtgt-AzureAD, CN=Users, DC=contoso, DC=com
    ComputerAccount     : CN=AzureADKerberos, OU=Domain Controllers, DC=contoso, DC=com
    DisplayName         : XXXXXX_XXXXX
    DomainDnsName       : contoso.com
    KeyVersion          : 53325
    KeyUpdatedOn        : 2/24/2024 9:03:15 AM
    KeyUpdatedFrom      : ds-aad-auth-dem.contoso.com
    CloudDisplayName    : XXXXXX_XXXXX
    CloudDomainDnsName  : contoso.com
    CloudId             : XXXXX
    CloudKeyVersion     : 53325
    CloudKeyUpdatedOn   : 2/24/2024 9:03:15 AM
    CloudTrustDisplay   : Microsoft.AzureAD.Kdc.Service.TrustDisplay
    

    Примечание.

    Azure суверенные облака требуют установки свойства TopLevelNames, которое по умолчанию имеет значение windows.net. Развертывания в суверенных облаках Azure SQL Managed Instance используют другое доменное имя верхнего уровня, например usgovcloudapi.net, для Azure US Government. Задайте Объект доверенного домена на имя домена верхнего уровня, используя следующую команду PowerShell: Set-AzureADKerberosServer -Domain $domain -DomainCredential $domainCred -CloudCredential $cloudCred -SetupCloudTrust -TopLevelNames "usgovcloudapi.net,windows.net" Этот параметр можно проверить с помощью следующей команды PowerShell: Get-AzureADKerberosServer -Domain $domain -DomainCredential $domainCred -UserPrincipalName $cloudUserName | Select-Object -ExpandProperty CloudTrustDisplay

Настройка клиентов для получения билетов Kerberos

Определите идентификатор арендатора Microsoft Entra и используйте групповую политику для настройки клиентских компьютеров, с которых нужно подключаться или использовать файловые ресурсы Azure. Это необходимо сделать на каждом клиенте, где используется Azure Files.

Установите для этой политики группы на клиентах значение "Включено": Administrative Templates\System\Kerberos\Specify KDC proxy servers for Kerberos clients

Разверните параметр групповой политики на клиентских компьютерах с помощью входящего потока, основанного на доверии.

  1. Измените значение параметра политики Административные шаблоны\Система\Kerberos\Указать прокси-серверы KDC для клиентов Kerberos.

  2. Выберите "Включено".

  3. В разделе "Параметры" выберите "Показать...". Откроется диалоговое окно "Показать содержимое".

    Снимок экрана: диалоговое окно, чтобы включить параметр

  4. Определите параметры прокси-серверов KDC с помощью сопоставлений, как показано ниже. Замените идентификатор арендатора Entra на заполнитель your_Entra_ID_tenant_id. Обратите внимание на пробел после https и перед закрывающим / в отображении значений.

    Имя значения Значение
    KERBEROS.MICROSOFTONLINE.COM <https login.microsoftonline.com:443:your_Entra_ID_tenant_id/kerberos />

    Снимок экрана: диалоговое окно

  5. Нажмите кнопку ОК, чтобы закрыть диалоговое окно "Вывод содержания".

  6. Нажмите кнопку Применить в диалоговом окне "Укажите прокси-серверы KDC для клиентов Kerberos".

Поворот ключа Kerberos

Для целей управления периодически сменяйте ключ Kerberos для созданной учетной записи службы Entra и доверенного объекта домена.

Set-AzureADKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName -SetupCloudTrust `
   -RotateServerKey

После поворота ключа требуется несколько часов для распространения измененного ключа между серверами Kerberos KDC. Из-за этого времени распространения ключей можно сменить ключ один раз в течение 24 часов. Если вам нужно снова повернуть ключ в течение 24 часов по какой-либо причине, например сразу после создания доверенного объекта домена, добавьте -Force параметр:

Set-AzureADKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName -SetupCloudTrust `
   -RotateServerKey -Force

Удаление объекта доверенного домена

Добавленный объект доверенного домена можно удалить с помощью следующей команды:

Remove-AzureADKerberosServerTrustedDomainObject -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName

Эта команда удаляет только доверенный объект домена. Если ваш домен поддерживает аутентификацию FIDO, вы можете удалить Доверенный объект домена, сохранив учетную запись службы Entra, необходимую для работы службы аутентификации FIDO.

Удаление всех параметров Kerberos

Вы можете удалить учетную запись службы Entra и доверенный объект домена, выполнив следующую команду:

Remove-AzureADKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName

Следующий шаг