建立註冊和登入使用者流程

已完成

練習:建立註冊和登入使用者流程

使用者流程定義客戶遵循的一系列註冊步驟,以及他們可以使用的登入方法 (例如電子郵件和密碼、一次性密碼,或 Google 或 Facebook 社交帳戶)。 您也可以在註冊期間從一系列內建使用者屬性中進行選取,或新增您自己的自訂屬性,向客戶收集資訊。 如果您有多個應用程式想要提供給客戶,可以建立多個使用者流程。

注意

您至少需要外部 ID 使用者流程管理員目錄角色,才能建立使用者流程。

想提供意見反應? 請讓我們知道您的概念證明專案進行狀況如何。 我們很樂意收到您的寶貴意見。

  1. 若要建立註冊和登入使用者流程,請登入至 Microsoft Entra 系統管理中心,然後瀏覽至 [身分識別]>[外部身分識別]

    Microsoft Entra 系統管理中心首頁的螢幕擷取畫面,醒目提示了標題為「外部身分識別」的左側瀏覽項目。

  2. 從功能表中選取 [使用者流程]。 然後,選取 [新增使用者流程]

    Microsoft Entra 系統管理中心首頁的螢幕擷取畫面,醒目提示了標題為「外部身分識別」的左側瀏覽項目。

  3. [建立] 頁面上,輸入使用者流程的 [名稱] (例如:"SignUpSignIn")。 然後,在 [識別提供者] 下,選取 [電子郵件帳戶] 核取方塊,然後選取其中一個選項。 如果您設定了其他識別提供者,則可以選取它們。

    外部身分識別使用者流程中建立刀鋒視窗的螢幕擷取畫面,醒目提示了新使用者流程的名稱。

  4. [使用者屬性] 底下,選擇您在註冊期間要向使用者收集的屬性。 選取 [顯示更多] 以從完整屬性清單中選擇,包括職稱、顯示名稱和郵遞區號等。 然後,選取 [建立] 以建立使用者流程。

    在外部身分識別使用者流程中建立刀鋒視窗的螢幕擷取畫面,醒目提示核取方塊城市、國家或地區和顯示名稱中的選中項目作為註冊期間收集的屬性,並在下方顯示更多連結以取得其他選項。底端標題為「建立」的按鈕將醒目顯示。

  5. 從清單中選取您建立的使用者流程。

    外部身分識別的螢幕擷取畫面,使用者流程刀鋒視窗,格線清單中醒目提示了名為 SignUpSign 的使用者流程。

  6. 以下步驟為存取您應用程式的使用者啟動註冊和登入體驗 (使用者流程)。 在左側功能表的 [使用] 底下,選取 [應用程式]

    標題為「SignUpSignIn」的使用者流程的使用者流程概觀刀鋒視窗的螢幕擷取畫面,其中醒目提示了標題為「應用程式」的左側瀏覽項目。

  7. 選取 [新增應用程式]

    標題為「SignUpSignIn」的使用者流程之應用程式刀鋒視窗的螢幕擷取畫面,其中醒目提示工具列中標題為「新增應用程式」的按鈕。

  8. 從清單中選取應用程式。 或者,使用搜尋方塊來尋找應用程式,然後加以選取。 選擇選取

    右側開啟的 [選取應用程式] 窗格的螢幕擷取畫面,醒目提示名為「Woodgrove Groceries」的已選取應用程式。底端標題為「選取」的按鈕醒目提示。

  9. 應用程式現在已連結至使用者流程。 選取 [執行使用者流程] 以預覽體驗。

    螢幕擷取畫面,顯示名為「Woodgrove Groceries」之應用程式與名為「SignUpSignIn」的使用者流程相關聯。標示為「執行使用者流程」的按鈕會醒目提示。

  10. 在右側開啟的 [執行使用者流程] 窗格中,確定已選取正確的 [應用程式] 和 [回覆 URL]。 然後,選取 [執行使用者流程]

    右側隨即開啟之 [執行使用者流程] 窗格的螢幕擷取畫面,其中已醒目提示 [應用程式] 和 [回覆 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}"
}