Использование Azure Files с несколькими лесами Active Directory

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

Многие организации хотят использовать аутентификацию на основе удостоверений для файловых ресурсов SMB Azure в средах с несколькими локальными доменными службами Active Directory (AD DS). Это распространенный ИТ-сценарий, особенно после слияний и приобретений, где приобретенные леса КОМПАНИИ AD изолированы от лесов AD родительской компании. В этой статье объясняется, как работают доверительные отношения между лесами, и предоставляются пошаговые инструкции по настройке и проверке этих отношений для нескольких лесов.

Внимание

Чтобы задать разрешения на уровне доступа к ресурсу для определенных пользователей или групп Microsoft Entra ID с помощью управления доступом на основе ролей Azure (RBAC), сначала синхронизируйте локальные учетные записи AD с Microsoft Entra ID с помощью Microsoft Entra Connect Sync. В противном случае используйте разрешения по умолчанию на уровне доступа к ресурсу.

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

  • Два контроллера домена AD DS с разными лесами и в разных виртуальных сетях
  • Достаточные разрешения AD для выполнения административных задач (например, администратор домена)
  • При использовании Azure RBAC оба леса должны быть доступны одним сервером синхронизации Microsoft Entra Connect Sync

Как работают доверительные отношения в лесу

Azure Files локальная проверка подлинности AD DS поддерживает только лес AD службы домена, в которую зарегистрирована учетная запись хранения. По умолчанию доступ к общим папкам Azure можно получить только с учетными данными AD DS из одного леса. Если вам нужно получить доступ к общей папке Azure из другого доменного леса, настройте доверие.

Лесное доверие — это транзитивное доверие между двумя лесами AD, которое позволяет пользователям в любом из доменов одного леса проходить аутентификацию в любом из доменов другого леса.

Многофорестная конфигурация

Чтобы настроить настройку нескольких лесов, выполните следующие действия.

  • Сбор сведений о домене и подключений к виртуальной сети между доменами
  • Установка и настройка доверия к лесу
  • Настройка проверки подлинности на основе удостоверений и гибридных учетных записей пользователей

Сбор сведений о домене

Для этого упражнения у нас есть два локальных контроллера домена AD DS с двумя разными лесами и в разных виртуальных сетях.

Лес Domain Виртуальная сеть
Лес 1 onpremad1.com DomainServicesVNet WUS
Лес 2 onpremad2.com vnet2/workloads

Установка и настройка доверия

Чтобы клиенты из Forest 1 имели доступ к ресурсам домена Azure Files в Forest 2, необходимо установить доверие между двумя лесами доменов. Выполните следующие действия, чтобы установить доверие.

Примечание.

Azure Files поддерживает только доверительные отношения в лесу. Он не поддерживает другие типы доверия, такие как внешние доверия.

Если у вас уже настроено доверие, можно проверить его тип, войдите на компьютер, присоединенный к лесу 2, откройте консоль Active Directory Домены и отношения доверия, щелкните правой кнопкой мыши локальный домен onpremad2.com и выберите вкладку Trusts. Если существующее доверие не является доверием к лесу, и если доверие леса соответствует требованиям вашей среды, необходимо удалить существующее доверие и повторно создать доверие к лесу. Для этого следуйте приведенным ниже инструкциям.

  1. Войдите на компьютер, присоединенный к домену Forest 2, и откройте консоль Active Directory Domains and Trusts.

  2. Щелкните правой кнопкой мыши на локальном домене onpremad2.com, а затем выберите вкладку "Доверие".

  3. Выберите Новые доверительные отношения, чтобы запустить Мастер создания новых доверительных отношений.

  4. Укажите доменное имя, с которым нужно создать доверие (в этом примере onpremad1.com), а затем нажмите кнопку "Далее".

  5. Для типа доверия выберите "Лес" и нажмите кнопку "Далее".

  6. Для направления доверия выберите "Двустороннее" и нажмите кнопку "Далее".

    Скриншот консоли Active Directory Домены и отношения доверия, показывающий, как выбрать двустороннее направление для отношения доверия.

  7. Для компонентов доверия выберите параметр только этот домен, а затем выберите Далее.

  8. Пользователи указанного леса могут пройти проверку подлинности, чтобы использовать все ресурсы в местном лесу (проверка подлинности на уровне леса) или только те ресурсы, которые вы выберете (выборочная проверка подлинности). Для уровня аутентификации исходящих доверительных отношений выберите аутентификацию на уровне леса, которая является предпочтительным вариантом, когда оба леса принадлежат одной организации. Выберите Далее.

  9. Введите пароль для доверия и нажмите кнопку "Далее". При создании отношения доверия в указанном домене необходимо использовать тот же пароль.

    Скриншот консоли Active Directory Domains and Trusts, в которой показано, как ввести пароль для доверия.

  10. Должно появиться сообщение о том, что отношение доверия успешно создано. Чтобы настроить доверие, нажмите кнопку "Далее".

  11. Подтвердите исходящее доверие и нажмите кнопку "Далее".

  12. Введите имя пользователя и пароль пользователя, имеющего права администратора из другого домена.

После прохождения проверки подлинности устанавливается доверие. На вкладке Trusts должен отображаться указанный домен onpremad1.com.

Настройка проверки подлинности на основе удостоверений и гибридных учетных записей пользователей

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

  1. Войдите на портал Azure и создайте две учетные записи хранения, например onprem1sa и onprem2sa. Для оптимальной производительности разверните учетные записи хранения в том же регионе, что и клиенты, из которых планируется получить доступ к общим ресурсам.

    Примечание.

    Вам не нужно создавать вторую учетную запись хранения. В этих инструкциях показано, как получить доступ к учетным записям хранения, принадлежащим разным лесам. Если у вас есть только одна учетная запись хранения, можно игнорировать инструкции по настройке второй учетной записи хранения.

  2. Создайте общую папку SMB Azure и назначьте разрешения на уровне общего доступа для каждой учетной записи хранения.

  3. Синхронизируйте локальный AD с Microsoft Entra ID с помощью приложения Microsoft Entra Connect Sync.

  4. Присоедините виртуальную машину Azure в Forest 1 к вашей локальной службе AD DS. Сведения о том, как выполнить присоединение к домену, см. в разделе Присоединение компьютера к домену.

  5. Включите проверку подлинности AD DS в учетной записи хранилища, связанной с Forest 1, например onprem1sa. На этом шаге создается учетная запись компьютера в локальной ad с именем onprem1sa, которая представляет учетную запись хранения Azure и присоединяет учетную запись хранения к домену onpremad1.com. Вы можете убедиться в том, что удостоверение AD, представляющее учетную запись хранения, было создано, если найдёте его в Active Directory Users and Computers для onpremad1.com. В этом примере отображается учетная запись компьютера, называемая onprem1sa.

  6. Создайте учетную запись пользователя, перейдя к Active Directory > onpremad1.com. Щелкните правой кнопкой мыши на Пользователи, выберите Создать, введите имя пользователя (например, onprem1user), и установите флажок Пароль никогда не истекает (необязательно).

  7. Необязательно. Если вы хотите использовать Azure RBAC для назначения разрешений на уровне общего доступа, необходимо синхронизировать пользователя с идентификатором Entra с помощью Microsoft Entra Connect. Обычно Microsoft Entra Connect Sync обновляется каждые 30 минут. Однако вы можете принудительно синхронизировать его немедленно, открыв сеанс PowerShell с повышенными привилегиями и выполнив команду Start-ADSyncSyncCycle -PolicyType Delta. Возможно, вам сначала потребуется установить модуль ADSync, выполнив Import-Module ADSync. Чтобы убедиться, что пользователь синхронизирован с Entra ID, войдите на портал Azure с подпиской Azure, связанной с клиентом с несколькими лесами, и выберите Microsoft Entra ID. Выберите " Управление > пользователями" и найдите добавленного пользователя (например, onprem1user). Локальная синхронизация включена должно быть Да.

  8. Задайте разрешения на уровне общего доступа с помощью ролей RBAC в Azure или разрешений уровня общего доступа по умолчанию.

Повторите шаги 4-8 для домена Forest 2onpremad2.com (учетная запись хранения onprem2sa/user onprem2user). Если у вас более двух лесов, повторите шаги для каждого леса.

Настройка разрешений на уровне каталога и файлов (необязательно)

В среде с несколькими лесами используйте служебную программу командной строки icacls для настройки разрешений на уровне каталога и файлов для пользователей в обоих лесах. См. Настройка Windows ACL с помощью icacls.

Если icacls выдает ошибку "Отказ в доступе", выполните следующие действия, чтобы настроить разрешения на уровне каталога и файлов:

  1. Удалите существующее подключение к общей папке: net use * /delete /y

  2. Повторно подключите общую папку с помощью модели разрешений Windows для администратора SMB или ключа учетной записи хранения (не рекомендуется). См. раздел Подключение файлового хранилища Azure SMB в Windows.

  3. Задайте разрешения icacls для пользователя в Лесу 2 в учетной записи хранения, присоединенной к Лесу 1 из клиента в Лесу 1.

Примечание.

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

Настройка суффиксов домена

Как описано ранее, Azure Files регистрируется в AD DS почти так же, как и обычный файловый сервер. Он создает удостоверение (по умолчанию учетную запись компьютера, но она также может быть учетной записью входа в службу), которая представляет учетную запись хранения в AD DS для проверки подлинности. Единственное различие заключается в том, что зарегистрированное имя субъекта-службы (SPN) учетной записи хранения заканчивается file.core.windows.net, что не соответствует суффиксу домена. Из-за разного суффикса домена необходимо настроить политику маршрутизации по суффиксу, чтобы включить многолесовую проверку подлинности.

Так как суффикс file.core.windows.net является суффиксом для всех Azure Files ресурсов, а не суффиксом для определенного домена AD, контроллер домена клиента не знает, в какой домен пересылать запрос. Поэтому не удается выполнить все запросы, в которых ресурс не найден в собственном домене.

Например, если пользователи в домене в Лесу 1 хотят получить доступ к общей папке с учетной записью хранения, зарегистрированной в домене в Лесу 2, это не будет работать автоматически, так как принципал службы учетной записи хранения не имеет суффикса, соответствующего суффиксу любого домена в Лесу 1.

Суффиксы домена можно настроить с помощью одного из следующих методов:

Изменение суффикса SPN учетной записи хранения и добавление записи CNAME

Вы можете решить проблему маршрутизации домена, изменив суффикс SPN учетной записи хранения, связанной с файлом общего доступа Azure, а затем добавив запись CNAME для маршрутизации нового суффикса к конечной точке учетной записи хранения. Благодаря этой конфигурации клиенты, присоединенные к домену, могут получить доступ к учетным записям хранения, присоединенным к любому лесу. Это решение работает для сред с двумя или более лесами.

В этом примере домены onpremad1.com и onpremad2.com имеют onprem1sa> и onprem2sa в качестве учетных записей хранения, связанных с общими папками SMB Azure в соответствующих доменах. Эти домены находятся в разных лесах, которые доверяют друг другу доступ к ресурсам в лесах друг друга. Вы хотите разрешить доступ к обеим учетным записям хранения от клиентов, принадлежащих каждому лесу. Для этого необходимо изменить суффиксы SPN учетной записи хранилища.

onprem1sa.onpremad1.com —> onprem1sa.file.core.windows.net

onprem2sa.onpremad2.com -> onprem2sa.file.core.windows.net

Это изменение позволяет клиентам подключать общую папку с использованием net use \\onprem1sa.onpremad1.com, поскольку клиенты как в onpremad1, так и в onpremad2 знают о необходимости искать onpremad1.com, чтобы найти соответствующий ресурс для этой учетной записи хранения.

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

  1. Убедитесь, что вы установили доверие между двумя лесами и настроили проверку подлинности на основе удостоверений и гибридные учетные записи пользователей, как описано в предыдущих разделах.

  2. Измените SPN (имя субъекта-службы) учетной записи хранилища с помощью средства setspn. <DomainDnsRoot> можно найти, выполнив следующую команду PowerShell Active Directory: (Get-AdDomain).DnsRoot

    setspn -s cifs/<storage-account-name>.<DomainDnsRoot> <storage-account-name>
    
  3. Добавьте запись CNAME с помощью диспетчера DNS Active Directory и выполните приведенные ниже действия для каждой учетной записи хранения в домене, к которому присоединена учетная запись хранения. Если вы используете частную конечную точку, добавьте запись CNAME для сопоставления с именем частной конечной точки.

    1. Откройте диспетчер DNS Active Directory.

    2. Перейдите к домену (например, onpremad1.com).

    3. Перейдите в раздел "Зоны прямого поиска".

    4. Выберите узел с именем вашего домена (например, onpremad1.com) и выберите New Alias (CNAME) правой кнопкой мыши.

    5. В поле псевдонима введите имя аккаунта хранения.

    6. Для полного доменного имени (FQDN) введите <storage-account-name>.<domain-name>, например mystorageaccount.onpremad1.com.

    7. Для FQDN целевого узла введите <storage-account-name>.file.core.windows.net

    8. Нажмите ОК.

      Скриншот, показывающий, как добавить запись CNAME для использования суффиксной маршрутизации с помощью Active Directory DNS Manager.

Теперь с клиентов, подключенных к домену, можно использовать учетные записи хранения, связанные с любым лесом.

Примечание.

Убедитесь, что часть полного доменного имени, относящаяся к имени узла, соответствует имени учетной записи хранения, как это описано ранее. В противном случае вы получите ошибку доступа: «Имя файла, имя каталога или синтаксис метки тома неверный». При настройке сеанса SMB появляется сообщение о трассировке сети с кодом (0xc0000033).

Добавление суффикса пользовательского имени и правила маршрутизации

Если вы уже изменили суффикс имени учетной записи хранения и добавили запись CNAME, как описано в предыдущем разделе, можно пропустить этот шаг. Если вы не хотите вносить изменения в DNS или изменять суффикс имени учетной записи хранения, можно настроить правило маршрутизации суффикса из Леса 1 в Лес 2 для пользовательского суффикса file.core.windows.net.

Примечание.

Настройка маршрутизации суффикса имени не влияет на возможность доступа к ресурсам в локальном домене. Необходимо только разрешить клиенту перенаправить запрос в домен, соответствующий суффиксу, если ресурс не найден в собственном домене.

Сначала добавьте новый настраиваемый суффикс на Forest 2. Убедитесь, что у вас есть необходимые административные разрешения для изменения конфигурации и что вы установили доверие между двумя лесами. Затем выполните следующие шаги:

  1. Войдите на компьютер или виртуальную машину, присоединенную к домену в Forest 2.
  2. Откройте консоль Active Directory Domains and Trusts.
  3. Щелкните правой кнопкой мыши Active Directory Домены и отношения доверия.
  4. Выберите "Свойства" и нажмите кнопку "Добавить".
  5. Добавьте "file.core.windows.net" в виде суффикса UPN.
  6. Нажмите кнопку "Применить", а затем нажмите кнопку "ОК ", чтобы закрыть мастер.

Затем добавьте правило маршрутизации суффикса на Лес 1, чтобы оно перенаправляло на Лес 2.

  1. Войдите в компьютер или виртуальную машину, присоединенную к домену в Forest 1.
  2. Откройте консоль Active Directory Domains and Trusts.
  3. Щелкните правой кнопкой мыши по домену, к которому вы хотите получить общий доступ к файлу. Перейдите на вкладку "Отношения доверия". Выберите домен Forest 2 из исходящих доверий.
  4. Выберите Свойства, затем Маршрутизация по суффиксу имени.
  5. Проверьте, отображается ли суффикс "*.file.core.windows.net". В противном случае нажмите кнопку "Обновить".
  6. Выберите "*.file.core.windows.net", а затем щелкните Включить и Применить.

Убедитесь, что доверие работает

Убедитесь, что доверие работает, выполнив команду klist , чтобы отобразить содержимое кэша учетных данных Kerberos и таблицы ключей.

  1. Войдите на компьютер или виртуальную машину, присоединенную к домену, в Forest 1 и откройте командную строку Windows.

  2. Чтобы отобразить кэш учетных данных для учетной записи хранения, присоединенной к домену, в Лесу 2 выполните одну из следующих команд:

  3. Вы должны увидеть результат, аналогичный приведенному ниже. Выходные данные klist немного отличаются в зависимости от того, какой метод использовался для настройки суффиксов домена.

    Client: onprem1user @ ONPREMAD1.COM
    Server: cifs/onprem2sa.file.core.windows.net @ ONPREMAD2.COM
    KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
    Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
    Start Time: 11/22/2022 18:45:02 (local)
    End Time: 11/23/2022 4:45:02 (local)
    Renew Time: 11/29/2022 18:45:02 (local)
    Session Key Type: AES-256-CTS-HMAC-SHA1-96
    Cache Flags: 0x200 -> DISABLE-TGT-DELEGATION
    Kdc Called: onprem2.onpremad2.com
    
  4. Войдите на компьютер или виртуальную машину, присоединенную к домену в Forest 2 и откройте командную строку Windows.

  5. Чтобы отобразить кэш учетных данных для учетной записи хранения, присоединенной к домену, в Лесу 1, выполните одну из следующих команд:

  6. Вы должны увидеть результат, аналогичный приведенному ниже. Выходные данные klist немного отличаются в зависимости от того, какой метод использовался для настройки суффиксов домена.

    Client: onprem2user @ ONPREMAD2.COM
    Server: krbtgt/ONPREMAD2.COM @ ONPREMAD2.COM
    KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
    Ticket Flags 0x40e10000 -> forwardable renewable pre_authent name_canonicalize
    Start Time: 11/22/2022 18:46:35 (local)
    End Time: 11/23/2022 4:46:35 (local)
    Renew Time: 11/29/2022 18:46:35 (local)
    Session Key Type: AES-256-CTS-HMAC-SHA1-96
    Cache Flags: 0x1 -> PRIMARY
    Kdc Called: onprem2
    
    Client: onprem2user @ ONPREMAD2.COM    
    Server: cifs/onprem1sa.file.core.windows.net @ ONPREMAD1.COM
    KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
    Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
    Start Time: 11/22/2022 18:46:35 (local)
    End Time: 11/23/2022 4:46:35 (local)
    Renew Time: 11/29/2022 18:46:35 (local)
    Session Key Type: AES-256-CTS-HMAC-SHA1-96
    Cache Flags: 0x200 -> DISABLE-TGT-DELEGATION
    Kdc Called: onpremad1.onpremad1.com
    

Если вы видите предыдущие выходные данные, все готово. Если вы этого не сделаете, выполните следующие действия, чтобы предоставить альтернативные суффиксы UPN и настроить работу многолесовой аутентификации.

Внимание

Добавление пользовательского суффикса имени и правила маршрутизации работает только в средах с двумя лесами. Если у вас более двух лесов, измените суффикс учетной записи хранилища SPN и добавьте запись CNAME.

Сначала добавьте новый настраиваемый суффикс на Forest 1.

  1. Войдите в компьютер или виртуальную машину, присоединенную к домену в Forest 1.
  2. Откройте консоль Active Directory Domains and Trusts.
  3. Щелкните правой кнопкой мыши Active Directory Домены и отношения доверия.
  4. Выберите "Свойства" и нажмите кнопку "Добавить".
  5. Добавьте альтернативный суффикс UPN, например, "onprem1sa.file.core.windows.net".
  6. Нажмите кнопку "Применить", а затем нажмите кнопку "ОК ", чтобы закрыть мастер.

Затем добавьте правило маршрутизации для суффикса в Forest 2.

  1. Войдите на компьютер или виртуальную машину, присоединенную к домену в Forest 2.
  2. Откройте консоль Active Directory Domains and Trusts.
  3. Щелкните правой кнопкой мыши по домену, через который вы хотите получить доступ к файловому хранилищу, а затем выберите вкладку "Доверия" и выберите исходящее доверие Лес 2, где было добавлено имя маршрутизации суффикса.
  4. Выберите Свойства, затем Маршрутизация по суффиксу имени.
  5. Проверьте, отображается ли суффикс "onprem1sa.file.core.windows.net". В противном случае нажмите кнопку "Обновить".
  6. Выберите "onprem1sa.file.core.windows.net", а затем нажмите кнопку "Включить " и "Применить".

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

Дополнительные сведения можно найти здесь