Сбор атрибутов пользователя во время регистрации

Завершено

Упражнение. Сбор атрибутов пользователя во время регистрации

Атрибуты пользователей — это значения, собранные пользователем во время самостоятельной регистрации. В параметрах пользовательского потока вы можете выбрать из набора встроенных атрибутов пользователя, которые должны предоставлять клиенты. Вы также можете создать настраиваемые атрибуты пользователя и добавить их в поток пользователя во время регистрации. На странице регистрации пользователь вводит сведения и сохраняется с его профилем в каталоге. Для целей веб-сайта онлайн продуктовых продуктов мы будем использовать сочетание встроенных атрибутов и настраиваемый атрибут, называемый специальной диетой.

Примечание.

Для настройки атрибутов пользователя во время регистрации потребуется по крайней мере роль администратора атрибутов внешнего потока идентификаторов .

У вас есть отзывы? Пожалуйста, сообщите нам, как будет идти подтверждение проекта концепции. Мы хотели бы услышать ваше мнение!

  1. Начнем с создания настраиваемого пользовательского атрибута специальной диеты. Для этого войдите в Центр администрирования Microsoft Entra и перейдите к Внешние удостоверения>Обзор. Затем выберите настраиваемые атрибуты пользователя.

    Снимок экрана: колонка

  2. Список содержит все атрибуты пользователя, доступные в клиенте, включая все пользовательские атрибуты пользователя, созданные. Столбец типа атрибута указывает, является ли атрибут встроенным или настраиваемым. Нажмите кнопку "Добавить ", чтобы добавить новый атрибут.

    Снимок экрана: колонка

  3. В области "Добавление атрибута" введите имя настраиваемого атрибута. Например, SpecialDiet. В разделе «Тип данных» выберите «Строка». В поле "Описание" введите описание пользовательского атрибута для внутреннего использования. Это описание невидимо для пользователя.

    Снимок экрана: область добавления атрибута открыта справа с полем Name, указанным как SpecialDiet, и Типом данных, выбранным как String, выделена.

  4. После добавления пользовательского атрибута пользователя в клиент перейдите к включению пользовательского атрибута пользователя в поток регистрации. Перейдите к Идентификации>Внешним идентификациям>пользователей. Затем выберите поток пользователя из списка.

    Снимок экрана: навигация в левой части Центра администрирования Microsoft Entra с выделением внешних удостоверений и потоков пользователей, где в списке потоков пользователей выделен один из именованных по умолчанию.

  5. Выберите атрибуты пользователя. Этот список содержит все пользовательские атрибуты пользователя, определенные в предыдущем разделе. Например, новая функция SpecialDiet теперь отображается в списке. Выберите все атрибуты, которые нужно собрать от пользователя во время регистрации, и нажмите кнопку "Сохранить".

    Снимок экрана панели атрибутов для потока пользователя с заголовком Default отображает список атрибутов, включенных для потока пользователя. Атрибут под названием SpecialDiet выделен.

  6. В качестве последнего шага вы настроите макет страницы регистрации. В макетах страниц можно указать необходимые атрибуты и упорядочить отображаемый порядок. Вы также можете изменять метки атрибутов, создавать переключатели или флажки и многое другое. Для нашего продуктового веб-сайта мы добавим метку в атрибут с именем SpecialDiet. В разделе "Настройка" выберите макеты страниц. Будут отображаться атрибуты, которые вы выбрали для сбора. Измените метку для любого атрибута, выбрав значение в столбце Label и изменив текст.

    Снимок экрана: колонка

    Отличная работа! Вы добавили настраиваемый атрибут своему арендатору, включили этот атрибут в пользовательский поток, а затем добавили метку к атрибуту.

1. Создание настраиваемого атрибута

Чтобы создать пользовательский атрибут, выполните следующий запрос Microsoft Graph.

POST https://graph.microsoft.com/beta/identity/userFlowAttributes
{
    "displayName": "SpecialDiet",
    "description": "Customer's special diet",
    "dataType": "string"
}
1.1 Копирование пользовательского атрибута

Скопируйте из ответа значение атрибута с пользовательским идентификатором. Например:

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/userFlowAttributes/$entity",
    "id": "extension_a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1_SpecialDiet",
    "displayName": "SpecialDiet",
    "description": "Customer's special diet",
    "userFlowAttributeType": "custom",
    "dataType": "string"
}   

2. Добавление атрибута в поток пользователя

Чтобы добавить атрибут в поток пользователя, выполните приведенный ниже запрос Microsoft Graph. Замените {user-flow-ID}идентификатором потока пользователя. Замените {attribute-ID}идентификатором атрибута из предыдущего шага.

POST https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollection/microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp/attributes/$ref
{
    "@odata.id":"https://graph.microsoft.com/beta/identity/userFlowAttributes/{attribute-ID}"
}
Пример
POST https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}/microsoft.graph.externalUsersSelfServiceSignUpEventsFlow/onAttributeCollection/microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp/attributes/$ref
{
    "@odata.id":"https://graph.microsoft.com/beta/identity/userFlowAttributes/{attribute-ID}"
}

3. Обновление макета страницы (необязательно)

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

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

Предупреждение

Коллекция входных данных должна содержать все атрибуты. Чтобы добавить или удалить атрибуты, обязательно включите все остальные атрибуты.

Замените {user-flow-ID}идентификатором потока пользователя. Замените {attribute-ID}идентификатором атрибута.

PATCH https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}
{
    "@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
    "onAttributeCollection": {
        "@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
        "attributeCollectionPage": {
            "customStringsFileId": null,
            "views": [
                {
                    "title": null,
                    "description": null,
                    "inputs": [
                        {
                            "attribute": "email",
                            "label": "Email Address",
                            "inputType": "text",
                            "defaultValue": null,
                            "hidden": true,
                            "editable": false,
                            "writeToDirectory": true,
                            "required": true,
                            "validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$",
                            "options": []
                        },
                        {
                            "attribute": "displayName",
                            "label": "Display Name",
                            "inputType": "text",
                            "defaultValue": null,
                            "hidden": false,
                            "editable": true,
                            "writeToDirectory": true,
                            "required": true,
                            "validationRegEx": "^.*",
                            "options": []
                        },
                        {
                            "attribute": "country",
                            "label": "Country/Region",
                            "inputType": "radioSingleSelect",
                            "defaultValue": null,
                            "hidden": false,
                            "editable": true,
                            "writeToDirectory": true,
                            "required": false,
                            "validationRegEx": "^.*",
                            "options": [
                                {
                                    "label": "Australia",
                                    "value": "au"
                                },
                                {
                                    "label": "Spain",
                                    "value": "es"
                                },
                                {
                                    "label": "United States",
                                    "value": "us"
                                }
                            ]
                        },
                        {
                            "attribute": "city",
                            "label": "City",
                            "inputType": "text",
                            "defaultValue": null,
                            "hidden": false,
                            "editable": true,
                            "writeToDirectory": true,
                            "required": true,
                            "validationRegEx": "^.*",
                            "options": []
                        },                        {
                            "attribute": "{attribute-ID}",
                            "label": "Special diet",
                            "inputType": "text",
                            "defaultValue": null,
                            "hidden": false,
                            "editable": true,
                            "writeToDirectory": true,
                            "required": false,
                            "validationRegEx": "^.*",
                            "options": []
                        }
                    ]
                }
            ]
        }
    }
}