Использование MSAL Python с брокером проверки подлинности в macOS

Note

Поддержка брокера проверки подлинности macOS представлена в msal версии 1.31.0.

Использование брокеров аутентификации в macOS позволяет упростить аутентификацию пользователей в Microsoft Entra ID из вашего приложения, а также воспользоваться будущими возможностями, защищающими маркеры обновления Microsoft Entra ID от кражи и неправомерного использования.

Брокеры проверки подлинности не предварительно установлены в macOS, но являются приложениями, разработанными Microsoft, например Корпоративный портал. Обычно эти приложения устанавливаются при регистрации компьютера macOS в парке устройств компании через решение для управления конечными точками, например Microsoft Intune. Дополнительные сведения о настройке устройств Apple с помощью платформы Microsoft Identity см. в статье Корпоративная надстройка единого входа Майкрософт для устройств Apple.

Usage

Чтобы использовать брокер, вам потребуется установить связанные с брокером пакеты в дополнение к базовому пакету MSAL из PyPI:

pip install msal[broker]>=1.31,<2

Important

Если пакеты, связанные с брокером, не установлены, и вы попытаетесь использовать брокер проверки подлинности, вы получите ошибку: ImportError: You need to install dependency by: pip install "msal[broker]>=1.31,<2"

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

from msal import PublicClientApplication
 
app = PublicClientApplication(
    "CLIENT_ID",
    authority="https://login.microsoftonline.com/common",
    enable_broker_on_mac =True)

Important

Если вы пишете кроссплатформенное приложение, вам также потребуется использовать enable_broker_on_windows, как описано в статье Using MSAL Python с веб-диспетчером учетных записей.

Помимо изменения конструктора приложение должно поддерживать URI перенаправления, зависящие от брокера. Для неподписанных приложений универсальный код ресурса (URI) имеет следующий код:

msauth.com.msauth.unsignedapp://auth 

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

msauth.BUNDLE_ID://auth

Если URI перенаправления неправильно заданы в конфигурации приложения на портале Entra, вы получите ошибку следующим образом:

Error detected... 
tag=508170375
context=AADSTS50011 Description: (pii), Domain: MSAIMSIDOAuthErrorDomain.Error was thrown in location: Broker 
errorCode=-51411 
status=Response_Status.Status_Unexpected 

После настройки можно вызвать acquire_token_interactive, чтобы получить токен.

result = app.acquire_token_interactive(["User.ReadBasic.All"],
                    parent_window_handle=app.CONSOLE_WINDOW_HANDLE)

Note

Параметр parent_window_handle требуется, даже если в macOS он не используется. Для приложений с графическим интерфейсом место появления запроса на вход определяется в каждом случае отдельно и в настоящее время не может быть привязано к конкретному окну. В будущем обновлении этот параметр будет использоваться для определения фактического родительского окна.

Кэширование токенов

Брокер аутентификации управляет кэшированием токенов обновления и доступа. Вам не нужно настраивать настраиваемое кэширование.

Поддерживаемые версии и архитектуры macOS

Брокер macOS поддерживает следующие конфигурации:

Component Поддерживаемые версии
Архитектура ARM64 (Apple Silicon) и x64 (Intel)
версия macOS macOS 10.15 (Catalina) и более поздних версий

Tip

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