Краткое руководство. Вход пользователей и вызов Microsoft Graph из веб-приложения Python Flask
В этом кратком руководстве вы скачайте и запустите пример веб-приложения Python Flask, демонстрирующий проверку подлинности пользователей и вызов API Microsoft Graph. Пользователи в организации Microsoft Entra могут войти в приложение.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Клиент Microsoft Entra. Дополнительные сведения см. в статье о том, как получить клиент Microsoft Entra.
- Python 3 +
Шаг 1. Регистрация приложения
Совет
Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.
Выполните следующие действия, чтобы зарегистрировать приложение в Центре администрирования Microsoft Entra:
- Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
- Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, в котором вы хотите зарегистрировать приложение из меню каталогов и подписок.
- Перейдите к приложениям> удостоверений>Регистрация приложений и выберите "Создать регистрацию".
- Введите имя приложения, например python-webapp.
- В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
- В разделе URI перенаправления выберите Веб-сайт для платформы.
- Введите универсальный код ресурса (URI) перенаправления
http://localhost:5000/getAToken
. Это значение можно изменить позже. - Выберите Зарегистрировать.
Шаг 2. Добавление секрета клиента
В примере приложения используется секрет клиента для подтверждения удостоверения при запросе маркеров. Выполните следующие действия, чтобы создать секрет клиента для веб-приложения Python:
- На странице приложения Обзор запишите идентификатор приложения (клиента) для использования в будущем.
- В разделе Управление выберите Сертификаты и секреты, а в разделе Секреты клиента — Создать секрет клиента.
- Введите описание секрета клиента, оставьте срок действия по умолчанию и нажмите кнопку "Добавить".
- Сохраните значение секрета клиента в безопасном расположении. Это значение нужно настроить, и вы не сможете получить его позже.
При создании учетных данных для конфиденциального клиентского приложения корпорация Майкрософт рекомендует использовать сертификат вместо секрета клиента перед перемещением приложения в рабочую среду. Дополнительные сведения о том, как использовать сертификат, можно найти в этих инструкциях.
Шаг 3. Добавление область
Так как это приложение входит в систему пользователей, необходимо добавить делегированные разрешения:
- В разделе Управление выберите Разрешения API>Добавить разрешение.
- Убедитесь, что выбрана вкладка API Майкрософт.
- В разделе Часто используемые интерфейсы API Microsoft выберите Microsoft Graph.
- В разделе "Делегированные разрешения" убедитесь, что выбран параметр User.Read. При необходимости используйте поле поиска.
- Выберите Добавить разрешения.
Шаг 4. Скачивание примера приложения
Скачайте пример кода Python или клонируйте репозиторий:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/
Шаг 5. Настройка примера приложения
Откройте приложение, скачаемое в интегрированной среде разработки, и перейдите в корневую папку примера приложения.
cd flask-web-app
Создайте 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. Запуск примера приложения
Создайте виртуальную среду для приложения:
py -m venv .venv .venv\scripts\activate
Установите требования с помощью
pip
:pip install -r requirements.txt
Запустите приложение из командной строки. Убедитесь, что приложение работает на том же порту, что и URI перенаправления, настроенный ранее.
flask run --debug --host=localhost --port=5000
Скопируйте URL-адрес https, отображаемый в терминале, например, https://localhost:5000и вставьте его в браузер. Рекомендуется использовать частный или инкогнито браузерный сеанс.
Выполните действия и введите необходимые сведения для входа с помощью учетной записи Майкрософт. Вам предлагается указать адрес электронной почты и пароль для входа.
Приложение запрашивает разрешение на обслуживание доступа к данным, к ним предоставлен доступ, а также для входа и чтения профиля, как показано ниже. Выберите Принять.
- Откроется следующий снимок экрана, указывающий, что вы успешно вошли в приложение.
Принцип работы
На следующей схеме показано, как работает пример приложения:
Приложение использует
identity
пакет для получения маркера доступа из платформа удостоверений Майкрософт. Этот пакет основан на библиотеке проверки подлинности Майкрософт (MSAL) для Python для упрощения проверки подлинности и авторизации в веб-приложениях.Маркер доступа, получаемый на предыдущем шаге, используется в качестве маркера носителя для проверки подлинности пользователя при вызове API Microsoft Graph.
Следующие шаги
Узнайте больше, создав веб-приложение Python, которое входит в систему пользователей и вызывает защищенный веб-API в следующей серии руководств по нескольким частьм: