共用方式為


教學課程:在 Azure Active Directory B2C 中建立使用者流程和自定義原則

這很重要

自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解

開始之前,請使用此頁面頂端的 [選擇原則類型] 選取器,選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先定義的使用者流程,或透過完全可設定的自訂原則。 此文章中所需的步驟隨各方法而異。

在您的應用程式中,您可能有使用者流程可讓用戶註冊、登入或管理其配置檔。 您可以在 Azure Active Directory B2C (Azure AD B2C) 租使用者中建立不同類型的多個使用者流程,並視需要在應用程式中使用這些流程。 使用者流程可以跨應用程式重複使用。

當使用者執行登入、註冊、編輯配置檔或重設密碼等動作時,使用者流程可讓您判斷使用者與應用程式互動的方式。 在本文中,您將學會如何:

自定義原則 是定義 Azure Active Directory B2C(Azure AD B2C) 租使用者行為的組態檔。 在本文中,您將學會如何:

  • 建立註冊和登入使用者流程
  • 啟用自助式密碼重設
  • 建立編輯個人資料的使用者流程

這很重要

我們已變更參考使用者流程版本的方式。 先前,我們提供了 V1(生產就緒)版本,以及 V1.1 和 V2 (預覽) 版本。 現在,我們已將使用者流程合併成兩個版本:建議 使用者流程,具備最新功能;以及 標準(舊版) 使用者流程。 所有舊版預覽使用者流程 (V1.1 和 V2) 都已被取代。 如需詳細資訊,請參閱 Azure AD B2C 中的使用者流程版本這些變更僅適用於 Azure 公用雲端。 其他環境會繼續使用 舊版使用者流程版本控制

先決條件

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

註冊和登入使用者流程會使用單一組態處理這兩種體驗。 應用程式的用戶會根據內容引導到正確的路徑。 若要建立註冊和登入使用者流程:

  1. 登入 Azure 入口網站

  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。

  3. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]

  4. 在 [ 原則] 底下,選取 [使用者流程],然後選取 [ 新增使用者流程]。

    Azure 入口網站 [使用者流程] 頁面的螢幕快照,其中已醒目提示 [新增使用者流程] 按鈕。

  5. 在 [建立使用者流程] 頁面上,選取 [註冊和登入] 使用者流程。

    Azure 入口網站的 [選取使用者流程] 頁面的螢幕快照,其中已醒目提示 [註冊和登入流程]。

  6. 在 [ 選取版本] 底下,選取 [ 建議],然後選取 [ 建立]。 (深入了解 使用者流程版本。)

    在 Azure 入口網站中建立使用者流程頁面,並於其中將屬性醒目提示

  7. 輸入使用者流程的名稱。 例如,signupsignin1

  8. 針對 [ 識別提供者],選取 [ 電子郵件註冊]。

  9. 針對 [用戶屬性] 和 [令牌宣告],選擇您想要在註冊期間從使用者收集並傳送的宣告和屬性。 例如,選取 [顯示更多],然後選擇 [國家/地區]、[顯示名稱],及 [郵遞區號] 的屬性和宣告。 請選擇 [確定]

    Azure 入口網站中屬性和宣告選取頁面的螢幕快照,其中已選取三個宣告並反白顯示。

  10. 選取 [建立] 以新增使用者流程。 輸入的名稱將自動加上前綴B2C_1_。 例如, B2C_1_signupsignin1

測試使用者流程

  1. 從 [ 使用者流程 ] 頁面中,選取您剛才建立的使用者流程,以開啟其概觀頁面。

  2. 在使用者流程概觀頁面頂端,選取 [ 執行使用者流程]。 窗格將會在頁面右側開啟。

  3. 針對 [應用程式],選取您想要測試的 Web 應用程式,例如名為 webapp1 的 Web 應用程式。 Reply URL 應顯示 https://jwt.ms

  4. 選取 [執行使用者流程],然後選取 [ 立即註冊]。

    Azure 入口網站中 [執行使用者流程] 頁面的螢幕快照,其中已醒目提示 [執行使用者流程] 按鈕、[應用程式] 文本框和 [回復 URL] 文本框。

  5. 輸入有效的電子郵件地址,選取 [ 傳送驗證碼],輸入您收到的驗證碼,然後選取 [ 驗證碼]。

  6. 輸入新密碼並確認密碼。

  7. 選取您的國家/地區、輸入您想要顯示的名稱、輸入郵遞郵遞區編碼,然後選取 [ 建立]。 令牌會傳回至 https://jwt.ms,然後應該會在您的瀏覽器中顯示。

  8. 您現在可以再次執行使用者流程,而且應該能夠使用您剛才建立的帳戶登入。 傳回的令牌包含您選取的國家/地區、名稱和郵遞區編碼的宣稱。

備註

「執行使用者流程」體驗目前與使用授權碼流程的 SPA 回復 URL 類型不相容。 若要使用這些類型的應用程式使用「執行使用者流程」體驗,請註冊類型為 「Web」 的回復 URL,並啟用隱含流程。

啟用自助式密碼重設

若要啟用註冊或登入使用者流程的 自助式密碼重設

  1. 從 [ 使用者流程 ] 頁面中,選取您剛才建立的註冊或登入使用者流程。
  2. 在左側功能表中的 [ 設定] 下,選取 [ 屬性]。
  3. [密碼設定] 底下,選取 [自助式密碼重設]。
  4. 選取 [儲存]。

測試使用者流程

  1. 從 [ 使用者流程 ] 頁面中,選取您剛才建立的使用者流程以開啟其概觀頁面,然後選取 [ 執行使用者流程]。
  2. 針對 [應用程式],選取您想要測試的 Web 應用程式,例如名為 webapp1 的 Web 應用程式。 Reply URL 應顯示 https://jwt.ms
  3. 選取執行使用者流程
  4. 從 [註冊或登入] 頁面中,選取 [忘記密碼?]。
  5. 確認您先前建立之帳戶的電子郵件地址,然後選取 [ 繼續]。
  6. 您現在有機會變更使用者的密碼。 變更密碼,然後選取 [ 繼續]。 令牌會傳回至https://jwt.ms 並應該顯示在瀏覽器中。

建立編輯個人資料的使用者流程

如果您想要讓使用者在您的應用程式中編輯其個人資料,請使用個人資料編輯流程。

  1. 在 Azure AD B2C 租使用者概觀頁面的功能表中,選取 [ 使用者流程],然後選取 [ 新增使用者流程]。
  2. 在 [ 建立使用者流程] 頁面上,選取 [配置文件編輯 使用者流程]。
  3. 在 [ 選取版本] 底下,選取 [ 建議],然後選取 [ 建立]。
  4. 輸入使用者流程的名稱。 例如, 配置檔編輯1
  5. 針對 [ 識別提供者],在 [ 本機帳戶] 底下,選取 [ 電子郵件註冊]。
  6. 針對 [使用者屬性],選擇您希望客戶能夠在其配置檔中編輯的屬性。 例如,選取顯示更多,然後為顯示名稱職稱選擇屬性和宣告。 請選擇 [確定]
  7. 選取 [建立] 以新增使用者流程。 B2C_1_前置詞會自動附加至名稱。

測試使用者流程

  1. 選取您建立的使用者流程,以開啟其概觀頁面。
  2. 在使用者流程概觀頁面頂端,選取 [ 執行使用者流程]。 窗格將會在頁面右側開啟。
  3. 針對 [應用程式],選取您想要測試的 Web 應用程式,例如名為 webapp1 的 Web 應用程式。 Reply URL 應顯示 https://jwt.ms
  4. 選取 [執行使用者流程],然後使用您先前建立的帳戶登入。
  5. 您現在有機會變更使用者的顯示名稱和職稱。 選取繼續。 令牌會傳回至https://jwt.ms 並應該顯示在瀏覽器中。

小提示

本文說明如何手動配置租戶。 您可以從本文將整個程序自動化。 自動化會部署 Azure AD B2C SocialAndLocalAccountsWithMFA 入門套件,以提供註冊和登入、密碼重設和配置檔編輯旅程。 若要自動化下列逐步解說,請流覽 IEF 安裝程式應用程式 ,並遵循指示。

新增 Identity Experience Framework 應用程式的簽署和加密密鑰

  1. 登入 Azure 入口網站
  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
  3. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  4. 在概觀頁面上,在 [原則] 底下,選取 [身分識別體驗架構]

建立簽署金鑰

  1. 選取 [原則密鑰 ],然後選取 [ 新增]。
  2. 針對 [選項],選擇 Generate
  3. [名稱] 中, 輸入 TokenSigningKeyContainer。 可能會自動新增前置詞 B2C_1A_
  4. 針對 [金鑰類型],選取 [RSA]。
  5. 針對 [ 金鑰使用方式],選取 [ 簽章]。
  6. 選取 ,創建

建立加密金鑰

  1. 選取 [原則密鑰 ],然後選取 [ 新增]。
  2. 針對 [選項],選擇 Generate
  3. [名稱] 中, 輸入 TokenEncryptionKeyContainer。 可能會自動新增前置詞 B2C_1A_。
  4. 針對 [金鑰類型],選取 [RSA]。
  5. 針對 [ 金鑰使用方式],選取 [ 加密]。
  6. 選取 ,創建

註冊身分識別體驗架構應用程式

Azure AD B2C 會要求您註冊兩個應用程式,以使用本機帳戶註冊和登入使用者: IdentityExperienceFramework、Web API 和 ProxyIdentityExperienceFramework,這是具有 IdentityExperienceFramework 應用程式委派許可權的原生應用程式。 您的使用者可以註冊電子郵件地址或使用者名稱和密碼,以存取註冊至租用戶的應用程式,這會建立「本機帳戶」。本機帳戶只存在於您的 Azure AD B2C 租使用者中。

您只需要在 Azure AD B2C 租用戶中註冊這兩個應用程式一次。

註冊 IdentityExperienceFramework 應用程式

若要在 Azure AD B2C 租用戶中註冊應用程式,您可以使用 應用程式註冊 體驗。

  1. 選取 [應用程式註冊],然後選取 [[新增註冊]。
  2. 對於名稱,輸入 IdentityExperienceFramework
  3. 支援的帳戶類型下,選取 僅限此組織目錄中的帳戶
  4. 重新導向 URI下,選擇Web,然後輸入https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com,其中your-tenant-name 是您 Azure AD B2C 的租用戶域名。
  5. 在 [許可權]下,選取 [授予管理員對 openid 和 offline_access 許可權的同意] 複選框。
  6. 選取 註冊
  7. 記錄 [應用程式 (用戶端) 識別碼],以便在稍後的步驟中使用。

接下來,藉由新增範圍來公開 API:

  1. 在左側功能表的 [管理] 底下,選取 [公開 API]
  2. 選取 新增範圍,然後選取 儲存並繼續,以接受預設的應用程式 ID URI。
  3. 輸入下列值來建立範圍,以允許在 Azure AD B2C 租使用者中執行自定義原則:
    • 範圍名稱user_impersonation
    • 管理員同意顯示名稱Access IdentityExperienceFramework
    • 管理員同意描述Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  4. 選取 [新增範圍]

註冊 ProxyIdentityExperienceFramework 應用程式

  1. 選取 [應用程式註冊],然後選取 [[新增註冊]。
  2. 對於名稱,輸入 ProxyIdentityExperienceFramework
  3. 支援的帳戶類型下,選取 僅限此組織目錄中的帳戶
  4. [重新導向 URI] 下,使用下拉式清單選取 [公用用戶端/原生] (行動裝置和桌面版)。
  5. 針對 [ 重新導向 URI],輸入 myapp://auth
  6. 在 [許可權]下,選取 [授予管理員對 openid 和 offline_access 許可權的同意] 複選框。
  7. 選取 註冊
  8. 記錄 [應用程式 (用戶端) 識別碼],以便在稍後的步驟中使用。

接下來,指定應用程式應該視為公用用戶端:

  1. 在左側功能表中,於 [管理]下,選取 [驗證]
  2. 在 [ 進階設定] 底下的 [ 允許公用用戶端流程 ] 區段中,將 [ 啟用下列行動和桌面流程 ] 設定為 [是]。
  3. 選取 [儲存]。
  4. 確定 “isFallbackPublicClient”:true 是在 Microsoft Graph 應用程式指令清單中設定的(新增):
    1. 在左側功能表中的 [ 管理] 底下,選取 [ 指令清單 ] 以開啟 Microsoft Graph 應用程式指令清單(新增)
    2. Microsoft Graph 應用程式指令清單 (新增) 索引標籤切換至 AAD Graph 應用程式指令清單 (即將淘汰) 索引標籤。
    3. 尋找 isFallbackPublicClient 索引鍵,並確定其值設定為 true

現在,為您先前在IdentityExperienceFramework註冊中公開的API範圍授予許可權:

  1. 在左側功能表中的 [ 管理] 底下,選取 [API 許可權]。
  2. 在 [已設定的權限] 底下,選取 [新增權限]
  3. 選取 [我的組織使用的 API] 索引標籤,然後選取 [IdentityExperienceFramework ] 應用程式。
  4. [許可權] 下,選取您稍早定義的 [user_impersonation] 範圍。
  5. 選取新增權限。 依照指示,稍等幾分鐘,然後再繼續進行下一個步驟。
  6. 選取 [授與管理員同意] 以取得 <租用戶名稱>
  7. 選擇
  8. 選取重新整理,然後確認是否"已為..."會出現在範圍的狀態下方。

自定義原則入門套件

自定義原則是一組 XML 檔案,您上傳至 Azure AD B2C 租戶以定義技術設定檔和使用者流程。 我們提供數個預先建置原則的入門套件,讓您快速上手。 每個入門套件都包含達到所述的案例所需的最少技術配置檔和使用者旅程圖。 如需 Azure AD B2C 自定義原則的更深入指南,請遵循我們的 自定義原則作指南系列

  • LocalAccounts - 僅啟用本機帳戶。
  • SocialAccounts - 只允許使用社交(或同盟)帳戶。
  • SocialAndLocalAccounts - 啟用同時使用本機與社交帳戶功能。
  • SocialAndLocalAccountsWithMFA - 啟用社交、本機和多重驗證選項。

每個入門套件都包含:

  • 基底檔案 - 需要對基底檔案進行一些修改。 範例: TrustFrameworkBase.xml
  • 當地語系化檔案 - 此檔案是進行當地語系化變更的位置。 範例: TrustFrameworkLocalization.xml
  • 延伸模組檔案 - 此檔案是進行大部分組態變更的位置。 範例: TrustFrameworkExtensions.xml
  • 依賴方檔案 - 由應用程式呼叫的工作特定文件。 範例: SignUpOrSignin.xmlProfileEdit.xmlPasswordReset.xml

在本文中,您會編輯 SocialAndLocalAccounts 入門套件中的 XML 自定義原則檔案。 如果您需要 XML 編輯器,請嘗試使用輕量型跨平台編輯器 Visual Studio Code

取得入門套件

從 GitHub 取得自定義原則入門套件,然後使用您的 Azure AD B2C 租使用者名稱更新 SocialAndLocalAccounts 入門套件中的 XML 檔案。

  1. 下載 .zip 檔案 或複製存放庫:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. SocialAndLocalAccounts 目錄中的所有檔案中,將字串 yourtenant 取代為您的 Azure AD B2C 租用戶名稱。

    例如,如果您的 B2C 租使用者名稱是 contosotenant,那麼所有 yourtenant.onmicrosoft.com 的實例都會變成 contosotenant.onmicrosoft.com

將應用程式 ID 新增至自定義原則

將應用程式識別元新增至 延伸名檔案TrustFrameworkExtensions.xml

  1. 開啟 SocialAndLocalAccounts/TrustFrameworkExtensions.xml 並尋找項目 <TechnicalProfile Id="login-NonInteractive">
  2. 將兩個實例 IdentityExperienceFrameworkAppId 取代為您稍早建立的 IdentityExperienceFramework 應用程式的應用程式識別碼。
  3. 將兩個實例 ProxyIdentityExperienceFrameworkAppId 取代為您稍早建立的 ProxyIdentityExperienceFramework 應用程式識別碼。
  4. 儲存檔案。

將 Facebook 新增為識別提供者

SocialAndLocalAccounts 入門套件包含 Facebook 社交登入。 Facebook 不需要使用自定義原則,但我們會在這裡使用它來示範如何在自定義原則中啟用同盟社交登入。 如果您不需要啟用同盟社交登入,請改用 LocalAccounts 入門套件,然後跳至 [上傳原則 ] 區段。

建立Facebook應用程式

使用 建立 Facebook 應用程式 中所述的步驟來取得 Facebook 應用程式識別碼應用程式秘密。 略過在 使用 Facebook 帳戶設定註冊和登入 一文中的必要條件及其餘步驟。

建立Facebook金鑰

將 Facebook 應用程式 的應用程式秘密 新增為原則金鑰。 您可以使用您建立的應用程式秘密,作為本文必要條件的一部分。

  1. 登入 Azure 入口網站
  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
  3. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  4. 在概觀頁面上,在 [原則] 底下,選取 [身分識別體驗架構]
  5. 選取 [原則密鑰 ],然後選取 [ 新增]。
  6. 針對 [選項],選擇 Manual
  7. 對於名稱,輸入 FacebookSecret。 可能會自動新增前置詞 B2C_1A_
  8. 在 [ 秘密] 中,輸入來自 developers.facebook.com 的 Facebook 應用程式 應用程式秘密 。 此值是秘密,而不是應用程式識別碼。
  9. 針對 [ 金鑰使用方式],選取 [ 簽章]。
  10. 選取 ,創建

更新自定義原則入門套件中的 TrustFrameworkExtensions.xml

SocialAndLocalAccounts/TrustFrameworkExtensions.xml 檔案中,將 client_id 的值替換為 Facebook 應用程式識別碼,然後儲存變更。

<TechnicalProfile Id="Facebook-OAUTH">
  <Metadata>
  <!--Replace the value of client_id in this technical profile with the Facebook app ID"-->
    <Item Key="client_id">00000000000000</Item>

上傳政策

  1. 在 Azure 入口網站中,選取 B2C 租戶的 身分識別體驗架構 功能表項。
  2. 選取 上傳自定義政策
  3. 依此順序,上傳原則檔案:
    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml

當您上傳檔案時,Azure 會將前置詞 B2C_1A_ 新增至每個檔案。

小提示

如果您的 XML 編輯器支援驗證,請針對 TrustFrameworkPolicy_0.3.0.0.xsd 位於入門套件根目錄中的 XML 架構驗證檔案。 XML 架構驗證會在上傳之前識別錯誤。

測試自定義原則

  1. [自定義原則] 底下,選取 B2C_1A_signup_signin
  2. 針對自定義原則概觀頁面上的 [ 選取應用程式 ],選取您想要測試的 Web 應用程式,例如名為 webapp1 的 Web 應用程式。
  3. 請確定 回覆 URLhttps://jwt.ms
  4. 選取 [立即執行]
  5. 使用電子郵件地址註冊。
  6. 再次選取 [ 執行 ]。
  7. 使用相同的帳戶登入,以確認您有正確的設定。
  8. 再次選取 [ 執行] ,然後選取 [Facebook] 以使用Facebook登入並測試自定義原則。

後續步驟

在本文中,您已了解如何:

  • 建立註冊並登入使用者流程
  • 建立編輯個人資料的使用者流程
  • 建立密碼重設使用者流程

接下來,瞭解如何使用 Azure AD B2C 在應用程式中登入和註冊使用者。 請遵循下列連結的範例應用程式:

您也可以在 Azure AD B2C 架構深入探討系列中深入瞭解。