Устранение неполадок плагина расширения Microsoft Enterprise SSO на устройствах Apple

В этой статье содержатся рекомендации по устранению неполадок, которые помогают администраторам решать проблемы при развертывании и использовании подключаемого модуля Enterprise SSO. Расширение единого входа Apple можно развернуть на iOS/iPadOS и macOS.

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

Корпорация Майкрософт реализовала подключаемый модуль, построенный на основе структуры единого входа Apple, которая обеспечивает посредническую аутентификацию для приложений, интегрированных с Microsoft Entra ID. Дополнительную информацию см. в статье плагин Microsoft Enterprise SSO для устройств Apple.

Типы расширений

Apple поддерживает два типа расширений единого входа, которые являются частью своей платформы: перенаправление и учетные данные. Плагин единого входа Microsoft Enterprise реализован как тип перенаправления и лучше всего подходит для брокерской аутентификации с Microsoft Entra ID. В следующей таблице сравниваются два типа расширений.

тип расширения; Наиболее подходит для Принцип работы Основные отличия
Перенаправление Современные методы проверки подлинности, такие как OpenID Connect, OAUTH2 и SAML (Microsoft Entra ID) Операционная система перехватывает запрос проверки подлинности из приложения на URL-адреса поставщика удостоверений, определенные в профиле конфигурации MDM расширения. Расширения перенаправления получают: URL-адреса, заголовки и текст. Запрос учетных данных перед запросом данных. Использует URL-адреса в профиле конфигурации MDM.
Подтверждение компетенции Типы проверки подлинности на основе вызова и ответа, такие как Kerberos (локальные службы доменов Active Directory) Запрос отправляется из приложения на сервер проверки подлинности (контроллер домена AD). Расширения учетных данных настраиваются с помощью HOSTS в профиле конфигурации MDM. Если сервер проверки подлинности возвращает запрос, соответствующий хосту, указанному в профиле, операционная система направляет запрос расширению. Расширение имеет выбор обработки или отклонения вызова. При обработке расширение возвращает заголовки аутентификации для завершения запроса, а сервер проверки подлинности возвращает ответ вызывающему. Сначала запросите данные, затем выполните проверку подлинности. Используйте HOSTs в профиле конфигурации MDM.

Корпорация Майкрософт реализует реализацию проверки подлинности с помощью брокера для следующих клиентских операционных систем:

ОС Брокер проверки подлинности
Виндоус Диспетчер веб-учетных записей (WAM)
iOS/iPadOS Microsoft Authenticator
Андроид Microsoft Authenticator или Microsoft Intune Company Portal
macOS Microsoft Intune Company Portal (через расширение единого входа в систему)

Все приложения брокера Microsoft используют основной артефакт, известный как первичный маркер обновления (PRT), который является веб-маркером JSON (JWT), используемым для получения маркеров доступа для приложений и веб-ресурсов, защищенных с помощью Microsoft Entra ID. При развертывании с помощью MDM корпоративное расширение единого входа для macOS или iOS получает PRT, аналогичное PRT, используемым на устройствах Windows менеджером веб-учетных записей (WAM). Дополнительные сведения см. в статье «Что такое основной маркер обновления».

Модель устранения неполадок

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

Действия по отказу от единого входа платформы в macOS

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

  1. Удалите таргетинг для профиля SSO с включенной поддержкой PSSO
  2. Инициируйте синхронизацию устройств, чтобы получить профиль единого входа с включенным PSSO удален с устройства.
  3. Нацеливание на устройство с новым SSO-профилем с отключенной функцией PSSO.
  4. Запуск синхронизации устройств для получения нового профиля, установленного на устройстве

Внимание

Примечание: Обновление существующего профиля PSSO на устройстве не поможет отключить PSSO после завершения регистрации PSSO. Только полное удаление профиля SSO с устройства приведет к удалению состояния PSSO с устройства.

Контекст.

Пользователи начнут видеть уведомление о регистрации PSSO на устройствах macOS 13+ в двух сценариях:

  1. Если устройство уже имеет версию Intune Company Portal, поддерживающую PSSO, и администратор развертывает новую политику расширения единого входа с включенной функцией PSSO
  2. Если пользователь уже попадает под действие политики расширения единого входа с активированным PSSO, а позднее на устройстве устанавливается версия Intune Company Portal, поддерживающая PSSO.

Внимание

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

Внимание

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

Устранение неполадок при развертывании

Большинство проблем, с которыми сталкиваются клиенты, возникают либо из-за неправильной конфигурации расширения профиля единого входа (SSO) в системе управления мобильными устройствами (MDM), либо из-за неспособности устройства Apple получить профиль конфигурации из MDM. В этом разделе рассматриваются действия, которые можно предпринять, чтобы убедиться, что профиль MDM был развернут в Mac и имеет правильную конфигурацию.

Требования к развертыванию

  • операционная система macOS: версия 10.15 (Catalina) или более поздней.
  • Операционная система iOS: версия 13 или более поздней.
  • Устройство, управляемое любым поставщиком MDM, поддерживающим Apple macOS и (или) iOS (регистрация MDM).
  • Программное обеспечение брокера проверки подлинности установлено: Microsoft Intune Company Portal или Microsoft Authenticator для iOS.

Проверка версии операционной системы macOS

Чтобы проверить версию операционной системы (ОС) на устройстве macOS, выполните следующие действия. Расширения профилей единого входа Apple развертываются только на устройствах под управлением macOS 10.15 (Catalina) или более поздней версии. Вы можете проверить версию macOS из пользовательского интерфейса или терминала.

Пользовательский интерфейс
  1. На устройстве macOS выберите значок Apple в левом верхнем углу и выберите "Об этом Mac".

  2. Версия операционной системы указана рядом с macOS.

Терминал
  1. На устройстве macOS дважды щелкните папку "Приложения ", а затем дважды щелкните папку "Служебные программы ".

  2. Дважды щелкните на приложении Терминал.

  3. Когда откроется терминал, введите sw_vers в командной строке и ищите результат, подобный следующему:

    % sw_vers
    ProductName: macOS
    ProductVersion: 13.0.1
    BuildVersion: 22A400
    

Проверка версии операционной системы iOS

Чтобы проверить версию операционной системы (ОС) на устройстве iOS, выполните следующие действия. Профили расширения SSO Apple развертываются только на устройствах с iOS 13 или более поздней версии. Вы можете проверить версию iOS из приложения "Параметры". Откройте приложение "Параметры":

Снимок экрана: значок приложения параметров iOS.

Перейдите к разделу "Общие ", а затем ". На этом экране перечислены сведения об устройстве, включая номер версии iOS:

Снимок экрана, показывающий версию iOS в приложении

Развертывание конфигурационного профиля расширения единого входа через MDM (Управление Мобильными Устройствами)

Обратитесь к администратору MDM (или группе Device Management), чтобы обеспечить развертывание профиля конфигурации расширения на устройствах Apple. Профиль расширения можно развернуть с любого MDM, поддерживающего устройства macOS или iOS.

Внимание

Apple требует, чтобы устройства были зарегистрированы в MDM для развертывания расширения для единого входа.

В следующей таблице приведены конкретные рекомендации по установке MDM в зависимости от того, в какой ОС развертывается расширение:

Внимание

Хотя для развертывания расширения для единого входа поддерживается любой MDM, многие организации реализуют условные политики доступа на основе устройства путем оценки политик соответствия MDM. Если используется сторонний MDM, убедитесь, что поставщик MDM поддерживает Intune Partner Compliance, если вы хотите использовать политики условного доступа на основе устройств. При развертывании расширения единого входа через Intune или MDM-поставщика, который поддерживает соответствие требованиям партнеров Intune, расширение может передать сертификат устройства в Microsoft Entra ID для завершения аутентификации устройства.

Проверка конфигурации сети на устройстве macOS

Платформа расширения единого входа от Apple и расширение Microsoft Enterprise SSO, построенное на её основе, требуют, чтобы определенные домены были исключены из перехвата и проверки TLS (также известных как разрыв и проверка прокси-сервера). Следующие домены не должны подвергаться проверке TLS:

  • app-site-association.cdn-apple.com
  • app-site-association.networking.apple
Проверьте, нарушена ли конфигурация единого входа из-за проверки TLS

Вы можете проверить, влияет ли проверка TLS на конфигурацию единого входа, запустив sysdiagnose из приложения Терминал на затронутом устройстве:

sudo sysdiagnose -f ~/Desktop/

Sysdiagnose будет сохранен на рабочем столе в виде архива .tar.gz. Извлеките архив и откройте файл system_logs.logarchive . Откроется в консольном приложении. Найдите com.apple.appsso и измените фильтр на SUBSYSTEM:

Снимок экрана: sysdiagnose.

Найдите события, указывающие на наличие связанных сбоев домена, особенно связанных с доменами Майкрософт, например login.microsoftonline.com. Эти события могут указывать на проблемы инспекции TLS, которые препятствуют правильной работе расширения SSO. Домены Apple не будут отображаться в журнале sysdiagnose, даже если они затронуты неподдерживаемой проверкой конфигурации TLS.

Проверка конфигурации проверки TLS

Apple предоставляет средство macOS для проверки ряда распространенных проблем конфигурации, называемых служебной программой оценки Mac. Это средство можно скачать из AppleSeed для ИТ-специалистов. Если у вас есть доступ к AppleSeed для ИТ, то скачайте программу оценки Mac из области ресурсов. После установки приложения запустите оценку. После завершения оценки перейдите к HTTPS Interception ->-Дополнительное содержимое и> проверьте два следующих элемента:

Снимок экрана: служебная программа оценки Mac.

Если эти проверки имеют предупреждение или ошибку, возможно происходит инспекция TLS на устройстве. Обратитесь к вашей группе сети, чтобы исключить *.cdn-apple.com и *.networking.apple из проверки TLS.

Вывести подробные журналы swcd

Apple предоставляет служебную программу swcutil командной строки, которая позволяет отслеживать ход проверки связанного домена. Вы можете отслеживать любые связанные ошибки домена с помощью следующей команды:

sudo swcutil watch --verbose

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


    ```
    Entry s = authsrv, a = UBF8T346G9.com.microsoft.CompanyPortalMac, d = login.microsoftonline.com
    ```

Очистка кэша проверки TLS macOS

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

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

pkill -9 swcd
sudo swcutil reset
pkill -9 AppSSOAgent

Проверьте вновь конфигурацию расширения для единого входа (SSO) после сброса кэша.

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

  • Удалите или переместите приложение Intune Company Portal в корзину, а затем перезапустите устройство. После завершения перезагрузки можно повторно установить приложение Company Portal.
  • Повторно зарегистрируйте устройство.

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

Убедитесь, что включена защита целостности системы (SIP)

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

Error Domain=com.apple.AppSSO.AuthorizationError Code=-1000 "invalid team identifier of the extension=com.microsoft.CompanyPortalMac.ssoextension" UserInfo={NSLocalizedDescription=invalid team identifier of the extension=com.microsoft.CompanyPortalMac.ssoextension}

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

  1. Повторно включите защиту целостности системы на затронутом компьютере.
  2. Если невозможно повторно включить защиту целостности системы, убедитесь, что sudo nvram boot-args не имеет значение amfi_get_out_of_my_way, установленное как 1. Если это так, удалите это значение или задайте для него значение 0, чтобы устранить проблему.

Проверка профиля конфигурации SSO на устройстве macOS

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

Найдите профиль конфигурации MDM для расширения единого входа
  1. На устройстве macOS выберите параметры системы.

  2. Когда отобразится Системные настройки, введите Профили и нажмите ввод.

  3. Это действие должно отобразить панель профилей.

    Снимок экрана: профили конфигурации.

    Выноска снимка экрана Описание
    1 Указывает, что устройство находится под управлением MDM .
    2 Можно выбрать несколько профилей. В этом примере профиль расширения единого входа Microsoft Enterprise называется Расширяемый профиль единого входа - 32f37be3-302e-4549-a3e3-854d300e117a.

    Примечание.

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

  4. Дважды щелкните профиль конфигурации, соответствующий значению параметра НастройкиSingle Sign-On Extension.

    Скриншот профиля конфигурации расширения SSO.

    Выноска снимка экрана Параметр конфигурационного профиля Описание
    1 Подписано Центр подписи поставщика MDM.
    2 Установлено Метка даты и времени, показывающая, когда расширение установлено (или обновлено).
    3 Параметры: Расширение Единый вход Указывает, что этот профиль конфигурации является типом расширения Apple SSO (Single Sign-On).
    4 Расширение Идентификатор, который сопоставляется с идентификатором пакета приложения, на котором запущен подключаемый модуль расширения Microsoft Enterprise. Идентификатор всегда должен быть задан и идентификатор команды должен com.microsoft.CompanyPortalMac.ssoextension отображаться как (UBF8T346G9), если профиль установлен на устройстве macOS. Если какие-либо значения отличаются, MDM не вызывает расширение корректно.
    5 Тип Расширение единого входа Microsoft Enterprise всегда должно быть установлено как расширение типа перенаправления. Дополнительные сведения см. в разделе "Перенаправление и типы расширений учетных данных".
    6 URL-адреса URL-адреса входа, принадлежащие поставщику удостоверений (Microsoft Entra ID). Список поддерживаемых URL-адресов.

    Все расширения перенаправления единого входа для Apple должны иметь следующие компоненты профильных данных MDM в профиле конфигурации:

    Компонент полезной нагрузки MDM Описание
    Идентификатор расширения Включает идентификатор пакета и идентификатор команды приложения на устройстве macOS, выполняя расширение. Примечание. Расширение Microsoft Enterprise SSO всегда должно быть установлено как com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9), чтобы информировать операционную систему macOS о том, что клиентский код расширения является частью приложения Intune Company Portal.
    Тип Необходимо задать значение "Перенаправление", чтобы указать тип расширения Перенаправления.
    URL-адреса URL-адреса конечной точки поставщика удостоверений (Microsoft Entra ID), куда операционная система направляет запросы проверки подлинности в модуль.
    Необязательная конфигурация расширения Значения словаря, которые могут выступать в качестве параметров конфигурации. В контексте Microsoft Enterprise SSO Extension эти параметры конфигурации называются флагами функций. См определения функций флагов.

    Примечание.

    Определения MDM для профиля расширения единого входа Apple можно найти в статье Extensible Single Sign-on MDM payload settings for Apple devices. Microsoft реализовала наше расширение на основе этой схемы. См. модуль Microsoft Enterprise SSO для устройств Apple

  5. Чтобы убедиться, что установлен правильный профиль расширения единого входа Microsoft Enterprise, поле расширения должно соответствовать: com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9).

  6. Обратите внимание на поле 'Установленное' в конфигурационном профиле, так как это может быть полезным индикатором при устранении неполадок, когда вносятся изменения в его конфигурацию.

Если был проверен правильный профиль конфигурации, перейдите к разделу "Устранение неполадок потока проверки подлинности приложений".

Отсутствует профиль конфигурации MDM

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

Сбор журналов, специфичных для консоли MDM
  1. На устройстве macOS дважды щелкните папку "Приложения ", а затем дважды щелкните папку "Служебные программы ".

  2. Дважды щелкните на приложении Консоль.

  3. Нажмите кнопку Пуск, чтобы включить ведение журнала трассировки консоли.

    Снимок экрана: консольное приложение и кнопка запуска.

  4. Администратор MDM попытается повторно развернуть профиль конфигурации на этом устройстве или пользователе macOS и принудительно выполнить цикл синхронизации.

  5. Введите subsystem:com.apple.ManagedClient в строку поиска и нажмите Return.

    Снимок экрана: консольное приложение с фильтром подсистемы.

  6. Где мигает курсор в строке поиска, введите message:Extensible.

    Снимок экрана, на котором показана дополнительная фильтрация консоли в поле сообщения.

  7. Теперь вы должны увидеть журналы консоли MDM, отфильтрованные по действиям профиля конфигурации Extensible SSO. На следующем снимке экрана показана запись журнала Установленный профиль конфигурации, показывающая, что профиль конфигурации установлен.

Устранение неполадок с потоком проверки подлинности приложений

В этом разделе предполагается, что устройство macOS имеет правильно развернутый профиль конфигурации. Инструкции см. в разделе "Проверка профиля конфигурации единого входа на устройстве macOS".

После развертывания расширения Microsoft Enterprise для единого входа на устройствах Apple поддерживаются два типа потоков аутентификации для каждого типа приложения. При устранении неполадок важно понимать тип используемого приложения.

Типы приложений

Тип приложения Интерактивная аутентификация Невидимая аутентификация Описание Примеры
Собственное приложение MSAL X X MSAL (библиотека проверки подлинности Майкрософт) — это платформа разработчика приложений, предназначенная для создания приложений с помощью платформы удостоверений Майкрософт (Microsoft Entra ID).
Приложения, созданные на основе MSAL версии 1.1 или более поздней , могут интегрироваться с расширением единого входа Microsoft Enterprise.
Если приложение поддерживает расширение единого входа (broker), оно использует это расширение без дополнительной настройки. Дополнительные сведения см. в нашей документации примеров разработчиков MSAL.
Microsoft Список дел
Нестандартный единый вход (SSO), не зависящий от MSAL Native/Browser X Приложения, которые используют сетевые технологии Apple или веб-представления, можно настроить для получения общих учетных данных из SSO Extension.
Флаги компонентов должны быть настроены, чтобы убедиться, что идентификатор пакета для каждого приложения разрешен для получения общих учетных данных (PRT).
Microsoft Word
Сафари
Microsoft Edge
Visual Studio

Внимание

Не все собственные приложения Майкрософт используют платформу MSAL. Во время публикации этой статьи большинство приложений macOS Microsoft Office по-прежнему используют старую платформу библиотек ADAL и, следовательно, полагаются на поток единого входа в браузере.

Поиск идентификатора пакета для приложения в macOS

  1. На устройстве macOS дважды щелкните папку "Приложения ", а затем дважды щелкните папку "Служебные программы ".

  2. Дважды щелкните на приложении Терминал.

  3. При открытии терминала введите osascript -e 'id of app "<appname>"' в командной строке. См. некоторые примеры:

    % osascript -e 'id of app "Safari"'
    com.apple.Safari
    
    % osascript -e 'id of app "OneDrive"'
    com.microsoft.OneDrive
    
    % osascript -e 'id of app "Microsoft Edge"'
    com.microsoft.edgemac
    
  4. Теперь, когда были собраны идентификаторы пакетов, следуйте нашим рекомендациям по настройке флагов функций, чтобы гарантировать, что приложения SSO, не являющиеся MSAL Native/Browser, могут использовать расширение SSO. Примечание. Все идентификаторы пакета чувствительны к конфигурации флага компонента.

Внимание

Приложения, которые не используют технологии Apple Networking (например, WKWebview и NSURLSession), не смогут использовать общие учетные данные (PRT) из расширения единого входа. Google Chrome и Mozilla Firefox попадают в эту категорию. Даже если они настроены в профиле конфигурации MDM, результатом будет обычная проверка подлинности в браузере.

Начальная загрузка

По умолчанию только приложения MSAL вызывают расширение единого входа, после чего расширение получает общий учетный токен (PRT) из Microsoft Entra ID. Однако браузер Safari или другие приложения, отличные от MSAL, можно настроить для получения PRT. См. статью "Разрешить пользователям выполнять вход из приложений, которые не используют MSAL и браузер Safari". После того как расширение SSO получит PRT, оно сохранит учетные данные в цепочке ключей для входа пользователя. Затем убедитесь, что PRT присутствует в цепочке ключей пользователя:

Проверка связки ключей для доступа к PRT

  1. На устройстве macOS дважды щелкните папку "Приложения ", а затем дважды щелкните папку "Служебные программы ".

  2. Дважды щелкните приложение Keychain Access.

  3. В разделе "Цепочка ключей по умолчанию" выберите локальные элементы (или iCloud).

    • Убедитесь, что выбраны Все элементы.
    • В строке поиска в правой части введите primaryrefresh (Для фильтрации).

    Снимок экрана, показывающий, как найти PRT в приложении Keychain Access.

    Выноска снимка экрана Компонент учетных данных цепочки ключей Описание
    1 Все элементы Отображает все типы учетных данных в цепочке ключей Access
    2 Панель поиска цепочки ключей Разрешает фильтрацию по учетным данным. Фильтрация по типу PRT Microsoft Entra primaryrefresh
    3 Тип Относится к типу сертификата учетных данных. Учетные данные PRT Microsoft Entra — это тип учетных данных пароля приложения
    4 Учетная запись Отображает учетную запись пользователя Microsoft Entra, которая является владельцем PRT в формате: UserObjectId.TenantId-login.windows.net
    5 Где Отображает полное имя учетной записи. Учетные данные PRT Microsoft Entra начинаются со следующего формата: primaryrefreshtoken-29d9ed98-a469-4536-ade2-f981bc1d60529d9ed98-a469-4536-ade2-f981bc1d605 — это идентификатор приложения для службы брокера проверки подлинности Майкрософт, ответственной за обработку запросов на получение PRT.
    6 Изменен Показывает, когда учетные данные были обновлены в последний раз. Для учетных данных Microsoft Entra PRT в любое время, когда учетные данные инициализируются или обновляются в результате интерактивного события входа, обновляется метка даты и времени.
    7 Цепочка ключей Указывает, какая цепочка ключей содержит выбранные учетные данные. Учетные данные Microsoft Entra PRT находятся в Локальные элементы или iCloud цепочке ключей. Если iCloud включен на устройстве macOS, цепочка ключей локальных элементов станет цепочкой ключей iCloud .
  4. Если PRT не найден в цепочке ключей Access, выполните следующие действия на основе типа приложения:

    • Native MSAL: убедитесь, что разработчик приложения, если приложение было создано с помощью MSAL версии 1.1 или более поздней, позволило приложению быть в курсе брокера. Кроме того, ознакомьтесь с инструкциями по устранению неполадок развертывания, чтобы исключить любые проблемы с развертыванием.
    • Не MSAL (Safari): убедитесь, что флаг browser_sso_interaction_enabled компонента имеет значение 1, а не 0 в профиле конфигурации MDM

Поток проверки подлинности после начальной загрузки PRT

Теперь, когда PRT (разделяемые учетные данные) проверены, прежде чем заниматься более глубокой диагностикой неисправностей, полезно ознакомиться с основными шагами каждого типа приложения и тем, как они взаимодействуют с подключаемым модулем расширения единого входа Microsoft Enterprise (приложением брокера). Следующие анимации и описания должны помочь администраторам macOS понять сценарий перед просмотром любых данных ведения журнала.

Собственное приложение MSAL

Сценарий: Приложение, разработанное для использования MSAL (например, клиент Microsoft To Do), работающее на устройстве Apple, должно войти в систему с учетной записью Microsoft Entra, чтобы получить доступ к защищенной службе Microsoft Entra (например, Microsoft To Do Service).

Анимация GIF, показывающая поток проверки подлинности приложения MSAL с помощью PRT.

  1. Приложения, разработанные с использованием MSAL, напрямую вызывают расширение единого входа и отправляют PRT в конечную точку токенов Microsoft Entra вместе с запросом приложения на токен для защищенного ресурса Microsoft Entra.
  2. Microsoft Entra ID проверяет учетные данные PRT и возвращает токен, зависящий от приложения, обратно в брокер расширения SSO.
  3. Затем брокер расширения единого входа передает токен клиентскому приложению MSAL, которое отправляет его в защищенный ресурс Microsoft Entra.
  4. Теперь пользователь вошел в приложение, и процесс проверки подлинности завершен.
Неиспользование MSAL/Browser для единого входа в систему

Сценарий. Пользователь на устройстве Apple открывает веб-браузер Safari (или любое собственное приложение, отличное от MSAL, которое поддерживает Apple Networking Stack) для входа в защищенный ресурс Microsoft Entra (пример: https://office.com).

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

  1. Используя приложение, не связанное с MSAL (например, Safari), пользователь пытается войти в интегрированное с Microsoft Entra приложение (например, office.com) и перенаправляется для получения токена из Microsoft Entra ID.
  2. Если приложение, не использующее MSAL, включено в конфигурацию полезной нагрузки MDM, сетевой стек Apple перехватывает запрос аутентификации и перенаправляет запрос брокеру SSO Extension.
  3. Когда расширение единого входа получает перехваченный запрос, тогда PRT отправляется в конечную точку токена Microsoft Entra.
  4. Microsoft Entra ID проверяет PRT и возвращает токен, специфичный приложению, в расширение единого входа.
  5. Специфический для приложения токен предоставляется клиентскому приложению, не использующему MSAL, и клиентское приложение отправляет токен для доступа к защищенной службе Microsoft Entra.
  6. Теперь пользователь завершил вход и процесс проверки подлинности завершен.

Получение журналов расширения единого входа

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

Сохраните журналы расширения SSO из приложения Company Portal

  1. На устройстве macOS дважды щелкните папку "Приложения ".

  2. Дважды щелкните приложение Company Portal.

  3. Когда Company Portal загружается, перейдите к верхней строке меню: Справка->Сохранить диагностический отчет. Нет необходимости входить в приложение.

    Снимок экрана, на котором показано, как перейти к верхнему меню справки, чтобы сохранить диагностический отчет.

  4. Сохраните архив журнала Company Portal в выбранное вами место (например, "Рабочий стол").

  5. Откройте архив CompanyPortal.zip и откройте файл SSOExtension.log с помощью любого текстового редактора.

Совет

Удобный способ просмотра журналов — это использование Visual Studio Code с установкой расширения Log Viewer.

Просмотр журналов расширения единого входа (SSO) на macOS с помощью терминала

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

  1. На устройстве macOS дважды щелкните папку "Приложения ", а затем дважды щелкните папку "Служебные программы ".

  2. Дважды щелкните на приложении Терминал.

  3. Когда откроется терминал, введите следующее:

    tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    

    Примечание.

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

    % tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    ==> /Users/<username>/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/SSOExtension 2022-12-25--13-11-52-855.log <==
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Handling SSO request, requested operation: 
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Ignoring this SSO request...
    2022-12-29 14:49:59:282 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Finished SSO request.
    2022-12-29 14:49:59:599 | I | Beginning authorization request
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_interaction_enabled, value in config 1, value type __NSCFNumber
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Feature flag browser_sso_interaction_enabled is enabled
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_disable_mfa, value in config (null), value type (null)
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag disable_browser_sso_intercept_all, value in config (null), value type (null)
    2022-12-29 14:49:59:600 | I | Request does not need UI
    2022-12-29 14:49:59:600 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag admin_debug_mode_enabled, value in config (null), value type (null)
    
  4. При воспроизведении проблемы оставьте окно Terminal открытым, чтобы наблюдать выходные данные из последних журналов SSOExtension.

Экспорт журналов расширения SSO на iOS

Невозможно просматривать журналы расширения единого входа iOS в режиме реального времени, как это можно на macOS. Журналы расширения SSO для iOS можно экспортировать из приложения Microsoft Authenticator и затем просмотреть на другом устройстве:

  1. Откройте приложение Microsoft Authenticator:

    Screenshot с значком приложения Microsoft Authenticator в iOS.

  2. Нажмите кнопку меню в левом верхнем углу:

    Скриншот с расположением кнопки меню в приложении Microsoft Authenticator.

  3. Выберите параметр "Отправить отзыв":

    Screenshot, показывающий расположение параметра отправки отзывов в Microsoft Authenticator app.

  4. Выберите параметр "Возникли проблемы?"

    Снимок экрана, показывающий расположение опции

  5. Нажмите кнопку "Просмотреть диагностические данные":

    Снимок экрана с кнопкой «Просмотр диагностических данных» в приложении Microsoft Authenticator.

    Совет

    Если вы работаете с Microsoft Support, на этом этапе можно нажать кнопку Send, чтобы отправить журналы в службу поддержки. Это предоставит вам идентификатор инцидента, который можно предоставить вашему Microsoft Support контакту.

  6. Нажмите кнопку "Копировать все", чтобы скопировать журналы в буфер обмена устройства iOS. Затем вы можете сохранить файлы журнала в другом месте для проверки или отправить их по электронной почте или другим методам общего доступа к файлам:

    Скриншот, показывающий параметр «Копировать все журналы» в приложении Microsoft Authenticator.

Понимание логов расширения SSO

Анализ журналов расширений единого входа: это отличный способ устранения неполадок в потоке аутентификации приложений, отправляющих запросы аутентификации в Microsoft Entra ID. Каждый раз, когда вызывается брокер расширения единого входа, выполняется ряд действий по ведению журнала, которые называются запросами авторизации. Журналы содержат следующие полезные сведения для устранения неполадок:

  • Конфигурация флага функций
  • Типы запросов авторизации
    • Собственный MSAL
    • Единый вход, не использующий MSAL/Browser
  • Взаимодействие со связкой ключей macOS для операций извлечения или хранения учетных данных
  • Идентификаторы корреляции для событий входа в Microsoft Entra
    • Приобретение PRT
    • Регистрация устройства

Внимание

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

Структура журнала

Журналы расширения для системы единого входа (SSO) разбиты на столбцы. На следующем снимке экрана показана разбивка столбцов журналов:

Снимок экрана: структура столбцов журналов расширений единого входа.

колонна Имя столбца Описание
1 Локальная дата и время Отображается локальная дата и время
2 Информация
Предупреждение W-
Ошибка
Отображение сведений, предупреждений или ошибок
3 Идентификатор потока (TID) Отображает идентификатор потока выполнения SSO расширения приложения Broker.
4 Номер версии MSAL Подключаемый модуль Broker Plugin для Microsoft Enterprise SSO расширения создаётся как приложение MSAL. Этот столбец обозначает версию MSAL, запущенную приложением брокера.
5 версия macOS Отображение версии операционной системы macOS
6 Дата и время в формате UTC Отображается дата и время в формате UTC
7 Идентификатор корреляции Строки в журналах, связанных с операциями Microsoft Entra ID или Keychain, расширяют столбец с датой и временем в формате UTC, добавляя идентификатор корреляции.
8 Сообщение Отображает подробные сообщения журналов. Большинство сведений об устранении неполадок можно найти, проверив этот столбец.

Конфигурация флага компонента

Во время настройки расширения Microsoft Enterprise для единого входа в MDM необязательные специфические данные расширения отправляются в виде инструкций по изменению поведения расширения единого входа. Эти инструкции по настройке называются флагами компонентов. Конфигурация флага компонентов особенно важна для типов запросов авторизации единого входа, отличных от MSAL/Browser, так как идентификатор пакета может определить, вызывается ли расширение или нет. См документацию по флагу функции. Каждый запрос авторизации начинается с отчета о конфигурации флага компонентов. На следующем снимках экрана приведен пример конфигурации флага компонента:

Снимок экрана: пример конфигурации флага компонента расширения единого входа Майкрософт.

Выноска Фича-флаг Описание
1 включено взаимодействие с браузером для SSO Браузер, отличный от MSAL или Safari, может загрузить PRT
2 browser_sso_disable_mfa (Теперь устаревший) Во время начальной загрузки учетных данных PRT по умолчанию требуется многофакторная аутентификация (MFA). Обратите внимание, что эта конфигурация имеет значение NULL , что означает, что конфигурация по умолчанию применяется
3 отключить_явный_запрос_приложения Заменяет prompt=login запросы на аутентификацию из приложений, чтобы уменьшить количество запросов
4 Список разрешенных префиксов приложения Любое приложение, не являющееся MSAL, с идентификатором пакета, который начинается с com.microsoft., может быть перехвачено и обработано брокером расширения единого входа.

Внимание

Флаги компонентов, заданные как NULL , означают, что их конфигурация по умолчанию находится на месте. Дополнительные сведения см. в документации по флагу компонентов

Процесс входа в родное приложение MSAL

В следующем разделе описывается, как проверить журналы расширения SSO для потока аутентификации нативного приложения MSAL. В этом примере мы используем пример приложения MSAL macOS/iOS в качестве клиентского приложения, а приложение вызывает microsoft Graph API для отображения сведений о входе пользователя.

MSAL native: интерактивный процесс, пошаговое руководство

Для успешного интерактивного входа должны выполняться следующие действия:

  1. Пользователь входит в демонстрационное приложение MSAL для macOS.
  2. Брокер расширений единого входа Майкрософт вызывается и обрабатывает запрос.
  3. Microsoft SSO Extension Broker проходит процесс начальной загрузки для получения PRT для пользователя, вошедшего в систему.
  4. Сохраните PRT в цепочке ключей.
  5. Проверьте наличие объекта регистрации устройств в Microsoft Entra ID (WPJ).
  6. Предоставьте токен доступа клиентскому приложению, чтобы получить доступ к Microsoft Graph с правами User.Read.

Внимание

Приведенные ниже фрагменты журнала помечены заголовками комментариев //, которые не отображаются в журналах. Они используются для иллюстрации конкретных действий, выполняемых. Мы задокументировали фрагменты журнала таким образом, чтобы помочь в операциях копирования и вставки. Кроме того, примеры журналов были обрезаны, чтобы показать только значимые строки для устранения неполадок.

Пользователь нажимает кнопку Call Microsoft Graph API, чтобы вызвать процесс входа.

Screenshot с примером приложения MSAL для macOS, запущенного с помощью кнопки Microsoft Graph API.

//////////////////////////
//get_accounts_operation//
//////////////////////////
Handling SSO request, requested operation: get_accounts_operation
(Default accessor) Get accounts.
(MSIDAccountCredentialCache) retrieving cached credentials using credential query
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 00001111-aaaa-2222-bbbb-3333cccc4444, scopes (null)
(Default accessor) No accounts found in default accessor.
(Default accessor) No accounts found in other accessors.
Completed get accounts SSO request with a personal device mode.
Request complete
Request needs UI
ADB 3.1.40 -[ADBrokerAccountManager allBrokerAccounts:]
ADB 3.1.40 -[ADBrokerAccountManager allMSIDBrokerAccounts:]
(Default accessor) Get accounts.
No existing accounts found, showing webview

/////////
//login//
/////////
Handling SSO request, requested operation: login
Handling interactive SSO request...
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/common";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
    "client_version" = "1.1.7";
    "correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
    "extra_oidc_scopes" = "openid profile offline_access";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    prompt = "select_account";
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
}

////////////////////////////////////////////////////////////
//Request PRT from Microsoft Authentication Broker Service//
////////////////////////////////////////////////////////////
Using request handler <ADInteractiveDevicelessPRTBrokerRequestHandler: 0x117ea50b0>
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 11112222-bbbb-3333-cccc-4444dddd5555, scopes (null)
Attempting to get Deviceless Primary Refresh Token interactively.
Caching AAD Environements
networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
Resolved authority, validated: YES, error: 0
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Start webview authorization session with webview controller class MSIDAADOAuthEmbeddedWebviewController: 
[MSAL] Presenting web view controller. 

Пример ведения журнала можно разделить на три сегмента:

Сегмент Описание
get_accounts_operation Проверяет наличие существующих учетных записей в кэше
- ClientID: идентификатор приложения, зарегистрированный в Microsoft Entra ID для этого приложения MSAL
ADB 3.1.40 указывает на версию плагина брокера расширений Microsoft Enterprise SSO
login Брокер обрабатывает запрос для Microsoft Entra ID:
- Обработка интерактивного SSO-запроса...: означает интерактивный запрос
- correlation_id: Полезно для сопоставления с журналами входа Microsoft Entra на стороне сервера
- scope: User.Read область разрешений API запрашивается из Microsoft Graph
- client_version: версия MSAL, запущенная приложением
- redirect_uri: приложения MSAL используют форматmsauth.com.<Bundle ID>://auth
Запрос PRT Процесс начальной конфигурации для интерактивного получения PRT был инициирован и запускает сеанс SSO в Webview.

Служба посредника проверки подлинности Майкрософт
- clientId: 29d9ed98-a469-4536-ade2-f981bc1d605e
— Все запросы PRT направляются в службу аутентификации брокера Microsoft

Появится контроллер SSO веб-представления, и пользователю предложат ввести логин Microsoft Entra (UPN/email)

Снимок экрана, отображающий запрос SSO Apple с введенными сведениями о пользователе и всплывающей подсказкой для дополнительной информации.

Примечание.

Нажатие на i в левом нижнем углу контроллера веб-представления отобразит дополнительные сведения о расширении единого входа и особенностях приложения, вызвавшего его.

Снимок экрана, показывающий дополнительные сведения о расширении SSO на экране запроса единого входа. После успешного ввода учетных данных Microsoft Entra следующие записи журнала записываются в журналы расширения SSO.

SSOExtensionLogs
///////////////
//Acquire PRT//
///////////////
[MSAL] -completeWebAuthWithURL: msauth://microsoft.aad.brokerplugin/?code=(not-null)&client_info=(not-null)&state=(not-null)&session_state=(not-null)
[MSAL] Dismissed web view controller.
[MSAL] Result from authorization session callbackURL host: microsoft.aad.brokerplugin , has error: NO
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId 29d9ed98-a469-4536-ade2-f981bc1d605e, scopes (null)
Saving PRT response in cache since no other PRT was found
[MSAL] Saving keychain item, item info Masked(not-null)
[MSAL] Keychain find status: 0
Acquired PRT.

///////////////////////////////////////////////////////////////////////
//Discover if there is an Azure AD Device Registration (WPJ) present //
//and if so re-acquire a PRT and associate with Device ID            //
///////////////////////////////////////////////////////////////////////
WPJ Discovery: do discovery in environment 0
Attempt WPJ discovery using tenantId.
WPJ discovery succeeded.
Using cloud authority from WPJ discovery: https://login.microsoftonline.com/common
ADBrokerDiscoveryAction completed. Continuing Broker Flow.
PRT needs upgrade as device registration state has changed. Device is joined 1, prt is joined 0
Beginning ADBrokerAcquirePRTInteractivelyAction
Attempting to get Primary Refresh Token interactively.
Acquiring broker tokens for broker client id.
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Enrollment id read from intune cache : (null).
Handle silent PRT response Masked(not-null), error Masked(null)
Acquired broker tokens.
Acquiring PRT.
Acquiring PRT using broker refresh token.
Requesting PRT from authority https://login.microsoftonline.com/<TenantID>/oauth2/v2.0/token
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId (null), scopes (null)
[MSAL] Acquired PRT successfully!
Acquired PRT.
ADBrokerAcquirePRTInteractivelyAction completed. Continuing Broker Flow.
Beginning ADBrokerAcquireTokenWithPRTAction
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Handle silent PRT response Masked(not-null), error Masked(null)

//////////////////////////////////////////////////////////////////////////
//Provide Access Token received from Azure AD back to Client Application// 
//and complete authorization request                                    //
//////////////////////////////////////////////////////////////////////////
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm TenantID, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed interactive SSO request.
Completed interactive SSO request.
Request complete
Completing SSO request...
Finished SSO request.

На этом этапе в потоке аутентификации и авторизации PRT был инициализирован и должен отображаться в доступе к цепочке ключей macOS. См. раздел Проверка доступа к связке ключей для PRT. Пример приложения MSAL macOS использует токен доступа, полученный от Microsoft SSO брокера расширений, для отображения информации о пользователе.

Затем изучите журналы входа Microsoft Entra на стороне сервера, основываясь на идентификаторе корреляции, полученном из журналов расширения единого входа на стороне клиента. См. дополнительные сведения в журналах входов Microsoft Entra ID.

Просмотр журналов входа Microsoft Entra по фильтру идентификатора корреляции
  1. Откройте вход Microsoft Entra для клиента, в котором зарегистрировано приложение.
  2. Выберите вход пользователей (интерактивный).
  3. Выберите Добавить фильтры и выберите радиокнопку Идентификатор корреляции.
  4. Скопируйте и вставьте идентификатор корреляции, полученный из журналов расширений единого входа, и нажмите кнопку "Применить".

Для потока интерактивного входа MSAL мы ожидаем интерактивного входа для ресурса службы Microsoft Authentication Broker. Это событие, в котором пользователь ввел пароль для загрузки PRT.

Снимок экрана, показывающий интерактивные входы пользователей из Microsoft Entra ID и демонстрирующий интерактивный вход в службу Microsoft Authentication Broker.

Существуют также неинтерактивные события входа, так как PRT используется для получения маркера доступа для запроса клиентского приложения. Просмотр журналов входа Microsoft Entra по фильтру идентификатора корреляции, но на шаге 2 выберите пользовательские входы (неинтерактивные).

Снимок экрана, показывающий, как расширение единого входа использует PRT для получения токена доступа для Microsoft Graph.

Атрибут журнала входа Описание
Приложение Отображаемое имя регистрации приложения в Microsoft Entra tenant, где клиентское приложение проходит аутентификацию.
Идентификатор приложения Также ссылается на ClientID регистрации приложения в клиенте Microsoft Entra.
Ресурс Ресурс API, к которому клиентское приложение пытается получить доступ. В этом примере ресурсом является Microsoft Graph API.
Тип входящего токена Тип входящего маркера Первичный маркер обновления (PRT) показывает входной маркер, используемый для получения маркера доступа для ресурса.
Агент пользователя Строка агента пользователя в этом примере показывает, что расширение единого входа Майкрософт — это приложение, обрабатывающее этот запрос. Полезный индикатор, что использование расширения единого входа продолжается, и происходит запрос на проверку подлинности брокера.
Библиотека проверки подлинности приложений Microsoft Entra Когда приложение MSAL используется, здесь записываются сведения о библиотеке и платформе.
Информация об области OAuth Сведения о сфере действия OAuth2, запрошенные для токена доступа. (User.Read,profile,openid,email).
Пошаговое руководство по беззвучному потоку MSAL Native

Через некоторое время маркер доступа больше не будет действительным. Таким образом, если пользователь снова щелкает кнопку Call Microsoft Graph API. Расширение SSO пытается обновить маркер доступа с уже полученным PRT.

SSOExtensionLogs
/////////////////////////////////////////////////////////////////////////
//refresh operation: Assemble Request based on User information in PRT  /  
/////////////////////////////////////////////////////////////////////////
Beginning authorization request
Request does not need UI
Handling SSO request, requested operation: refresh
Handling silent SSO request...
Looking account up by home account ID dbb22b2f, displayable ID auth.placeholder-61945244__domainname.com
Account identifier used for request: Masked(not-null), auth.placeholder-61945244__domainname.com
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/<TenantID>";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
    "client_version" = "1.1.7";
    "correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
    "extra_oidc_scopes" = "openid profile offline_access";
    "home_account_id" = "<UserObjectId>.<TenantID>";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
    username = "auth.placeholder-61945244__domainname.com";
}
//////////////////////////////////////////
//Acquire Access Token with PRT silently//
//////////////////////////////////////////
Using request handler <ADSSOSilentBrokerRequestHandler: 0x127226a10>
Executing new request
Beginning ADBrokerAcquireTokenSilentAction
Beginning silent flow.
[MSAL] Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm <TenantID>, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
[MSAL] (MSIDAccountCredentialCache) retrieving cached credentials using credential query
[MSAL] Silent controller with PRT finished with error Masked(null)
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed silent SSO request.
Request complete
Completing SSO request...
Finished SSO request.

Пример ведения журнала можно разделить на два сегмента:

Сегмент Описание
refresh Брокер обрабатывает запрос для Microsoft Entra ID:
- Обработка скрытого запроса единого входа...: обозначает скрытый запрос
- correlation_id: Полезно для сопоставления с журналами входа Microsoft Entra на стороне сервера
- scope: User.Read область разрешений API запрашивается из Microsoft Graph
- client_version: версия MSAL, запущенная приложением
- redirect_uri: приложения MSAL используют форматmsauth.com.<Bundle ID>://auth

Перезагрузка имеет заметные отличия от структуры данных запроса:
- authority: содержит URL-адрес конечной точки клиента Microsoft Entra, в отличие от общей конечной точки.
- home_account_id. Показать учетную запись пользователя в формате <UserObjectId.><TenantID>
- имя пользователя: хешированный формат UPN auth.placeholder-XXXXXXXX__domainname.com
ПРT Обновление и получение токена доступа Эта операция ревалидирует PRT и обновляет его при необходимости, прежде чем вернуть маркер доступа обратно вызывающему клиентскому приложению.

Мы снова можем взять корреляционный идентификатор, полученный из журналов расширения SSO на клиентской стороне, и сопоставить это с журналами входа в Microsoft Entra на серверной стороне.

Скриншот запроса бесшумной авторизации Microsoft Entra с помощью плагина Enterprise SSO Broker.

Вход Microsoft Entra показывает аналогичную информацию о ресурсе Microsoft Graph, полученную из операции login в предыдущем разделе interactive login.

Поток входа для приложений, не связанных с MSAL/Browser SSO

В следующем разделе описывается, как изучить журналы расширения SSO для потока аутентификации приложений, не использующих MSAL/Browser. В этом примере мы используем браузер Apple Safari в качестве клиентского приложения, а приложение вызывает веб-приложение Office.com (OfficeHome).

Пошаговое руководство по единому входу, отличному от MSAL/Browser

Для успешного входа должны выполняться следующие действия:

  1. Предположим, что пользователь, который уже прошел процесс начальной загрузки, имеет существующий PRT.
  2. На устройстве с развернутым брокером расширений единого входа Microsoft проверяются флаги настроек, чтобы убедиться, что приложение может обрабатываться расширением единого входа.
  3. Поскольку браузер Safari следует Apple Networking Stack, расширение единого входа пытается перехватить запрос аутентификации Microsoft Entra.
  4. PRT используется для получения токена для запрашиваемого ресурса.
  5. Если устройство зарегистрировано в Microsoft Entra, оно передает идентификатор устройства вместе с запросом.
  6. Расширение SSO заполняет заголовок запроса браузера для входа в систему и доступа к ресурсу.

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

SSOExtensionLogs
Created Browser SSO request for bundle identifier com.apple.Safari, cookie SSO include-list (
), use cookie sso for this app 0, initiating origin https://www.office.com
Init MSIDKeychainTokenCache with keychainGroup: Masked(not-null)
[Browser SSO] Starting Browser SSO request for authority https://login.microsoftonline.com/common
[MSAL] (Default accessor) Found 1 tokens
[Browser SSO] Checking PRTs for deviceId 73796663
[MSAL] [Browser SSO] Executing without UI for authority https://login.microsoftonline.com/common, number of PRTs 1, device registered 1
[MSAL] [Browser SSO] Processing request with PRTs and correlation ID in headers (null), query aaaa0000-bb11-2222-33cc-444444dddddd
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] No cached preferred_network for authority
[MSAL] Caching AAD Environements
[MSAL] networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
[MSAL] networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
[MSAL] networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
[MSAL] networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
[MSAL] networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Found registration registered in login.microsoftonline.com, isSameAsRequestEnvironment: Yes
[MSAL] Passing device header in browser SSO for device id 43cfaf69-0f94-4d2e-a815-c103226c4c04
[MSAL] Adding SSO-cookie header with PRT Masked(not-null)
SSO extension cleared cookies before handling request 1
[Browser SSO] SSO response is successful 0
[MSAL] Keychain find status: 0
[MSAL] (Default accessor) Found 1 tokens
Request does not need UI
[MSAL] [Browser SSO] Checking PRTs for deviceId 73796663
Request complete
Компонент журнала расширения SSO Описание
Созданный запрос единого входа в браузере Все запросы единого входа, отличные от MSAL/Browser, начинаются с следующей строки:
- идентификатор пакета: идентификатор пакета: com.apple.Safari
- инициирующий источник: URL-адрес веб-сайта, к которому обращается браузер перед переходом по одному из URL-адресов входа для Microsoft Entra ID (https://office.com)
Запуск запроса SSO через браузер для авторитета Определяет количество PRT и проверяет, зарегистрировано ли устройство.
https://login.microsoftonline.com/common число PRTs: 1, устройство зарегистрировано: 1
Идентификатор корреляции [Единый вход в браузере] Обработка запроса с использованием PRT и идентификатора корреляции в заголовках (null), query <CorrelationID>. Этот идентификатор важен для сопоставления с журналами входа, зарегистрированными на сервере Microsoft Entra.
Регистрация устройств При необходимости, если устройство зарегистрировано в Microsoft Entra, расширение единого входа может передать заголовок устройства в запросах единого входа в браузере:
— найдена учетная запись, зарегистрированная в
- login.microsoftonline.com, isSameAsRequestEnvironment: Да

Передача заголовка устройства в SSO браузера для идентификатора устройства43cfaf69-0f94-4d2e-a815-c103226c4c04

Затем используйте идентификатор корреляции, полученный из журналов расширения SSO для браузера, чтобы сопоставить с журналами входа Microsoft Entra.

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

Атрибут журнала входа Описание
Приложение Отображаемое имя регистрации приложения в Microsoft Entra tenant, где клиентское приложение проходит аутентификацию. В этом примере отображаемое имя — OfficeHome.
Идентификатор приложения Также ссылается на ClientID регистрации приложения в клиенте Microsoft Entra.
Ресурс Ресурс API, к которому клиентское приложение пытается получить доступ. В этом примере ресурс — веб-приложение OfficeHome .
Тип входящего токена Тип входящего токена Primary Refresh Token (PRT) показывает входной токен, используемый для получения токена доступа к ресурсу.
Обнаружен метод проверки подлинности На вкладке "Сведения о проверке подлинности" значение плагина единого входа Microsoft Entra является полезным индикатором того, что расширение SSO используется для упрощения запроса единого входа в браузере.
Версия расширения SSO Microsoft Entra На вкладке "Дополнительные сведения" это значение отображает версию приложения брокера расширения единого входа Microsoft Enterprise.
Идентификатор устройства Если устройство зарегистрировано, расширение единого входа может передать идентификатор устройства для обработки запросов проверки подлинности устройства.
Операционная система Отображает тип операционной системы.
Соответствует Расширение единого входа может упростить политики соответствия стандартам, передавая заголовок устройства. Для этого необходимы следующие компоненты:
- Регистрация устройств Microsoft Entra
- Управление MDM
- Соответствие Intune или Intune Partner
Управляемый Указывает, что устройство находится под управлением.
Тип соединения macOS и iOS, если зарегистрированы, могут быть только типа: Microsoft Entra зарегистрированные.

Совет

Если вы используете Jamf Connect, рекомендуется следовать последним рекомендациям Jamf по интеграции Jamf Connect с Microsoft Entra ID. Рекомендуемый шаблон интеграции гарантирует правильную работу Jamf Connect с политиками условного доступа и защитой Microsoft Entra ID.

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