Последовательность входа в приложение с помощью платформы удостоверений Майкрософт
В этом разделе рассматривается базовая последовательность входа в веб-приложения, классические и мобильные приложения с помощью платформы удостоверений Майкрософт. Сведения о сценариях входа, поддерживаемых платформой удостоверений Майкрософт, см. в статье Потоки проверки подлинности и сценарии приложений.
Последовательность входа в веб-приложение
Когда пользователь переходит к веб-приложению в браузере, происходит следующее:
- Веб-приложение определяет, прошел ли пользователь проверку подлинности.
- Если пользователь не прошел проверку подлинности, веб-приложение делегирует идентификатор Microsoft Entra для входа в систему. Такая процедура входа соответствует политике организации, а значит, пользователю может быть предложено ввести его учетные данные с использованием многофакторной проверки подлинности (иногда это называется двухфакторной проверкой подлинности или 2FA) или войти без использования пароля (например, через Windows Hello).
- Пользователю предлагается дать согласие на доступ, который требуется клиентскому приложению. Именно поэтому клиентские приложения должны быть зарегистрированы в идентификаторе Microsoft Entra, чтобы платформа удостоверений Майкрософт могли доставлять маркеры, представляющие доступ, которому пользователь предоставил согласие.
После успешной проверки подлинности пользователя:
- Платформа удостоверений Майкрософт отправляет маркер веб-приложению.
- Файл cookie сохраняется, связанный с доменом Microsoft Entra, который содержит удостоверение пользователя в jar-файле cookie браузера. Когда приложение обратится к конечной точке платформы удостоверений Майкрософт через браузер в следующий раз, браузер предъявит этот файл cookie, чтобы пользователю не пришлось выполнять вход еще раз. Таким образом, помимо прочего, обеспечивается единый вход. Файл cookie создается идентификатором Microsoft Entra и может быть понят только идентификатором Microsoft Entra.
- Затем веб-приложение проверяет полученный маркер. Если проверка даст положительный результат, веб-приложение отобразит защищенную страницу и сохранит файл cookie сеанса в JAR-файл с файлами cookie браузера. Когда пользователь переходит на другую страницу, веб-приложение определяет, прошел ли пользователь проверку подлинности, по этому файлу cookie сеанса.
Этот процесс взаимодействия демонстрирует следующая схема последовательности:
Как веб-приложение определяет, прошел ли пользователь проверку подлинности
Разработчики веб-приложений могут указать, требуется ли проверка подлинности для всех или только для некоторых страниц. Например, в ASP.NET/ASP.NET Core это можно сделать, добавив к действиям контроллера атрибут [Authorize]
.
Он заставляет ASP.NET проверять наличие файла cookie сеанса, содержащего идентификатор пользователя. Если файл cookie отсутствует, ASP.NET переадресует проверку подлинности указанному поставщику удостоверений. Если поставщик удостоверений является идентификатором Microsoft Entra, веб-приложение перенаправляет проверку подлинности https://login.microsoftonline.com
в , в которой отображается диалоговое окно входа.
Как веб-приложение делегирует вход платформе удостоверений Майкрософт и получает маркер
Проверка подлинности пользователя осуществляется через браузер. Протокол OpenID Connect использует стандартные сообщения по протоколу HTTP.
- Веб-приложение отправляет в браузер код состояния HTTP 302 (перенаправление), обозначающий переход на платформу удостоверений Майкрософт.
- Когда аутентификация пользователя будет выполнена, платформа удостоверений Майкрософт отправит маркер веб-приложению, используя перенаправление через браузер.
- Веб-приложение предоставляет перенаправление в форме URI перенаправления. Этот URI перенаправления зарегистрирован в объекте приложения Microsoft Entra. URI перенаправления может быть несколько, поскольку приложение может быть развернуто по нескольким URL-адресам. В связи с этим веб-приложение также должно указывать, какой URI перенаправления необходимо использовать.
- Идентификатор Microsoft Entra проверяет, что URI перенаправления, отправленный веб-приложением, является одним из зарегистрированных URI перенаправления для приложения.
Последовательность входа в классические и мобильные приложения
К классическим и мобильным приложениям применяется та же последовательность, которая описана выше, но с небольшими отличиями.
Для проверки подлинности классические и мобильные приложения могут использовать встроенный веб-элемент управления, он же системный браузер. На следующей схеме показано, как классическое или мобильное приложение использует библиотеку проверки подлинности Майкрософт (MSAL) для получения маркеров доступа и вызова веб-API.
MSAL для получения маркеров использует браузер. Как и в случае с веб-приложениями, проверка подлинности перенаправляется на платформу удостоверений Майкрософт.
Так как идентификатор Microsoft Entra сохраняет тот же файл cookie удостоверений в браузере, что и для веб-приложений, если собственное или мобильное приложение использует системный браузер, он немедленно получит единый вход с соответствующим веб-приложением.
По умолчанию MSAL использует системный браузер. Исключение составляют классические приложения .NET Framework, где для более тесного взаимодействия с пользователем используется внедренный элемент управления.
Следующие шаги
Другие статьи по основам проверки подлинности и авторизации:
- Сведения об основных понятиях, связанных с проверкой подлинности и авторизацией на платформе удостоверений Майкрософт, см. в статье Проверка подлинности и авторизация.
- Сведения о маркерах доступа, маркерах обновления и маркерах идентификации, используемых при проверке подлинности и авторизации, см. в статье Маркеры безопасности.
- Сведения о процессе регистрации приложения для интеграции с платформой удостоверений Майкрософт см. в статье Модель приложения.
- Ознакомьтесь с безопасными приложениями и API, проверяя утверждения, чтобы узнать, как безопасно использовать утверждения маркеров для логики авторизации в приложениях.
Дополнительные сведения о последовательности входа в приложение:
- Сведения о других сценариях проверки подлинности, поддерживаемых платформой удостоверений Майкрософт, см. в статье Потоки проверки подлинности и сценарии приложений.
- Ознакомьтесь с библиотеками MSAL, чтобы узнать о библиотеках Майкрософт, которые помогают разрабатывать приложения, которые работают с учетными записями Майкрософт, учетными записями Microsoft Entra и пользователями Azure AD B2C в одной упрощенной модели программирования.