Azure AD B2C 自定義原則概觀

自訂原則是定義 Azure Active Directory B2C (Azure AD B2C) 租用戶行為的設定檔。 雖然 使用者流程 在 Azure AD B2C 入口網站中預先定義最常見的身分識別工作,但身分識別開發人員可以編輯自定義原則以完成許多不同的工作。

自定義原則是完全可設定和原則驅動的。 自定義原則會協調標準通訊協定中實體之間的信任。 例如,OpenID 連線、OAuth、SAML 和一些非標準實例,例如 REST API 型系統對系統宣告交換。 架構會建立使用者易記且加上白卷標的體驗。

自定義原則會以一或多個 XML 格式的檔案表示,這些檔案會參考階層式鏈結中的彼此。 XML 元素會定義建置組塊、與使用者和其他合作對象的互動,以及商業規則。

自定義原則入門套件

Azure AD B2C 自定義原則 入門套件 隨附數個預先建置的原則,可讓您快速開始使用。 這些入門套件都包含達到所述的案例所需的最少技術配置檔和使用者旅程圖:

  • LocalAccounts - 僅啟用本機帳戶的使用。
  • SocialAccounts - 只允許使用社交(或同盟)帳戶。
  • SocialAndLocalAccounts - 啟用本機和社交帳戶的使用。 我們大部分的範例都參考此原則。
  • SocialAndLocalAccountsWithMFA - 啟用社交、本機和多重要素驗證選項。

Azure AD B2C 範例 GitHub 存放庫中,您會找到數個增強型 Azure AD B2C 自定義 CIAM 使用者旅程圖和案例的範例。 例如,本機帳戶原則增強功能、社交帳戶原則增強功能、MFA 增強功能、使用者介面增強功能、一般增強功能、應用程式移轉、使用者移轉、條件式存取、Web 測試和 CI/CD。

瞭解基本概念

宣告

宣告會在 Azure AD B2C 原則執行期間提供數據的暫存記憶體。 宣告更像是程式設計語言中的變數。 它可以儲存使用者的相關信息,例如名字、姓氏或任何其他從使用者或其他系統取得的宣告(宣告交換)。 宣告架構是您宣告宣告的位置。

當原則執行時,Azure AD B2C 會傳送和接收內部和外部合作物件的宣告,然後將這些宣告的子集傳送至信賴憑證者應用程式做為令牌的一部分。 宣告會以下列方式使用:

  • 針對目錄用戶物件儲存、讀取或更新宣告。
  • 從外部識別提供者接收宣告。
  • 宣告會使用自定義 REST API 服務來傳送或接收。
  • 註冊或編輯配置檔流程期間,會以使用者的宣告的形式收集數據。

操作您的宣告

宣告 轉換 是預先定義的函式,可用來將指定的宣告轉換成另一個宣告、評估宣告或設定宣告值。 例如,將專案新增至字串集合、變更字串大小寫,或評估日期和時間宣告。 宣告轉換會指定轉換方法,這個方法也會預先定義。

自定義和當地語系化 UI

若要透過在網頁瀏覽器中呈現頁面來收集使用者的資訊,請使用 自我判斷技術配置檔。 您可以編輯自我判斷技術配置檔,以 新增宣告並自定義用戶輸入

若要自定義自我判斷技術配置檔的使用者介面,您可以在內容定義元素中指定具有自定義 HTML 內容的 URL。 在自我判斷技術配置檔中,您會指向此內容定義標識符。

若要自定義語言特定的字串,請使用 本地化 專案。 內容定義可能包含 本地化 參考,指定要載入的當地語系化資源清單。 Azure AD B2C 會將使用者介面元素與從 URL 載入的 HTML 內容合併,然後向使用者顯示頁面。

信賴憑證者原則概觀

SAML 通訊協定中稱為服務提供者的信賴憑證者應用程式,會呼叫 信賴憑證者原則 來執行特定的使用者旅程圖。 信賴憑證者原則會指定要執行的使用者旅程圖,以及令牌包含的宣告清單。

Diagram showing the policy execution flow

所有使用相同原則的信賴憑證者應用程式都會接收相同的令牌宣告,而用戶會經歷相同的使用者旅程圖。

使用者旅程圖

使用者旅程 圖可讓您使用使用者遵循的路徑來定義商業規則,以取得應用程式的存取權。 用戶會透過使用者旅程圖來擷取要呈現給應用程式的宣告。 使用者旅程圖是從一連串的 協調流程步驟所建置。 用戶必須到達最後一個步驟,才能取得令牌。

下列指示說明如何將協調流程步驟新增至 社交和本機帳戶入門套件 原則。 以下是已新增的 REST API 呼叫範例。

customized user journey

協調流程步驟

協調流程步驟會參考實作其預定用途或功能的方法。 這個方法稱為 技術配置檔。 當您的使用者旅程圖需要分支以更妥善地代表商業規則時,協調流程步驟會參考 子旅程圖。 子旅程包含自己的協調流程步驟集。

用戶必須到達使用者旅程圖中的最後一個協調流程步驟,才能取得令牌。 但使用者可能不需要經過所有協調流程步驟。 協調流程步驟可以根據協調流程步驟中定義的前置條件,有條件地執行

協調流程步驟完成之後,Azure AD B2C 會將輸出的宣告儲存在宣告包。 宣告包中的宣告可由使用者旅程圖中的任何進一步協調流程步驟使用。

下圖顯示使用者旅程圖的協調流程步驟如何存取宣告包。

Azure AD B2C user journey

技術配置檔

技術配置檔提供與不同類型的合作對象通訊的介面。 使用者旅程圖會透過協調流程步驟結合呼叫技術配置檔,以定義商業規則。

所有類型的技術配置檔都會共用相同的概念。 您可以傳送輸入宣告、執行宣告轉換,並與設定的合作對象通訊。 程式完成之後,技術配置檔會將輸出宣告傳回至宣告包。 如需詳細資訊,請參閱 技術配置檔概觀

驗證技術配置檔

當使用者與使用者介面互動時,您可能會想要驗證收集的數據。 若要與使用者互動, 必須使用自我判斷技術配置檔

若要驗證使用者輸入, 會從自我判斷技術配置檔呼叫驗證技術配置檔 。 驗證技術配置檔是呼叫任何非互動式技術配置檔的方法。 在此情況下,技術配置檔可以傳回輸出宣告或錯誤訊息。 錯誤訊息會在畫面上轉譯給使用者,讓使用者重試。

下圖說明 Azure AD B2C 如何使用驗證技術配置檔來驗證用戶認證。

Validation technical profile diagram

繼承模型

每個 入門套件 都包含下列檔案:

  • 包含大部分定義的基底檔案。 若要協助針對原則進行疑難解答和長期維護,請嘗試將您對此檔案所做的變更數目降到最低。
  • 保留本地化字串的當地語系化檔案。 此原則檔案衍生自基底檔案。 使用此檔案來容納不同的語言,以符合客戶需求。
  • 保留 租使用者唯一組態變更的延伸模組 檔案。 此原則檔案衍生自當地語系化檔案。 使用此檔案新增功能或覆寫現有的功能。 例如,使用此檔案來與新的識別提供者同盟。
  • 信賴憑證者 (RP) 檔案,這是信賴憑證者應用程式直接叫用的單一工作焦點檔案,例如您的 Web、行動或桌面應用程式。 每個唯一的工作,例如註冊、登入或配置檔編輯,都需要自己的信賴憑證者原則檔案。 此原則檔案衍生自延伸模組檔案。

繼承模型如下所示:

  • 任何層級的子原則都可以繼承自父原則,並藉由新增元素加以擴充。
  • 針對更複雜的案例,您可以新增更多繼承層級(總計最多10個)。
  • 您可以新增更多信賴憑證者原則。 例如,刪除我的帳戶、變更電話號碼、SAML 信賴憑證者原則等等。

下圖顯示原則檔案與信賴憑證者應用程式之間的關聯性。

Diagram showing the trust framework policy inheritance model

指導方針和最佳做法

最佳作法

在 Azure AD B2C 自定義原則內,您可以整合自己的商業規則,以建置您需要的用戶體驗,並擴充服務的功能。 我們有一組要開始使用的最佳做法和建議。

  • 擴充原則信賴憑證者原則內建立邏輯。 您可以新增元素,以參考相同的標識碼來覆寫基底原則。 此方法可讓您相應放大項目,同時讓 Microsoft 在稍後發行新的入門套件時更輕鬆地升級基底原則。
  • 在基底原則,強烈建議您避免進行任何變更。 必要時,請對變更進行批注。
  • 當您覆寫專案,例如技術配置檔元數據時,請避免從基底原則複製整個技術配置檔。 請改為只複製元素的必要區段。 如需如何進行變更的範例,請參閱 停用電子郵件驗證
  • 若要減少共用核心功能的技術配置檔重複,請使用 技術配置檔包含
  • 避免在登入期間寫入 Microsoft Entra 目錄,這可能會導致節流問題。
  • 如果您的原則具有外部相依性,例如 REST API,請確定它們具有高可用性。
  • 若要獲得更好的用戶體驗,請確定您的自定義 HTML 範本會使用 線上內容傳遞全域部署。 Azure 內容傳遞網路 (CDN) 可讓您減少負載時間、節省頻寬並改善回應速度。
  • 如果您想要變更使用者旅程圖,請將整個使用者旅程圖從基底原則複製到擴充原則。 提供您複製之使用者旅程圖的唯一使用者旅程圖標識碼。 然後在信賴憑證者原則,將默認使用者旅程圖元素變更為指向新的使用者旅程圖。

疑難排解

使用 Azure AD B2C 原則進行開發時,您可以在執行使用者旅程圖時遇到錯誤或例外狀況。 可以使用 Application Insights 調查 。

持續整合

藉由使用您在 Azure Pipelines 中設定的持續整合和傳遞 (CI/CD) 管線,您可以在 軟體傳遞 和程式碼控制自動化中包含 Azure AD B2C 自定義原則。 當您部署到不同的 Azure AD B2C 環境時,例如開發、測試和生產環境,建議您移除手動程式,並使用 Azure Pipelines 執行自動化測試。

準備您的環境

您開始使用 Azure AD B2C 自訂原則:

  1. 建立 Azure AD B2C 租使用者
  2. 使用 Azure 入口網站 註冊 Web 應用程式,以便測試您的原則。
  3. 新增必要的原則金鑰,並註冊身分識別體驗架構應用程式
  4. 取得 Azure AD B2C 原則入門套件 ,並上傳至您的租使用者。
  5. 上傳入門套件之後, 請測試註冊或登入原則
  6. 建議您下載並安裝 Visual Studio Code (VS Code)。 Visual Studio Code 是輕量型但功能強大的原始程式碼編輯器,可在桌面上執行,並適用於 Windows、macOS 和 Linux。 透過 VS Code,您可以藉由安裝適用於 VS Code 的 Azure AD B2C 擴充功能,快速瀏覽和編輯 Azure AD B2C 自定義原則 XML 檔案

下一步

設定及測試 Azure AD B2C 原則之後,您可以開始自定義原則。 請瀏覽下列文章,以瞭解如何: