共用方式為


使用您自己的商業邏輯擴充驗證流程

適用於具有灰色 X 符號的白色圓圈。員工租用戶具有白色核取記號的綠色圓圈。外部租用戶 (深入瞭解)

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 External 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 ID 向您的應用程式進行驗證時,安全性權杖會傳回您的應用程式。 安全性權杖包含有關使用者的宣告,例如名稱、唯一識別碼或應用程式角色。 除了安全性權杖中包含的預設宣告集合之外,您還可以使用您開發的 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 ID。 這些屬性不會自動新增至權杖。 相反地,必須針對要包含在權杖中的任何屬性設定應用程式的宣告對應原則。

如需詳細資料,請參閱:

另請參閱