Share via


使用您自己的商業規則擴充驗證流程

Microsoft Entra 外部 ID 專為彈性而設計。 除了註冊和登入使用者流程內的內建驗證事件之外,您還可以在驗證流程內的特定點新增自定義驗證延伸模組。 自定義驗證延伸模組基本上是事件接聽程式,當啟動時,對您已定義工作流程動作的 REST API 端點進行 HTTP 呼叫。 例如,您可以新增 屬性集合 工作流程來驗證用戶在註冊期間輸入的屬性,或者您可以使用 自定義宣告提供者 ,在令牌發出之前,將外部用戶數據新增至令牌。

您需要設定兩個元件:自定義驗證延伸模組和 REST API。 自定義驗證延伸模組會指定 REST API 端點、應呼叫 REST API 的時機,以及呼叫 REST API 的認證。 您可以在驗證流程中的下列各點建立自訂驗證延伸模組:

  • 註冊期間,在屬性集合之前或之後:
    • OnAttributeCollectionStart 事件會在屬性集合步驟的開頭發生,然後屬性集合頁面才會呈現。
    • OnAttributeCollectionSubmit 事件會在使用者輸入並提交屬性之後發生。
  • 使用 OnTokenIssuanceStart 事件發行令牌時,它會在令牌發行至應用程式之前觸發。

顯示驗證流程中擴充點的圖表。

如果您在其中一個點設定自定義驗證擴充功能,Microsoft Entra ID 會呼叫您已定義的 REST API。 REST API 的要求包含事件、使用者配置檔、驗證要求數據和其他內容資訊的相關信息。 接著,REST API 會執行工作流程動作。

本文提供 Microsoft Entra 外部 ID 中的自定義驗證延伸模組概觀。

屬性集合開始並提交事件

您可以使用自訂驗證延伸模組,將工作流程新增至自助式註冊使用者流程中的屬性集合。 例如,您可以使用自定義值預先填入屬性欄位、驗證使用者的專案,以及修改屬性,以及顯示錯誤。 已啟用兩個事件:

  • OnAttributeCollectionStart - OnAttributeCollectionStart 事件會在屬性集合頁面轉譯之前於屬性集合程式的開頭發生。 此事件可用於防止用戶根據其網域註冊或新增要收集的屬性等案例。 OnAttributeCollectionStart 事件可設定下列案例:

    • continueWithDefaultBehavior - 如往常轉譯屬性集合頁面。
    • setPreFillValues - 註冊表單中的預先填入屬性。
    • showBlockPage - 顯示錯誤訊息,並封鎖用戶註冊。
  • OnAttributeCollectionSubmit - OnAttributeCollectionSubmit 事件會在使用者輸入並提交屬性之後發生。 此事件可用於驗證或修改使用者提供的資訊等案例。 例如,您可以驗證邀請碼或合作夥伴號碼、修改位址格式,或傳回錯誤。

    • continueWithDefaultBehavior - 繼續註冊流程。
    • modifyAttributeValues - 覆寫註冊窗體中提交使用者的值。
    • showValidationError - 根據送出的值傳回錯誤。
    • showBlockPage - 顯示錯誤訊息,並封鎖用戶註冊。

若要設定屬性集合開始並提交事件,您可以建立自定義驗證延伸模組 REST API。 當事件引發時,Microsoft Entra ID 會將 HTTP 要求傳送至 REST API 端點。 REST API 可以是 Azure 函式、Azure 邏輯應用程式或其他公開可用的 API 端點。 REST API 端點負責定義要採取的工作流程動作。

如需詳細資訊,請參閱 將屬性集合自定義延伸模組新增至您的使用者流程

令牌發行開始事件

一旦使用者完成所有驗證挑戰,且即將發行安全性令牌,就會觸發令牌發行啟動事件。

當使用者使用 Microsoft Entra 識別碼向您的應用程式進行驗證時,會將安全性令牌傳回至您的應用程式。 安全性令牌包含有關使用者的宣告,例如名稱、唯一標識碼或應用程式角色。 除了安全性令牌中包含的預設宣告集合之外,您還可以使用您開發的 REST API,從外部系統定義自己的自定義宣告。

在某些情況下,金鑰數據可能會儲存在 Microsoft Entra 外部的系統,例如次要電子郵件、計費層或敏感性資訊。 外部系統中的資訊不一定可以儲存在 Microsoft Entra 目錄中。 在這些案例中,您可以使用自定義驗證延伸模組和自定義宣告提供者,將此外部數據新增至傳回至應用程式的令牌。

令牌發行事件延伸模組包含下列元件:

  • 自訂宣告提供者。 自定義宣告提供者是一種自定義驗證延伸模組,可從外部系統擷取數據。 自訂宣告提供者指定要新增至傳回應用程式之安全性令牌的屬性。 多個宣告提供者可以共用相同的自定義延伸模組,因此可以將一組不同的屬性新增至每個應用程式的安全性令牌。

  • REST API 端點。 當事件引發時,Microsoft Entra ID 會將 HTTP 要求傳送至 REST API 端點。 REST API 可以是 Azure 函式、Azure 邏輯應用程式或其他公開可用的 API 端點。 REST API 端點負責與下游資料庫、現有 API、LDAP 目錄或任何其他存放區互動,其中包含您想要新增至令牌組態的屬性。

    REST API 會傳回 HTTP 回應或動作,回到包含屬性的 Microsoft Entra 識別碼。 REST API 傳回的屬性不會自動新增至令牌。 相反地,必須將應用程式的宣告對應原則設定為要包含在令牌中的任何屬性。

如需詳細資料,請參閱:

另請參閱