Быстрый старт: Вход в систему пользователями и обращение к Microsoft Graph из веб-приложения Python Flask
В этом кратком руководстве вы скачайте и запустите пример веб-приложения Python Flask, демонстрирующий проверку подлинности пользователей и вызов API Microsoft Graph. Пользователи в организации Microsoft Entra могут войти в приложение.
Необходимые условия
- Учетная запись Azure с активной подпиской. Создайте бесплатную учетную запись.
- Клиент Microsoft Entra. Чтобы получить дополнительную информацию, см. как получить клиент Microsoft Entra.
- Python 3 +
Шаг 1. Регистрация приложения
Выполните следующие действия, чтобы зарегистрировать приложение в Центре администрирования Microsoft Entra:
- Войдите в Центр администрирования Microsoft Entra как минимум в роли администратора облачных приложений.
- Если у вас есть доступ к нескольким тенантам, используйте значок параметров
в верхнем меню, чтобы переключиться на тенант, в котором вы хотите зарегистрировать приложение из меню Каталоги + подписки.
- Перейдите к Identity>Applications>Регистрации приложений и выберите Новый регистрация.
- Введите имя приложения, например python-webapp.
- В разделе Поддерживаемые типы учетных записейвыберите Учетные записи только в этом каталоге организации.
- В разделе URI перенаправлениядля платформы выберите Web.
- Введите URI перенаправления
http://localhost:5000/getAToken
. Это значение можно изменить позже. - Выберите Зарегистрировать.
Шаг 2. Добавление секрета клиента
В приложении-примере используется секрет клиента для подтверждения идентичности при запросе токенов. Выполните следующие действия, чтобы создать секрет клиента для веб-приложения Python:
- На странице обзора приложения обратите внимание на значение идентификатора приложения (клиента) для будущего использования.
- В разделе Управлениевыберите & секреты & сертификатов и в разделе секреты клиента выберите Новый секрет клиента.
- Введите описание секрета клиента, оставьте срок действия по умолчанию и выберите Добавить.
- Сохраните значение секрета клиента в безопасном месте. Вам нужно это значение, чтобы настроить код, и вы не сможете получить его позже.
При создании учетных данных для конфиденциального клиентского приложения корпорация Майкрософт рекомендует использовать сертификат вместо секрета клиента перед перемещением приложения в рабочую среду. Чтобы получить больше информации об использовании сертификата, см. эти инструкции.
Шаг 3. Добавление области
Поскольку это приложение выполняет вход пользователей, необходимо добавить делегированные разрешения.
- В разделе Управлениевыберите разрешения API>Добавить разрешение.
- Убедитесь, что выбрана вкладка API Майкрософт.
- В разделе "Часто используемые API Майкрософт" выберите 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
для получения токена доступа с платформы идентификации Microsoft. Этот пакет основан на библиотеке проверки подлинности Майкрософт (MSAL) для Python для упрощения проверки подлинности и авторизации в веб-приложениях.Маркер доступа, получаемый на предыдущем шаге, используется в качестве маркера носителя для проверки подлинности пользователя при вызове API Microsoft Graph.
Дальнейшие действия
Узнайте больше, создав веб-приложение на Python, которое выполняет вход пользователей и вызывает защищенный веб-API в следующей серии руководств, состоящей из нескольких частей.
Руководство по . Веб-приложение, которое выполняет вход пользователей