PublicClientApplication Класс
То же самое, что <xref:ClientApplication.__init__>и этот client_credential параметр, должен остаться None.
Note
Что такое брокер и почему он используется?
Брокер — это компонент, установленный на устройстве.
Брокер неявно предоставляет устройству удостоверение. С помощью брокера
устройство становится фактором, который может удовлетворить MFA (многофакторная проверка подлинности).
Этот фактор станет обязательным
Если администратор клиента включает соответствующую политику условного доступа (ЦС).
Присутствие брокера позволяет платформа удостоверений Майкрософт
чтобы получить более высокую уверенность в том, что маркеры выдаются на устройство,
и это более безопасно.
Дополнительным преимуществом брокера является:
он выполняется как длительный процесс с ОС устройства,
и поддерживает собственный кэш,
чтобы приложения с поддержкой брокера (даже интерфейс командной строки)
может автоматически выполнять единый вход из ранее установленного сеанса входа.
Как использовать брокер?
Для любого сочетания следующих параметров согласия можно задать значение true:
Флажок "Согласие"
Если приложение будет работать в
Приложение зарегистрировало это в качестве URI перенаправления платформы компьютеров в портал Azure
enable_broker_on_windows
Windows 10+
ms-appx-web://Microsoft. AAD. BrokerPlugin/your_client_id
enable_broker_on_wsl
WSL
ms-appx-web://Microsoft. AAD. BrokerPlugin/your_client_id
enable_broker_on_mac
Mac с установленным Корпоративный портал
msauth.com.msauth.unsignedapp://auth
enable_broker_on_linux
Linux с установленным Intune
https://login.microsoftonline.com/common/oauth2/nativeclient (НЕОБХОДИМО включить)
Установка зависимостей брокера,
Например, pip install msal[broker]>=1.33,2<.
Тестирование с помощью acquire_token_interactive() и acquire_token_silent().
Резервное поведение поддержки брокера MSAL Python
MSAL завершит ошибку или автоматически откатится к потокам, не являющихся брокерами.
MSAL будет игнорировать enable_broker_... и обход брокера
для этих потоков проверки подлинности, которые, как известно, не поддерживаются брокером.
К ним относятся ADFS, B2C и т. д.
Для других сценариев "возможно использовать брокер" см. ниже.
Ошибки MSAL при отказе разработчика приложения использовать брокер
но не установлен прямой пакет зависимостей "среднего уровня".
Сообщение об ошибке позволяет разработчику приложений объявить правильную зависимость
msal[broker].
Мы ошибаемся здесь, так как ошибка применима для разработчиков приложений.
MSAL автоматически "деактивирует" брокера и откат к не-брокеру,
При выборе зависимостей, установленных еще не удалось инициализировать.
Мы ожидаем, что это произойдет на устройстве, ОС которого слишком старая
или базовый компонент брокера каким-то образом недоступен.
Здесь нет большого количества разработчиков приложений или конечный пользователь.
В конечном итоге политика условного доступа должна быть
принудительно переключение пользователя на другое устройство.
Ошибки MSAL при выборе брокера, установке, инициализации,
но последующие запросы маркера завершилось ошибкой.
Конструктор
PublicClientApplication(client_id, client_credential=None, *, enable_broker_on_windows=None, enable_broker_on_mac=None, enable_broker_on_linux=None, enable_broker_on_wsl=None, **kwargs)
Параметры
| Имя | Описание |
|---|---|
|
enable_broker_on_windows
Обязательно
|
<xref:boolean>
Этот параметр действует только в том случае, если приложение работает на Windows 10+. Этот параметр по умолчанию имеет значение None, что означает, что MSAL не будет использовать брокер. Новые возможности MSAL Python 1.25.0. |
|
enable_broker_on_mac
Обязательно
|
<xref:boolean>
Этот параметр действует только в том случае, если ваше приложение работает на Компьютере Mac. Этот параметр по умолчанию имеет значение None, что означает, что MSAL не будет использовать брокер. Новые возможности MSAL Python 1.31.0. |
|
enable_broker_on_linux
Обязательно
|
<xref:boolean>
Этот параметр действует только в том случае, если ваше приложение работает в Linux, включая WSL. Этот параметр по умолчанию имеет значение None, что означает, что MSAL не будет использовать брокер. Новые возможности MSAL Python 1.33.0. |
|
enable_broker_on_wsl
Обязательно
|
<xref:boolean>
Этот параметр действует только в том случае, если приложение работает в WSL. Этот параметр по умолчанию имеет значение None, что означает, что MSAL не будет использовать брокер. Новые возможности MSAL Python 1.33.0. |
|
client_id
Обязательно
|
|
|
client_credential
|
Значение по умолчанию: None
|
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
enable_broker_on_windows
|
Значение по умолчанию: None
|
|
enable_broker_on_mac
|
Значение по умолчанию: None
|
|
enable_broker_on_linux
|
Значение по умолчанию: None
|
|
enable_broker_on_wsl
|
Значение по умолчанию: None
|
Методы
| acquire_token_by_device_flow |
Получение маркера объектом потока устройства с настраиваемым эффектом опроса. |
| acquire_token_interactive |
Интерактивное получение маркера через локальный браузер. Предварительные требования. В портал Azure настройте универсальный код ресурса (URI перенаправления) приложения "Мобильный и классический" в качестве |
| initiate_device_flow |
Инициируйте экземпляр потока устройств, который будет использоваться в acquire_token_by_device_flow. |
acquire_token_by_device_flow
Получение маркера объектом потока устройства с настраиваемым эффектом опроса.
acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)
Параметры
| Имя | Описание |
|---|---|
|
flow
Обязательно
|
Ранее созданный дикт.initiate_device_flow По умолчанию опрос этого метода блокирует текущий поток. Вы можете прервать цикл опроса в любое время, изменив значение ключа потока "expires_at" на 0. |
|
claims_challenge
|
Параметр claims_challenge запрашивает определенные утверждения, запрашиваемые поставщиком ресурсов, в виде директивы claims_challenge в заголовке www-authentication, возвращаемого из конечной точки UserInfo и (или) маркера идентификатора и (или) маркера доступа. Это строка объекта JSON, содержащего списки утверждений, запрашиваемых из этих расположений. Значение по умолчанию: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Дикт, представляющий ответ JSON из Microsoft Entra:
|
acquire_token_interactive
Интерактивное получение маркера через локальный браузер.
Предварительные требования. В портал Azure настройте универсальный код ресурса (URI перенаправления) приложения "Мобильный и классический" в качествеhttp://localhost.
Если вы решили использовать брокер во время PublicClientApplication создания, приложению также потребуется этот универсальный код ресурса (URI перенаправления): ms-appx-web://Microsoft.AAD.BrokerPlugin/YOUR_CLIENT_ID
acquire_token_interactive(scopes, prompt=None, login_hint=None, domain_hint=None, claims_challenge=None, timeout=None, port=None, extra_scopes_to_consent=None, max_age=None, parent_window_handle=None, on_before_launching_ui=None, auth_scheme=None, **kwargs)
Параметры
| Имя | Описание |
|---|---|
|
scopes
Обязательно
|
Это список строк с учетом регистра. |
|
prompt
|
По умолчанию значение запроса не будет отправлено, даже строковое значение не будет отправлено Значение по умолчанию: None
|
|
login_hint
|
Optional. Идентификатор пользователя. Как правило, имя участника-пользователя (UPN). Значение по умолчанию: None
|
|
domain_hint
|
Может быть одним из "потребителей" или "организаций" или домена клиента "contoso.com". Если он включен, он пропустит процесс обнаружения на основе электронной почты, который пользователь проходит на странице входа, что приводит к немного более упрощенной пользовательской среде. Дополнительные сведения о возможных значениях, доступных в документации по потоку проверки подлинности и domain_hint документации. Значение по умолчанию: None
|
|
claims_challenge
|
Параметр claims_challenge запрашивает определенные утверждения, запрашиваемые поставщиком ресурсов, в виде директивы claims_challenge в заголовке www-authentication, возвращаемого из конечной точки UserInfo и (или) маркера идентификатора и (или) маркера доступа. Это строка объекта JSON, который содержит списки утверждений, запрашиваемых из этих расположений. Значение по умолчанию: None
|
|
timeout
|
Этот метод блокирует текущий поток.
Этот параметр задает значение времени ожидания в секундах.
Значение Значение по умолчанию: None
|
|
port
|
Порт, используемый для прослушивания входящего ответа проверки подлинности.
По умолчанию мы будем использовать выделенный системой порт.
(Остальная часть redirect_uri жестко закодирована как Значение по умолчанию: None
|
|
extra_scopes_to_consent
|
"Дополнительные области согласия" — это концепция, доступная только в Microsoft Entra. Он ссылается на другие ресурсы, для которых может потребоваться предоставить согласие, в том же взаимодействии, но для которого вы не вернетесь маркер для этой конкретной операции. Значение по умолчанию: None
|
|
max_age
|
Необязательно. Максимальный возраст проверки подлинности. Указывает допустимое время в секундах с момента последнего проверки подлинности End-User. Если истекшее время больше этого значения, платформа удостоверений Майкрософт будет активно повторно проходить проверку подлинности конечного пользователя. MSAL Python также автоматически проверяет auth_time в маркере идентификатора. Новые возможности версии 1.15. Значение по умолчанию: None
|
|
parent_window_handle
|
Необязательно.
Большинство сценариев Python являются консольными приложениями. Новая версия 1.20.0. Значение по умолчанию: None
|
|
on_before_launching_ui
|
<xref:function>
Обратный вызов с формой Новая версия 1.20.0. Значение по умолчанию: None
|
|
auth_scheme
|
Вы можете предоставить Новая версия 1.26.0. Значение по умолчанию: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
initiate_device_flow
Инициируйте экземпляр потока устройств, который будет использоваться в acquire_token_by_device_flow.
initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)
Параметры
| Имя | Описание |
|---|---|
|
scopes
|
Области, запрошенные для доступа к защищенному API (ресурсу). Значение по умолчанию: None
|
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
claims_challenge
|
Значение по умолчанию: None
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Дикт, представляющий только что созданный объект Device Flow.
|
Атрибуты
CONSOLE_WINDOW_HANDLE
CONSOLE_WINDOW_HANDLE = <object object>
DEVICE_FLOW_CORRELATION_ID
DEVICE_FLOW_CORRELATION_ID = '_correlation_id'