Клиентские приложения

Microsoft Authentication Library (MSAL) Python поддерживает два типа клиентских приложений: общедоступные клиентские приложения и конфиденциальные клиентские приложения. Типы клиентов различаются по способности безопасно аутентифицироваться на сервере авторизации и хранить конфиденциальную информацию, подтверждающую идентичность, так, чтобы она не могла быть доступна пользователю или известна ему в рамках его уровня доступа. В этой статье описывается, как инициализировать эти приложения с помощью MSAL Python.

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

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

Создайте экземпляр приложения

Для запуска приложения требуется регистрация приложения. Зарегистрируйте приложение в Центр администрирования Microsoft Entra. На странице регистрации вам потребуется:

  • Идентификатор клиента приложения. Это строка в формате GUID.
  • URL-адрес поставщика удостоверяющих данных (экземпляр) и целевая аудитория для входа в ваше приложение. Эти два параметра совместно называются центром.
  • При необходимости — идентификатор клиента (также GUID), если вы разрабатываете бизнес-приложение, предназначенное только для вашей организации (также известное как одноклиентское приложение).
  • Если вы создаете конфиденциальное клиентское приложение, создайте секрет приложения в виде строки или сертификата.
  • Для веб-приложений задайте URL-адрес перенаправления, который Microsoft Entra ID используется для возврата кода. Для настольных приложений добавьте http://localhost, если вы не используете брокеры аутентификации.

Создайте экземпляр общедоступного клиентского приложения

Общедоступные клиентские приложения используют класс PublicClientApplication.

import msal

app = msal.PublicClientApplication(
    "client_id",
    authority="authority",
    )

Создание экземпляра конфиденциального клиентского приложения

Конфиденциальные клиентские приложения используют класс ConfidentialClientApplication.

import msal

app = msal.ConfidentialClientApplication(
    "client_id",
    authority="authority",
    client_credential="client_secret",
    )

Caching

При создании экземпляра клиентского приложения существует два параметра, которые можно использовать для определения настроек кэширования. Эти параметры: token_cache и http_cache.

  • token_cache задает кэш маркеров, используемый экземпляром клиентского приложения. По умолчанию кэш в памяти создается и используется. Дополнительные сведения см. в статье Кэширование токенов в MSAL Python.
  • http_cache доступна в MSAL Python версии 1.16+. Это автоматически кэширует некоторое количество HTTP-ответов, не содержащих токены, благодаря чему долгоживущие экземпляры PublicClientApplication и ConfidentialClientApplication в некоторых ситуациях работают быстрее и реагируют более отзывчиво. Если параметр http_cache не указан, MSAL использует словарь в памяти. Если ваше приложение — это приложение командной строки (CLI), вам нужно сохранять http_cache между разными запусками CLI. Дополнительные сведения см. в справочном руководстве.

Дальнейшие действия

Получите токены для своего приложения.