Share via


在 Azure AD B2C 自訂原則中定義 Microsoft Entra ID SSPR 技術設定檔

注意

在 Azure Active Directory B2C 中, 自訂原則 的設計主要是為了解決複雜的案例。 在大部分情況下,我們建議您使用內 建的使用者流程 。 如果您尚未這麼做,請瞭解開始使用 Active Directory B2C 中的 自訂原則入門套件。

Azure Active Directory B2C (Azure AD B2C) 支援驗證自助式密碼重設的電子郵件地址(SSPR)。 使用 Microsoft Entra ID SSPR 技術設定檔來產生程式碼,並將程式碼傳送至電子郵件地址,然後驗證程式代碼。 Microsoft Entra ID SSPR 技術設定檔也可能傳回錯誤訊息。 驗證技術設定檔會在使用者旅程繼續之前驗證使用者提供的資料。 使用驗證技術設定檔時,錯誤訊息會顯示在自我判斷提示頁面上。

此技術設定檔:

通訊協定

Protocol 元素的 Name 屬性必須設定為 Proprietary處理常式 屬性必須包含 Azure AD B2C 所使用的通訊協定處理常式元件完整名稱:

Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

下列範例顯示 Microsoft Entra ID SSPR 技術設定檔:

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

傳送電子郵件

此技術設定檔的第一個模式是產生程式碼並傳送。 您可以為此模式設定下列選項。

輸入宣告

InputClaims 元素包含要傳送至 Microsoft Entra SSPR 的宣告清單。 您也可以將宣告的名稱對應至 SSPR 技術設定檔中定義的名稱。

ClaimReferenceId 必要 描述
emailAddress Yes 擁有電子郵件地址之使用者的識別碼。 輸入 PartnerClaimType 宣告的 屬性必須設定為 emailAddress

InputClaimsTransformations 元素可能包含 InputClaimsTransformation 元素的 集合,這些元素可用來修改輸入宣告,或在傳送至 Microsoft Entra SSPR 服務之前產生新的宣告。

輸出宣告

Microsoft Entra SSPR 通訊協定提供者不會傳回任何 OutputClaims ,因此不需要指定輸出宣告。 不過,只要設定 屬性,您就可以包含 Microsoft Entra SSPR 通訊協定提供者未傳回的 DefaultValue 宣告。

OutputClaimsTransformations 元素可能包含 OutputClaimsTransformation 元素的 集合,這些元素可用來修改輸出宣告或產生新的宣告。

中繼資料

屬性 必要 描述
作業 Yes 必須是 SendCode

UI 元素

下列中繼資料可用來設定傳送 SMS 失敗時所顯示的錯誤訊息。 中繼資料應該在自我判斷 技術設定檔中 設定。 錯誤訊息可以 當地語系化

屬性 必要 描述
UserMessageIfInternalError No 如果伺服器發生內部錯誤,則使用者錯誤訊息。
UserMessageIfThrottled No 如果要求已節流,使用者錯誤訊息。

範例:傳送電子郵件

下列範例顯示 Microsoft Entra ID SSPR 技術設定檔,用來透過電子郵件傳送程式碼。

<TechnicalProfile Id="AadSspr-SendCode">
  <DisplayName>Send Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">SendCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>

檢查驗證碼

此技術設定檔的第二個模式是驗證程式代碼。 您可以為此模式設定下列選項。

輸入宣告

InputClaims 元素包含要傳送至 Microsoft Entra SSPR 的宣告清單。 您也可以將宣告的名稱對應至 SSPR 技術設定檔中定義的名稱。

ClaimReferenceId 必要 描述
emailAddress Yes 與先前用來傳送程式碼的電子郵件地址相同。 它也可用來尋找電子郵件驗證會話。 輸入 PartnerClaimType 宣告的 屬性必須設定為 emailAddress
verificationCode Yes 要驗證之使用者所提供的驗證碼。 輸入 PartnerClaimType 宣告的 屬性必須設定為 verificationCode

InputClaimsTransformations 元素可能包含 InputClaimsTransformation 元素的 集合,這些元素可用來修改輸入宣告,或在呼叫 Microsoft Entra SSPR 服務之前產生新的宣告。

輸出宣告

Microsoft Entra SSPR 通訊協定提供者不會傳回任何 OutputClaims ,因此不需要指定輸出宣告。 不過,只要設定 屬性,您就可以包含 Microsoft Entra SSPR 通訊協定提供者未傳回的 DefaultValue 宣告。

OutputClaimsTransformations 元素可能包含 OutputClaimsTransformation 元素的 集合,這些元素可用來修改輸出宣告或產生新的宣告。

中繼資料

屬性 必要 描述
作業 Yes 必須是 VerifyCode

UI 元素

下列中繼資料可用來設定程式碼驗證失敗時所顯示的錯誤訊息。 中繼資料應該在自我判斷 技術設定檔中 設定。 錯誤訊息可以 當地語系化

屬性 必要 描述
UserMessageIfChallengeExpired 如果代碼驗證會話已過期,則向使用者顯示的訊息。 程式碼已過期,或從未針對指定的識別碼產生程式碼。
UserMessageIfInternalError 如果伺服器發生內部錯誤,則使用者錯誤訊息。
UserMessageIfThrottled 如果要求已節流,使用者錯誤訊息。
UserMessageIfVerificationFailedNoRetry 如果使用者提供不正確程式碼,則向使用者顯示的訊息,且不允許使用者提供正確的程式碼。
UserMessageIfVerificationFailedRetryAllowed 如果使用者已提供不正確程式碼,則向使用者顯示的訊息,並允許使用者提供正確的程式碼。

範例:驗證程式代碼

下列範例顯示用來驗證程式代碼的 Microsoft Entra ID SSPR 技術設定檔。

<TechnicalProfile Id="AadSspr-VerifyCode">
  <DisplayName>Verify Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyCode</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
  </InputClaims>
</TechnicalProfile>