Создайте поток пользователя для регистрации и входа в систему

Завершено

Упражнение. Создание потока пользователей регистрации и входа

Поток пользователя определяет ряд шагов регистрации и методов входа, которые они могут использовать (например, электронная почта и пароль, одноразовые секретные коды или учетные записи социальных сетей из Google или Facebook). Вы также можете собирать сведения от клиентов во время регистрации, выбрав из ряда встроенных пользовательских атрибутов или добавив собственные пользовательские атрибуты. Можно создать несколько потоков пользователей, если у вас есть несколько приложений, которые вы хотите предложить клиентам.

Примечание.

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

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

  1. Чтобы создать поток регистрации и входа в систему, войдите в Центр администрирования Microsoft Entra и перейдите к >.

    Снимок экрана: домашняя страница Центра администрирования Microsoft Entra с выделенным элементом навигации слева с выделенным внешними удостоверениями.

  2. В меню выберите потоки пользователей. Затем выберите новый поток пользователя.

    Снимок экрана: домашняя страница Центра администрирования Microsoft Entra с выделенным элементом навигации слева с выделенным внешними удостоверениями.

  3. На странице Создать введите имя потока пользователя (например, "SignUpSignIn"). Затем в разделе "Поставщики удостоверений" установите флажок "Учетные записи электронной почты " и выберите один из этих параметров. Если вы настроили других поставщиков удостоверений, их можно выбрать.

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

  4. В разделе Атрибуты пользователя выберите атрибуты, которые вы хотите получить от пользователя во время регистрации. Выберите "Показать больше ", чтобы выбрать полный список атрибутов, включая название задания, отображаемое имя и почтовый индекс и многое другое. Затем нажмите кнопку "Создать ", чтобы создать поток пользователя.

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

  5. В списке выберите созданный поток пользователя.

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

  6. Ниже описано, как активировать интерфейс регистрации и входа (поток пользователя) для пользователей, посещающих приложение. В меню слева в разделе Использование выберите Приложения.

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

  7. Выберите Add Application (Добавить приложение).

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

  8. Выберите нужное приложение в списке. Также можно найти и выбрать приложение с помощью поля поиска. Выберите Выбрать.

    Снимок экрана: панель

  9. Теперь приложение связано с потоком пользователя. Выберите "Запустить поток пользователя", чтобы просмотреть интерфейс.

    Снимок экрана: приложение с названием Woodgrove Groceries, отображающееся как приложение, связанное с пользовательским потоком SignUpSignIn. Выделена кнопка с меткой

  10. В области "Запуск потока пользователя", открывающейся справа, убедитесь, что выбран правильный URL-адрес приложения и ответа. Затем выберите "Запустить поток пользователя".

    Снимок экрана: область

  11. Отличная работа! Вы успешно создали поток пользователя и связали приложение!

    Совет

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

    Снимок экрана: предварительный просмотр потока входа.

1. Создание потока пользователя

Чтобы создать поток пользователя, создайте объект потока событий проверки подлинности, который имеет тип, указанный в тексте запроса.

POST https://graph.microsoft.com/beta/identity/authenticationEventsFlows
{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/authenticationEventsFlows/$entity",
    "@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
    "displayName": "Default sign-up and sign-in",
    "description": "Woodgrove default sign-up and sign-in flow",
    "priority": 500,
    "conditions": {
        "applications": {
            "includeAllApplications": false
        }
    },
    "onInteractiveAuthFlowStart": {
        "@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
        "isSignUpAllowed": true
    },
    "onAuthenticationMethodLoadStart": {
        "@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
        "identityProviders": [
            {
                "@odata.type": "#microsoft.graph.builtInIdentityProvider",
                "id": "EmailPassword-OAUTH"
            }
        ]
    },
    "onAttributeCollection": {
        "@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
        "accessPackages": [],
        "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": false,
                            "validationRegEx": "^.*",
                            "options": []
                        }
                    ]
                }
            ]
        },
        "attributes": [
            {
                "id": "email"
            },
            {
                "id": "city"
            },
            {
                "id": "country"
            },
            {
                "id": "displayName"
            }
        ]
    },
    "onUserCreateStart": {
        "@odata.type": "#microsoft.graph.onUserCreateStartExternalUsersSelfServiceSignUp",
        "userTypeToCreate": "member",
        "accessPackages": []
    }
}
1.1 Копирование идентификатора потока пользователя

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/authenticationEventsFlows/$entity",
    "@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
    "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "displayName": "Default sign-up and sign-in1",
    "description": "Woodgrove default sign-up and sign-in flow",
    ...
}      

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

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

POST https://graph.microsoft.com/beta/identity/authenticationEventsFlows/{user-flow-ID}/conditions/applications/includeApplications
{
    "@odata.type": "#microsoft.graph.authenticationConditionApplication",
    "appId": "{app-ID}"
}