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


Типы приложений для платформа удостоверений Майкрософт

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

Основы

Необходимо зарегистрировать каждое приложение, использующее платформа удостоверений Майкрософт в центре администрирования Microsoft Entra Регистрация приложений. Процесс регистрации приложения собирает и назначает следующие значения для приложения:

  • Идентификатор приложения (клиента), который однозначно идентифицирует приложение.
  • Универсальный код ресурса (URI перенаправления), который можно использовать для перенаправления ответов обратно в приложение.
  • Несколько других значений, таких как поддерживаемые типы учетных записей

Дополнительные сведения см. в статье о регистрации приложения.

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

https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token

Типы приложений, поддерживаемые платформа удостоверений Майкрософт;

  • Одностраничные приложения (SPA)
  • Веб-приложение
  • Веб-API
  • Мобильные и собственные приложения
  • Служба, управляющая программа, скрипт

Одностраничные приложения

Многие современные приложения имеют интерфейсное приложение с одной страницей (SPA), написанное в основном на JavaScript, часто с платформой, такой как Angular, React или Vue. Платформа удостоверений Майкрософт поддерживает эти приложения с помощью протокола OpenID Connect для проверки подлинности и одного из двух типов грантов авторизации, определенных OAuth 2.0. При разработке spAs используйте поток кода авторизации с PKCE. Этот поток является более безопасным, чем неявный поток, который больше не рекомендуется. Дополнительные сведения см. в разделе "Предпочитать поток кода проверки подлинности".

Схема потока демонстрирует поток предоставления кода авторизации OAuth 2.0 (с сведениями о PKCE опущен), где приложение получает код из конечной точки платформа удостоверений Майкрософт authorize и активирует его для маркера доступа и маркера обновления с помощью межсайтовых веб-запросов. Для spAs маркер доступа действителен в течение 1 часа и после истечения срока действия должен запросить другой код с помощью маркера обновления. В дополнение к маркеру доступа, id_token который представляет вошедшего пользователя в клиентское приложение, обычно запрашивается через тот же поток и (или) отдельный запрос OpenID Connect (не показан здесь).

Схема, на которой показан поток кода авторизации OAuth 2.0 между одностраничным приложением и конечной точкой службы маркеров безопасности.

Чтобы увидеть это в действии, ознакомьтесь с кратким руководством. Войдите пользователей в одностраничные приложения (SPA) и вызовите API Microsoft Graph с помощью JavaScript.

Веб-приложения

Для веб-приложений (.NET, PHP, Java, Ruby, Python, Node), к которым пользователь обращается через браузер, можно использовать OpenID Connect для входа пользователя. В OpenID Connect веб-приложение получает маркер идентификатора. Маркер идентификатора — это маркер безопасности, который проверяет удостоверение пользователя и предоставляет сведения о пользователе в виде утверждений:

// Partial raw ID token
abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...

// Partial content of a decoded ID token
{
    "name": "Casey Jensen",
    "email": "casey.jensen@onmicrosoft.com",
    "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
    ...
}

Дополнительные сведения о различных типах маркеров, используемых в платформа удостоверений Майкрософт, доступны в справочнике по маркерам доступа и id_token справочнике.

В приложениях веб-сервера поток проверки подлинности входа выполняет следующие высокоуровневые действия.

Отображение потока проверки подлинности веб-приложения

Удостоверение пользователя можно проверить, проверяя маркер идентификатора с открытым ключом подписи, полученным от платформа удостоверений Майкрософт. Задан файл cookie сеанса, который можно использовать для идентификации пользователя на последующих запросах страниц.

Узнайте больше, создав веб-приложение ASP.NET Core, которое входит в систему пользователей в следующей серии учебников с несколькими частью

Помимо простого входа, приложению веб-сервера может потребоваться доступ к другой веб-службе, например API передачи репрезентативного состояния (REST). В этом случае веб-серверное приложение участвует в объединенном потоке OpenID Connect и OAuth 2.0 с помощью потока кода авторизации OAuth 2.0. Дополнительные сведения об этом сценарии см. в нашем примере кода.

Веб-API

Вы можете использовать платформа удостоверений Майкрософт для защиты веб-служб, таких как ВЕБ-API RESTful приложения. Веб-API можно реализовать на различных платформах и языках. Их также можно реализовать с помощью триггеров HTTP в Функции Azure. Вместо маркеров идентификаторов и файлов cookie сеанса веб-API использует маркер доступа OAuth 2.0 для защиты данных и проверки подлинности входящих запросов.

Вызывающий веб-API добавляет маркер доступа в заголовок авторизации HTTP-запроса, как показано ниже.

GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
Accept: application/json
...

Веб-API использует маркер доступа для проверки удостоверения вызывающего API и извлечения сведений о вызывающем объекте из утверждений, закодированных в маркере доступа. Дополнительные сведения о различных типах маркеров, используемых в платформа удостоверений Майкрософт, доступны в справочнике по маркерам доступа и справочнике по маркеру идентификатора.

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

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

Отображение потока проверки подлинности веб-API

Чтобы узнать, как защитить веб-API с помощью маркеров доступа OAuth2, ознакомьтесь с примерами кода веб-API в руководстве по защищенному веб-API.

Во многих случаях веб-API также должны выполнять исходящие запросы к другим нижестоящим веб-API, защищенным платформа удостоверений Майкрософт. Для этого веб-API могут воспользоваться потоком On-Behalf-Of (OBO), который позволяет веб-API обменивать входящие маркеры доступа для использования другого маркера доступа в исходящих запросах. Дополнительные сведения см. в потоке платформа удостоверений Майкрософт и OAuth 2.0 on-Behalf-Of.

Мобильные и собственные приложения

Приложения, установленные на устройстве, такие как мобильные и классические приложения, часто требуют доступа к внутренним службам или веб-API, которые хранят данные и выполняют функции от имени пользователя. Эти приложения могут добавлять вход и авторизацию в внутренние службы с помощью потока кода авторизации OAuth 2.0.

В этом потоке приложение получает код авторизации из платформа удостоверений Майкрософт при входе пользователя. Код авторизации представляет разрешение приложения на вызов внутренних служб от имени пользователя, вошедшего в систему. Приложение может обмениваться кодом авторизации в фоновом режиме для маркера доступа OAuth 2.0 и маркера обновления. Приложение может использовать маркер доступа для проверки подлинности веб-API в HTTP-запросах и использовать маркер обновления для получения новых маркеров доступа при истечении срока действия старых маркеров доступа.

Отображение потока проверки подлинности собственного приложения

Заметка

Если приложение использует системное представление по умолчанию, проверьте сведения о функциях "Подтверждение входа" и коде AADSTS50199 ошибки в коде ошибок проверки подлинности и авторизации Microsoft Entra.

Серверные, daemons и скрипты

Приложения, имеющие длительные процессы или работающие без взаимодействия с пользователем, также нуждаются в способе доступа к защищенным ресурсам, таким как веб-API. Эти приложения могут проходить проверку подлинности и получать маркеры с помощью удостоверения приложения, а не делегированного удостоверения пользователя с потоком учетных данных клиента OAuth 2.0. Вы можете доказать удостоверение приложения с помощью секрета клиента или сертификата. Дополнительные сведения см. в разделе консольного приложения управляющей программы .NET с помощью платформа удостоверений Майкрософт.

В этом потоке приложение взаимодействует непосредственно с конечной /token точкой для получения доступа:

Показывает поток проверки подлинности приложения управляющей программы

Чтобы создать управляющее приложение, ознакомьтесь с документацией по учетным данным клиента или примером приложения .NET.

См. также

Теперь, когда вы знакомы с типами приложений, поддерживаемых платформа удостоверений Майкрософт, узнайте больше о OAuth 2.0 и OpenID Connect, чтобы получить представление о компонентах протокола, используемых различными сценариями.