Поделиться через


Быстрый старт: Вход в систему пользователями и обращение к Microsoft Graph из веб-приложения Python Flask

В этом кратком руководстве вы скачайте и запустите пример веб-приложения Python Flask, демонстрирующий проверку подлинности пользователей и вызов API Microsoft Graph. Пользователи в организации Microsoft Entra могут войти в приложение.

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

Шаг 1. Регистрация приложения

Выполните следующие действия, чтобы зарегистрировать приложение в Центре администрирования Microsoft Entra:

  1. Войдите в Центр администрирования Microsoft Entra как минимум в роли администратора облачных приложений.
  2. Если у вас есть доступ к нескольким тенантам, используйте значок параметров в верхнем меню, чтобы переключиться на тенант, в котором вы хотите зарегистрировать приложение из меню Каталоги + подписки.
  3. Перейдите к Identity>Applications>Регистрации приложений и выберите Новый регистрация.
  4. Введите имя приложения, например python-webapp.
  5. В разделе Поддерживаемые типы учетных записейвыберите Учетные записи только в этом каталоге организации.
  6. В разделе URI перенаправлениядля платформы выберите Web.
  7. Введите URI перенаправления http://localhost:5000/getAToken. Это значение можно изменить позже.
  8. Выберите Зарегистрировать.

Шаг 2. Добавление секрета клиента

В приложении-примере используется секрет клиента для подтверждения идентичности при запросе токенов. Выполните следующие действия, чтобы создать секрет клиента для веб-приложения Python:

  1. На странице обзора приложения обратите внимание на значение идентификатора приложения (клиента) для будущего использования.
  2. В разделе Управлениевыберите & секреты & сертификатов и в разделе секреты клиента выберите Новый секрет клиента.
  3. Введите описание секрета клиента, оставьте срок действия по умолчанию и выберите Добавить.
  4. Сохраните значение секрета клиента в безопасном месте. Вам нужно это значение, чтобы настроить код, и вы не сможете получить его позже.

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

Шаг 3. Добавление области

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

  1. В разделе Управлениевыберите разрешения API>Добавить разрешение.
  2. Убедитесь, что выбрана вкладка API Майкрософт.
  3. В разделе "Часто используемые API Майкрософт" выберите Microsoft Graph.
  4. В разделе Делегированные разрешения убедитесь, что выбран User.Read. При необходимости используйте поле поиска.
  5. Выберите Добавить разрешения.

Шаг 4. Скачивание примера приложения

Скачайте пример кода Python или клонируйте репозиторий:

git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/

Шаг 5. Настройка примера приложения

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

    cd flask-web-app
    
  2. Создайте файл .env в корневой папке проекта с помощью .env.sample в качестве руководства.

    # The following variables are required for the app to run.
    CLIENT_ID=<Enter_your_client_id>
    CLIENT_SECRET=<Enter_your_client_secret>
    AUTHORITY=<Enter_your_authority_url>
    
    • Задайте значение CLIENT_ID как идентификатор приложения (клиента) для зарегистрированного приложения, который доступен на странице обзора.
    • Задайте значение CLIENT_SECRET секрету клиента, созданному в разделе Сертификаты & Секреты для зарегистрированного приложения.
    • Установите значение AUTHORITY на https://login.microsoftonline.com/<TENANT_GUID>. Идентификатор каталога (клиента) доступен на странице обзора регистрации приложения.

    Переменные среды упоминаются в app_config.pyи хранятся в отдельном файле .env, чтобы исключить их из системы управления версиями. Предоставленный .gitignore-файл предотвращает возврат файла .env.

Шаг 6. Запуск примера приложения

  1. Создайте виртуальную среду для приложения:

    py -m venv .venv
    .venv\scripts\activate
    
  2. Установите требования с помощью pip:

    pip install -r requirements.txt
    
  3. Запустите приложение из командной строки. Убедитесь, что приложение работает на том же порту, что и URI перенаправления, настроенный ранее.

    flask run --debug --host=localhost --port=5000
    
  4. Скопируйте URL-адрес https, отображаемый в терминале, например, https://localhost:5000, и вставьте его в браузер. Рекомендуется использовать частный или инкогнито браузерный сеанс.

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

  6. Приложение запрашивает разрешение на поддержку доступа к данным, к которым вы предоставили доступ, а также на вход в систему и чтение вашего профиля, как показано. Нажмите кнопку "Принять".

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

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

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

Принцип работы

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

диаграмма, показывающая, как работает образец приложения, созданного этим быстрым стартом.

  1. Приложение использует пакет identity для получения токена доступа с платформы идентификации Microsoft. Этот пакет основан на библиотеке проверки подлинности Майкрософт (MSAL) для Python для упрощения проверки подлинности и авторизации в веб-приложениях.

  2. Маркер доступа, получаемый на предыдущем шаге, используется в качестве маркера носителя для проверки подлинности пользователя при вызове API Microsoft Graph.

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

Узнайте больше, создав веб-приложение на Python, которое выполняет вход пользователей и вызывает защищенный веб-API в следующей серии руководств, состоящей из нескольких частей.