Включение проверки подлинности Kerberos Microsoft Entra для Файлы Azure на macOS с помощью Platform SSO (предварительная версия)

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

В этой статье описано, как настроить проверку подлинности Kerberos в Microsoft Entra для Файлы Azure на устройствах macOS с помощью macOS Platform Single Sign-On (PSSO) (предварительная версия). Используя эту конфигурацию, устройства macOS, присоединенные к Microsoft Entra, могут беспрепятственно получать доступ к общим файловым ресурсам Azure Files по протоколу SMB с помощью облачных билетов Kerberos Ticket Granting Ticket (TGT), без запроса учетных данных у пользователей.

Platform SSO для macOS интегрирует устройства Mac с Microsoft Entra ID и позволяет пользователям входить в систему с учетными данными Microsoft Entra ID, используя ключ, привязанный к устройству, смарт-карту или пароль Microsoft Entra ID. Помимо основного токена обновления Platform SSO (PRT), Microsoft Entra ID также выдает облачный билет Kerberos TGT, который передается собственному стеку Kerberos в macOS через сопоставление TGT в PSSO. Билеты Kerberos TGT для локальной среды также можно получить, если клиент настроен (например, через Intune) на выполнение запросов к контроллерам домена в локальной среде. Эта конфигурация обеспечивает простой единый вход в Файлы Azure без запроса пользователей на интерактивные учетные данные.

Дополнительные сведения о проверке подлинности Kerberos в Microsoft Entra для Файлы Azure см. в статье Обзор вариантов проверки подлинности на основе удостоверений для доступа к Файлы Azure по протоколу SMB.

Необходимые условия

Перед настройкой доступа к Файлы Azure на macOS с помощью Platform SSO убедитесь, что выполнены следующие предварительные требования.

Требования к устройству macOS

  • macOS Tahoe 26.5 или более поздней версии с установленными последними обновлениями.
  • Microsoft Intune Корпоративный портал версии 5.2408.0 или более поздней версии, установленной на устройстве.
  • Устройство macOS должно быть зарегистрировано в решении управления мобильными устройствами (MDM).
  • Функция Platform SSO для macOS уже должна быть настроена и развернута на устройствах. Если вы не настроили SSO платформы, ознакомьтесь с документацией Platform SSO для общей информации или в руководстве по развертыванию Intune для пошаговых инструкций перед продолжением.

требования Файлы Azure

Требования к разрешениям и инструментам

Чтобы запустить скрипт обновления регистрации приложения, описанный в этой статье, необходимо:

  • PowerShell 5.1 или PowerShell 7.x.
  • Модуль PowerShell Microsoft.Graph.Applications. Если этот модуль не установлен, запустите Install-Module Microsoft.Graph.Applications -Scope CurrentUser.
  • Либо роль Microsoft Entra Администратор приложений, либо Глобальный администратор, с разрешением Application.ReadWrite.All для API Microsoft Graph.

Обновление URI идентификатора регистрации приложения

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

Чтобы клиенты macOS могли получать доступ к существующим файловым ресурсам Azure с помощью Microsoft Entra Kerberos с Platform SSO, необходимо изменить URI идентификатора CIFS на значение в нижнем регистре cifs, иначе не удастся подключить файловый ресурс.

Если включить учетную запись хранения для проверки подлинности Kerberos Microsoft Entra, система автоматически регистрирует приложение Microsoft Entra с идентификаторами URI, которые включают префикс CIFS/<storageaccount>.file.core.windows.net. macOS требует, чтобы префикс cifs был в нижнем регистре при подключении общего SMB-ресурса с использованием Kerberos. Если URI какого-либо идентификатора содержит префикс CIFS, записанный прописными буквами, клиенты macOS не могут выполнить проверку подлинности и подключить общий ресурс.

Чтобы обновить URI идентификатора, используйте скрипт PowerShell, предоставленный в репозитории примеров Файлы Azure. Скрипт обновляет URI идентификаторов в регистрациях приложений с CIFS/<storageaccount>.file.core.windows.net на cifs/<storageaccount>.file.core.windows.net. Он поддерживает как одно приложение, так и массовые обновления через CSV-файл, и создает журнал аудита всех изменений.

Tip

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

Обновить одну регистрацию приложения

Замените <app-registration-id> идентификатором регистрации приложения для учетной записи хранения. Чтобы найти этот идентификатор, перейдите в раздел Microsoft Entra ID>Регистрация приложений>All applications и найдите имя учетной записи хранения.

.\updateappmanifestazurefiles.ps1 -AppId "<app-registration-id>"

Чтобы создать журнал аудита, укажите -OutputFile параметр:

.\updateappmanifestazurefiles.ps1 -AppId "<app-registration-id>" -OutputFile "C:\audit\output.csv"

Обновление нескольких регистраций приложений

Создайте CSV-файл с заголовком AppId столбца, содержащим идентификаторы регистрации приложения для каждой учетной записи хранения, которую требуется обновить. Рассмотрим пример.

AppId
12345678-1234-1234-1234-123456789012
87654321-4321-4321-4321-210987654321

Затем запустите скрипт с параметром -CsvFilePath :

$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$outputFile = "C:\audit\production_update_$timestamp.csv"
.\updateappmanifestazurefiles.ps1 -CsvFilePath "C:\apps.csv" -OutputFile $outputFile

Note

Скрипт обрабатывает приложения пакетами по 50, с задержкой 100 мс между приложениями и 2 секунды между пакетами. Он работает с до 20 000 приложений. При больших запусках сначала протестируйте на небольшом подмножестве и просмотрите журнал аудита перед полномасштабным запуском.

Проверьте обновление URI идентификатора

После выполнения скрипта убедитесь, что URI идентификатора был успешно обновлен.

  1. На портале Azure откройте Microsoft Entra ID.
  2. В разделе Manage выберите Регистрация приложений>All applications.
  3. Найдите имя учетной записи хранения и выберите соответствующее приложение.
  4. В разделе "Управление" выберите "Манифест".
  5. Убедитесь, что URI идентификатора теперь отображается cifs/<storageaccount>.file.core.windows.net в нижнем регистре.

Настройте MDM-профили Kerberos SSO в macOS

Чтобы включить единый вход Kerberos для Файлы Azure в macOS, разверните профиль MDM для единого входа Kerberos, который указывает macOS на область Microsoft Entra ID Cloud Kerberos. Если вашим пользователям также необходимо получить доступ к локальным ресурсам Active Directory через Kerberos, разверните отдельный профиль для локального AD-сервера.

Note

Если вы планируете использовать и области Microsoft Entra ID Cloud Kerberos, и области локальной Active Directory, сначала разверните профиль локальной Active Directory, а затем профиль Microsoft Entra ID Cloud Kerberos.

Настройка профиля Microsoft Entra ID Cloud Kerberos

Используйте следующие параметры, чтобы настроить профиль MDM Microsoft Entra ID Cloud Kerberos. Замените все значения заполнителей правильными значениями для клиента.

Ключ конфигурации Рекомендуемое значение Note
preferredKDCs kkdcp://login.microsoftonline.com/<tenantId>/kerberos Замените <tenantId> идентификатор клиента Microsoft Entra. Это значение можно найти на странице OverviewЦентр администрирования Microsoft Entra.
PayloadOrganization Название организации
Hosts .windows.net и windows.net.
Realm KERBEROS.MICROSOFTONLINE.COM Должно быть написано заглавными буквами.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>ExtensionData</key>
            <dict>
                <key>usePlatformSSOTGT</key>
                <true/>
                <key>performKerberosOnly</key>
                <true/>
                <key>preferredKDCs</key>
                <array>
                    <string>kkdcp://login.microsoftonline.com/<tenantId>/kerberos</string>
                </array>
            </dict>
            <key>ExtensionIdentifier</key>
            <string>com.apple.AppSSOKerberos.KerberosExtension</string>
            <key>Hosts</key>
            <array>
                <string>windows.net</string>
                <string>.windows.net</string>
            </array>
            <key>Realm</key>
            <string>KERBEROS.MICROSOFTONLINE.COM</string>
            <key>PayloadDisplayName</key>
            <string>Single Sign-On Extensions Payload for Microsoft Entra ID Cloud Kerberos</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.extensiblesso.00aa00aa-bb11-cc22-dd33-44ee44ee44ee</string>
            <key>PayloadType</key>
            <string>com.apple.extensiblesso</string>
            <key>PayloadUUID</key>
            <string>00aa00aa-bb11-cc22-dd33-44ee44ee44ee</string>
            <key>TeamIdentifier</key>
            <string>apple</string>
            <key>Type</key>
            <string>Credential</string>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string></string>
    <key>PayloadDisplayName</key>
    <string>Kerberos SSO Extension for macOS for Microsoft Entra ID Cloud Kerberos</string>
    <key>PayloadEnabled</key>
    <true/>
    <key>PayloadIdentifier</key>
    <string>11bb11bb-cc22-dd33-ee44-55ff55ff55ff</string>
    <key>PayloadOrganization</key>
    <string>Contoso</string>
    <key>PayloadRemovalDisallowed</key>
    <true/>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>11bb11bb-cc22-dd33-ee44-55ff55ff55ff</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

Сохраните эту конфигурацию с помощью текстового редактора .mobileconfig с расширением файла (например, cloud-kerberos.mobileconfigпосле обновления значений среды).

Note

Если установить для ключа usePlatformSSOTGT значение true, расширение Kerberos использует билет TGT из Platform SSO с той же областью Kerberos. Если задать для ключа performKerberosOnly значение true, расширение не выполняет проверку срока действия пароля, проверку внешнего изменения пароля и не получает домашний каталог пользователя. Настройте оба ключа во всех развертываемых вами профилях Kerberos SSO.

Настроить профиль Kerberos для локальной службы Active Directory (необязательно)

Если вашим пользователям также необходим единый вход Kerberos (SSO) к локальным ресурсам Active Directory, настройте отдельный профиль MDM для локальной сферы AD. Замените все ссылки на contoso.com и Contoso правильными значениями для вашей среды.

Ключ конфигурации Рекомендуемое значение Note
Hosts .contoso.com и contoso.com. Замените локальным доменом или именем леса. Сохраните предыдущий . символ перед доменным именем.
Realm CONTOSO.COM Замените локальным именем области. Должно быть написано заглавными буквами.
PayloadOrganization Название организации
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>ExtensionData</key>
            <dict>
                <key>allowPasswordChange</key>
                <true/>
                <key>allowPlatformSSOAuthFallback</key>
                <true/>
                <key>performKerberosOnly</key>
                <true/>
                <key>pwReqComplexity</key>
                <true/>
                <key>syncLocalPassword</key>
                <false/>
                <key>usePlatformSSOTGT</key>
                <true/>
            </dict>
            <key>ExtensionIdentifier</key>
            <string>com.apple.AppSSOKerberos.KerberosExtension</string>
            <key>Hosts</key>
            <array>
                <string>.contoso.com</string>
                <string>contoso.com</string>
            </array>
            <key>Realm</key>
            <string>CONTOSO.COM</string>
            <key>PayloadDisplayName</key>
            <string>Single Sign-On Extensions Payload for On-Premises</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.extensiblesso.1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5</string>
            <key>PayloadType</key>
            <string>com.apple.extensiblesso</string>
            <key>PayloadUUID</key>
            <string>1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5</string>
            <key>TeamIdentifier</key>
            <string>apple</string>
            <key>Type</key>
            <string>Credential</string>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string></string>
    <key>PayloadDisplayName</key>
    <string>Kerberos SSO Extension for macOS for On-Premises</string>
    <key>PayloadEnabled</key>
    <true/>
    <key>PayloadIdentifier</key>
    <string>2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6</string>
    <key>PayloadOrganization</key>
    <string>Contoso</string>
    <key>PayloadRemovalDisallowed</key>
    <true/>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

Сохраните эту конфигурацию с помощью текстового редактора .mobileconfig с расширением файла (например, on-prem-kerberos.mobileconfigпосле обновления значений среды).

Развертывание профилей с помощью Microsoft Intune

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

  1. Войдите в Центр администрирования Microsoft Intune.
  2. Выберите Устройства>Конфигурация>Создать>Новую политику.
  3. Введите следующие свойства:
    • Платформа: выберите macOS.
    • Тип профиля: выберите Шаблоны.
  4. Выберите настраиваемый шаблон и нажмите кнопку "Создать".
  5. В разделе Основные введите описательное имя политики, например macOS — Файлы Azure Cloud Kerberos SSO, и при необходимости описание. Нажмите кнопку Далее.
  6. Введите имя в поле Пользовательское имя профиля конфигурации.
  7. Для канала развертывания выберите канал устройства.
  8. Выберите значок папки и загрузите файл .mobileconfig, который вы ранее сохранили и настроили.
  9. Нажмите кнопку Далее.
  10. В тегах области назначьте все применимые теги области и нажмите кнопку "Далее".
  11. В заданиях выберите пользователей или группы пользователей, которые получают профиль. Политики SSO платформы применяются к пользователям; не назначайте эту политику устройствам.
  12. Нажмите кнопку "Далее", просмотрите параметры и нажмите кнопку "Создать".

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

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

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

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

Подключение общего файлового ресурса Azure в macOS

После того как вы развернете профили единого входа Kerberos и обновите регистрацию приложения, пользователи macOS смогут подключать общий файловый ресурс Azure в Finder.

  1. Откройте Finder.

  2. В меню Go выберите "Подключиться к серверу" или нажмите клавиши Command+K.

  3. В поле "Адрес сервера" введите URL-адрес SMB для общей папки. Преобразуйте UNC-путь Windows в URL-адрес SMB, заменив \\ на smb:// и каждый \ с /. Рассмотрим пример.

    smb://<storageaccountname>.file.core.windows.net/<sharename>
    
  4. Нажмите Подключиться.

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

Протестируйте и проверьте аутентификацию Kerberos

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

Проверить выдачу билета Kerberos

В клиенте macOS откройте терминал и выполните следующую команду:

app-sso platform -s

Убедитесь, что вывод содержит билет Kerberos для области Kerberos Microsoft Entra ID Cloud, на что указывает значение ticketKeyPathtgt_cloud. Если вы также развернули локальный профиль AD Kerberos, второй билет, у которого для ticketKeyPath установлено значение tgt_ad, также должен присутствовать.

Убедитесь, что порт 445 открыт:

nc -vz exampleaccount.file.core.windows.net 445

Проверка доступа к общей папке

Попробуйте подключить общий файловый ресурс Azure через Finder, выполнив действия, описанные в предыдущем разделе. Общий ресурс должен монтироваться без запроса интерактивных учетных данных. Если появится запрос учетных данных, см. раздел "Устранение неполадок".

Troubleshoot

Пользователи запрашивают учетные данные при подключении общей папки

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

  • URI идентификатора регистрации приложения обновляется с CIFS/ до cifs/ (в нижнем регистре). См. Обновить URI идентификатора регистрации приложения и Проверить обновление URI идентификатора.
  • На устройстве macOS имеется действительный облачный TGT Kerberos; это подтверждается запуском app-sso platform -s в приложении «Терминал».
  • Профили MDM для единого входа Kerberos применяются к устройству.
  • Согласие администратора предоставляется для регистрации приложения Файлы Azure в Microsoft Entra ID.
  • У пользователя есть разрешения на уровне общего файлового ресурса в общем файловом ресурсе Azure.
  • MFA отключен для приложения Microsoft Entra, представляющего учетную запись хранения.

Ошибки скрипта

Ошибка Резолюция
Не указаны ни AppId, ни CsvFilePath Укажите именно один из этих параметров.
Недопустимый CSV-файл Убедитесь, что файл существует, закодирован uTF-8, имеет AppId заголовок столбца и не содержит повторяющихся записей.
Ошибки API Microsoft Graph Убедитесь, что у вас есть разрешение Application.ReadWrite.All и роль администратора приложения или глобального администратора .
Недопустимый идентификатор регистрации приложения Убедитесь, что идентификатор регистрации приложения существует в вашем арендаторе и доступен. Удалите кэшированные учетные данные с помощью Disconnect-MgGraph и повторной аутентификации при необходимости.

Известные проблемы

Дополнительное меню расширения единого входа Kerberos

При развертывании поддержки единого входа Kerberos с помощью Platform SSO в строке меню появляется дополнительный элемент расширения Kerberos SSO для macOS. Пользователям не нужно взаимодействовать с дополнительным элементом в строке меню, чтобы работал единый вход Kerberos. Функция единого входа (SSO) работает корректно, даже если значок в строке меню показывает «Вход не выполнен». Вы можете рекомендовать пользователям игнорировать этот значок в строке меню.