Проверка атрибутов, собранных во время регистрации
Упражнение. Проверка атрибутов, собранных во время регистрации
Расширение пользовательской проверки подлинности поддерживает событие отправки коллекции атрибутов . Это событие позволяет выполнять проверку атрибутов, собранных пользователем во время регистрации. Для нашего веб-сайта для покупки продуктов питания мы проверим название города в списке стран или регионов, используя REST API пользовательского расширения проверки подлинности. Кроме того, если город содержит блок, внешний идентификатор Microsoft Entra будет отображать заблокированную страницу. Если город содержит модифицировать, Microsoft Entra External ID изменит некоторые атрибуты (отображаемое имя и город).
Примечание.
Для настройки проверки атрибутов, собираемых во время регистрации, вам потребуется как минимум роль каталога администратора расширяемости аутентификации.
Эта роль является привилегированной ролью. Ознакомьтесь с рекомендациями по работе с привилегированными ролями.
У вас есть отзывы? Пожалуйста, сообщите нам, как будет идти подтверждение проекта концепции. Мы хотели бы услышать ваше мнение!
Совет
Вы также можете просмотреть пример веб-API .NET C#, демонстрирующий использование настраиваемого расширения проверки подлинности Внешняя идентификация Microsoft Entra для различных событий.
Начните с регистрации пользовательского расширения проверки подлинности, используемого Внешняя идентификация Microsoft Entra для вызова REST API. Расширение пользовательской проверки подлинности содержит сведения о конечной точке REST API, действии начала сбора атрибутов, которое он анализирует из REST API и как пройти проверку подлинности в REST API. Войдите в Центр администрирования Microsoft Entra и перейдите к внешним удостоверениям>расширениям пользовательской проверки подлинности. Обратите внимание, что вы также можете перейти к >Enterprise. Затем нажмите кнопку "Создать пользовательское расширение".
В разделе "Основы" выберите событие AttributeCollectionSubmit , а затем нажмите кнопку "Далее".
В конфигурации конечной точки заполните следующие свойства:
Имя — название вашего настраиваемого расширения аутентификации, например, проверка вводимых пользователем данных при регистрации.
Целевой URL — URL вашего REST API.
Время ожидания в миллисекундах — максимальное число повторных вызовов конечной точки API в случае сбоя. Если пусто, это значение по умолчанию используется для службы.
Максимальное количество повторных попыток — максимальное число раз, в которые конечная точка API будет вызываться в случае сбоя. Если пусто, это значение по умолчанию используется для службы.
Описание — описание пользовательских расширений проверки подлинности. Чтобы продолжить, нажмите кнопку "Далее".
Чтобы обеспечить безопасность взаимодействия между пользовательским расширением проверки подлинности и REST API, необходимо применить несколько элементов управления безопасностью. Первым шагом является создание или выбор приложения, которое Внешняя идентификация Microsoft Entra используется. Он использует поток предоставления учетных данных клиента OAuth 2.0 для защиты вызова конечной точки API.
Если это первое пользовательское расширение проверки подлинности, узнайте, как мы настроили событие TokenIssuanceStart. Поскольку мы уже настроили пользовательское расширение аутентификации в разделе API Authentication, выберите опцию Выбрать существующую учетную запись приложения в этом каталоге.
Выберите приложение, настроенное для других расширений пользовательской проверки подлинности, и нажмите кнопку "Выбрать".
Просмотрите конфигурацию и выберите "Создать", которая регистрирует настраиваемое расширение проверки подлинности, настроенное и выбранную регистрацию соответствующего приложения.
На этом этапе настраиваемое расширение проверки подлинности настроено в клиенте, но не используется ни на одной из страниц регистрации. Затем вы свяжите пользовательское расширение проверки подлинности с одним или несколькими потоками пользователей. Для этого перейдите к Удостоверение личности>Внешние удостоверения>Сценарии пользователя. Затем выберите поток пользователя из списка.
В меню выберите пользовательские расширения аутентификации. Чтобы связать расширение пользовательской проверки подлинности, выберите событие Перед сбором сведений от пользователя.
Будут отображаться пользовательские расширения, настроенные для события OnAttributeCollectionStart . Выберите один из них для события запуска коллекции атрибутов, а затем нажмите кнопку "Выбрать ", чтобы сохранить изменения.
Отлично! Вы создали настраиваемое расширение проверки подлинности типа OnAttributeCollectionSubmit, а затем связали его с потоком пользователя.
1. Регистрация пользовательского приложения расширения проверки подлинности
Если это ваше первое пользовательское расширение проверки подлинности, зарегистрируйте приложение этого расширения.
2. Регистрация пользовательского расширения проверки подлинности
Затем необходимо зарегистрировать настраиваемое расширение проверки подлинности. Зарегистрируйте настраиваемое расширение проверки подлинности, связав его с созданным приложением безопасности расширения пользовательской проверки подлинности и конечной точкой REST API. Замените следующие значения собственными: {app-ID} идентификатором приложения из предыдущего вызова пользовательского приложения безопасности расширения проверки подлинности. - {REST-API-domain} с вашим доменным именем REST API — {Endpoint-URL} — с URL конечной точки вашего REST API.
POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
"displayName": "Validate sign-up user input",
"description": "Validate user input including the city name and may ask the user to correct the data or block the user",
"behaviorOnError": null,
"authenticationConfiguration": {
"@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
"resourceId": "api://{REST-API-domain}/{app-ID}"
},
"endpointConfiguration": {
"@odata.type": "#microsoft.graph.httpRequestEndpoint",
"targetUrl": "{Endpoint-URL}"
},
"clientConfiguration": {
"timeoutInMilliseconds": null,
"maximumRetries": null
}
}
Пример
POST https://graph.microsoft.com/beta/identity/customAuthenticationExtensions
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtension",
"displayName": "Validate sign-up user input",
"description": "Validate user input including the city name and may ask the user to correct the data or block the user",
"behaviorOnError": null,
"authenticationConfiguration": {
"@odata.type": "#microsoft.graph.azureAdTokenAuthentication",
"resourceId": "api://auth-api.woodgrovedemo.com/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
},
"endpointConfiguration": {
"@odata.type": "#microsoft.graph.httpRequestEndpoint",
"targetUrl": "https://auth-api.woodgrovedemo.com/OnAttributeCollectionSubmit"
},
"clientConfiguration": {
"timeoutInMilliseconds": null,
"maximumRetries": null
}
}
2.1 Копирование пользовательского идентификатора расширения проверки подлинности
Скопируйте значение идентификатора из ответа. Например:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/customAuthenticationExtensions/$entity",
"@odata.type": "#microsoft.graph.onAttributeCollectionStartCustomExtension",
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"displayName": "Prepopulate sign-up attributes",
"description": "Prepopulate sign-up attributes from a REST API",
}
2.2. Создание прослушивателя событий проверки подлинности
После регистрации вашего пользовательского расширения аутентификации создайте прослушиватель событий аутентификации. В следующем формате JSON замените {Custom-auth-extension-ID} пользовательским расширением проверки подлинности, которое вы только что создали.
POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
"conditions": {
"applications": {
"includeAllApplications": false,
"includeApplications": []
}
},
"priority": 500,
"handler": {
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
"customExtension": {
"id": "{Custom-auth-extension-ID}"
}
}
}
Пример
POST https://graph.microsoft.com/beta/identity/authenticationEventListeners
{
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitListener",
"conditions": {
"applications": {
"includeAllApplications": false,
"includeApplications": []
}
},
"priority": 500,
"handler": {
"@odata.type": "#microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler",
"customExtension": {
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}
}
}
2.3 Связывание настраиваемого расширения проверки подлинности с потоком пользователя
Обновите пользовательский поток. В следующем запросе замените следующие значения собственными: {user-flow-ID}идентификатором потока пользователя. - {Custom-auth-extension-ID} с пользовательским расширением проверки подлинности, которое вы только что создали.
PUT https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
"@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/{Custom-auth-extension-ID}"
}
Пример
PUT https://graph.microsoft.com/beta//identity/authenticationEventsFlows/bbbbbbbb-1111-2222-3333-cccccccccccc/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollectionSubmit/microsoft.graph.onAttributeCollectionSubmitCustomExtensionHandler/customExtension/$ref
{
"@odata.id": "https://graph.microsoft.com/beta/identity/customAuthenticationExtensions/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}