Бөлісу құралы:


Общие сведения о расширениях пользовательской проверки подлинности

В этой статье представлен общий технический обзор пользовательских расширений проверки подлинности для идентификатора Microsoft Entra. Пользовательские расширения проверки подлинности позволяют настроить интерфейс проверки подлинности Microsoft Entra путем интеграции с внешними системами.

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

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

  1. Пользователь пытается войти в приложение и перенаправляется на страницу входа в Microsoft Entra.
  2. После завершения определенного шага проверки подлинности активируется прослушиватель событий.
  3. Ваше пользовательское расширение проверки подлинности отправляет HTTP-запрос в вашу конечную точку REST API. Запрос содержит сведения о событии, профиле пользователя, данных сеанса и других контекстных данных.
  4. REST API выполняет настраиваемый рабочий процесс.
  5. REST API возвращает HTTP-ответ на идентификатор Microsoft Entra.
  6. Расширение пользовательской проверки подлинности Microsoft Entra обрабатывает ответ и настраивает проверку подлинности на основе типа события и данных полезной нагрузки HTTP-ответа.
  7. Маркер возвращается в приложение.

Конечная точка REST API расширения пользовательской аутентификации

Когда происходит срабатывание события, Microsoft Entra ID вызывает принадлежащую вам конечную точку REST API. Запрос к REST API содержит сведения о событии, профиле пользователя, данных запроса проверки подлинности и других контекстных данных.

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

REST API должен обрабатывать следующее:

  • Проверка токенов для защиты вызовов REST API.
  • Бизнес-логика
  • Входящие и исходящие проверки схем HTTP-запроса и ответа.
  • Аудит и ведение журнала.
  • Меры контроля доступности, производительности и безопасности.

Для разработчиков, запускающих REST API на Azure Functions, рекомендуется использовать библиотеку NuGet Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents, которая помогает реализовать проверку маркеров с помощью встроенных возможностей аутентификации Microsoft Azure. Он предоставляет модель данных для разных типов событий, инициирует входящие и исходящие запросы и обработку ответов, поэтому большее внимание можно сосредоточить на бизнес-логике.

Защита REST API

Чтобы обеспечить безопасность взаимодействия между пользовательским расширением проверки подлинности и REST API, необходимо применить несколько элементов управления безопасностью.

  1. Когда расширение пользовательской проверки подлинности вызывает REST API, оно отправляет заголовок HTTP Authorization с токеном доступа, выданным Microsoft Entra ID.
  2. Маркер носителя содержит претензию appid или azp. Проверьте, что соответствующее утверждение содержит значение 99045fe1-7639-4a75-9d4a-577b6ca3810f. Это значение гарантирует, что идентификатор Microsoft Entra — это тот, кто вызывает REST API.
    1. Для приложений версии 1 проверьте appid утверждение.
    2. Для приложений версии 2 проверьте azp утверждение.
  3. Утверждение "audience" токена aud содержит идентификатор связанной регистрации приложения. Конечная точка REST API должна проверить, выдан ли токен носителя для этой конкретной аудитории.
  4. Утверждение издателя токена-носителя iss содержит URL-адрес издателя Microsoft Entra. В зависимости от конфигурации клиента URL-адрес издателя будет одним из следующих.
    • Рабочая сила: https://login.microsoftonline.com/{tenantId}/v2.0.
    • Клиент: https://{domainName}.ciamlogin.com/{tenantId}/v2.0.

Настраиваемые типы событий проверки подлинности

В потоке регистрации и входа есть встроенные события проверки подлинности. Кроме того, можно добавлять пользовательские расширения проверки подлинности в определенных точках в потоке проверки подлинности. Расширение пользовательской проверки подлинности по сути является прослушивателем событий, который при активации выполняет http-вызов к конечной точке REST API, в которой определяется действие рабочего процесса. В этом разделе перечислены события пользовательской проверки подлинности, доступные в идентификаторе Microsoft Entra.

Событие начала выдачи токенов

Событие начала выпуска токена OnTokenIssuanceStart активируется, когда токен готовится к выдаче приложению. Это тип события, настроенный в пользовательском поставщике утверждений. Поставщик пользовательских утверждений — это пользовательское расширение проверки подлинности, которое вызывает REST API для получения утверждений из внешних систем. Настраиваемый поставщик утверждений сопоставляет утверждения из внешних систем с маркерами и может быть назначен одному или нескольким приложениям в каталоге.

Дополнительные сведения см. в настраиваемых поставщиках утверждений.

Начало коллекции атрибутов

События запуска коллекции атрибутов можно использовать с пользовательскими расширениями проверки подлинности для добавления логики перед сбором атрибутов от пользователя. Событие OnAttributeCollectionStart происходит в начале шага коллекции атрибутов перед отображением страницы сбора атрибутов. Он позволяет добавлять такие действия, как предварительно заполнение значений и отображение ошибки блокировки.

Примечание.

Событие запуска коллекции атрибутов доступно только для потоков пользователей в Microsoft Entra External ID во внешних клиентах. Дополнительные сведения см. в разделе "Добавление собственной бизнес-логики".

Отправка коллекции атрибутов

События отправки атрибутов можно использовать с кастомными расширениями аутентификации для добавления логики после сбора атрибутов от пользователя. Событие OnAttributeCollectionSubmit активируется после ввода и отправки атрибутов пользователем, что позволяет добавлять действия, такие как проверка записей или изменение атрибутов.

Примечание.

Событие отправки коллекции атрибутов доступно только для пользовательских потоков в Microsoft Entra External ID в внешних арендаторах. Дополнительные сведения см. в разделе "Добавление собственной бизнес-логики".

Однократное событие отправки секретного кода

Событие OnOtpSend вызывается при отправке одноразового кода доступа по электронной почте. Он позволяет вызывать REST API для использования собственного поставщика электронной почты. Это событие можно использовать для отправки настраиваемых сообщений электронной почты пользователям, которые регистрируются, сбрасывают пароль, выполняют вход с помощью электронной почты и одноразовый секретный код или многофакторную проверку подлинности электронной почты (MFA).

При активации события OnOtpSend Microsoft Entra отправляет одноразовый пароль в указанный вами REST API. Затем REST API использует выбранного поставщика электронной почты, такого как Служба коммуникации Azure или SendGrid, чтобы отправить одноразовый секретный код с вашим пользовательским шаблоном электронной почты, а также указать адрес отправителя и тему письма, поддерживая при этом локализацию.

Примечание.

Событие отправки однократного секретного кода в данный момент доступно только для пользовательских потоков в Microsoft Entra External ID во внешних арендаторах. Дополнительные сведения см. в статье Настройка пользовательского сервиса электронной почты для отправки одноразового секретного кода