共用方式為


在 Azure AD B2C 自定義原則中定義 Microsoft Entra ID 多重要素驗證技術配置檔

Azure Active Directory B2C (Azure AD B2C) 支援使用驗證碼來驗證電話號碼,或驗證以時間為基礎的單次密碼 (TOTP) 代碼。

通訊協定

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

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

下列範例顯示 Microsoft Entra ID 多重要素驗證技術設定檔:

<TechnicalProfile Id="AzureMfa-SendSms">
    <DisplayName>Send Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

確認手機模式

在驗證電話模式中,技術配置檔會產生並傳送代碼至電話號碼,然後驗證程序代碼。 Microsoft Entra ID 多重要素驗證技術配置檔也可能傳回錯誤訊息。 驗證技術配置檔會在使用者旅程繼續之前驗證使用者提供的數據。 使用驗證技術配置檔時,錯誤訊息會顯示在自我判斷提示頁面上。 技術設定檔:

  • 不提供與用戶互動的介面。 相反地,使用者介面會從自我判斷技術配置檔呼叫,或顯示控件做為驗證技術配置檔
  • 使用 Microsoft Entra 多重要素驗證服務來產生程式代碼並將其傳送至電話號碼,然後驗證程序代碼。
  • 透過簡訊驗證電話號碼。

技術配置檔提供方法,以 透過SMS簡訊傳送驗證碼 ,並 驗證代碼。 下列螢幕快照顯示電話驗證程式流程。

Screenshot showing TOTP flow

傳送 SMS

若要驗證電話,第一個步驟會產生代碼,並將其傳送至電話號碼。 您可以針對此步驟設定下列選項。

輸入宣告

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

ClaimReferenceId 必要 描述:
userPrincipalName Yes 擁有電話號碼之使用者的標識碼。
phoneNumber Yes 要傳送簡訊碼的電話號碼。
companyName No SMS 中的公司名稱。 如果未提供,則會使用應用程式的名稱。
locale No SMS 的地區設定。 如果未提供,則會使用使用者的瀏覽器地區設定。

輸出宣告

Microsoft Entra 多重要素驗證通訊協定提供者不會傳回任何輸出宣告,因此不需要指定輸出宣告。

中繼資料

Metadata 元素包含下列屬性。

屬性 必要 描述:
Operation Yes 必須是 OneWaySMS
UI 元素

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

屬性 必要 描述
UserMessageIfCouldntSendSms No 如果提供的電話號碼不接受SMS,則使用者錯誤訊息。
UserMessageIfInvalidFormat No 如果提供的電話號碼不是有效的電話號碼,則使用者錯誤訊息。
UserMessageIfServerError No 如果伺服器發生內部錯誤,則使用者錯誤訊息。
UserMessageIfThrottled No 如果要求已節流,使用者錯誤訊息。

範例:傳送簡訊

下列範例顯示 Microsoft Entra ID 多重要素驗證技術配置檔,用來透過 SMS 傳送程式代碼。

<TechnicalProfile Id="AzureMfa-SendSms">
  <DisplayName>Send Sms</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">OneWaySMS</Item>
  </Metadata>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
    <InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    <InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
  </InputClaims>
</TechnicalProfile>

檢查驗證碼

驗證碼步驟會驗證傳送給用戶的程序代碼。 您可以針對此步驟設定下列選項。

輸入宣告

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

ClaimReferenceId 必要 描述:
phoneNumber Yes 與先前用來傳送代碼的電話號碼相同。 它也可用來尋找電話驗證會話。
verificationCode Yes 要驗證之使用者提供的驗證碼

輸出宣告

Microsoft Entra 多重要素驗證通訊協定提供者不會傳回任何輸出宣告,因此不需要指定輸出宣告。

中繼資料

Metadata 元素包含下列屬性。

屬性 必要 描述:
Operation Yes 必須是 Verify
UI 元素

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

屬性 必要 描述
UserMessageIfMaxAllowedCodeRetryReached No 如果使用者嘗試驗證碼太多次,則使用者錯誤訊息。
UserMessageIfServerError No 如果伺服器發生內部錯誤,則使用者錯誤訊息。
UserMessageIfThrottled No 如果要求已節流,則使用者錯誤訊息。
UserMessageIfWrongCodeEntered No 輸入驗證的程式代碼錯誤時,使用者錯誤訊息。

範例:驗證程序代碼

下列範例顯示用來驗證程序代碼的 Microsoft Entra ID 多重要素驗證技術配置檔。

<TechnicalProfile Id="AzureMfa-VerifySms">
    <DisplayName>Verify Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
        <Item Key="Operation">Verify</Item>
    </Metadata>
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
        <InputClaim ClaimTypeReferenceId="verificationCode" />
    </InputClaims>
</TechnicalProfile>

TOTP 模式

在此模式中,用戶必須在擁有的裝置上安裝任何支援以時間為基礎的一次性密碼 (TOTP) 驗證的驗證器應用程式,例如 Microsoft Authenticator 應用程式

在第一次註冊或登入期間,用戶會掃描 QR 代碼、開啟深層連結,或使用驗證器應用程式手動輸入代碼。 若要驗證 TOTP 程式代碼,請使用 Begin verify OTP ,後面接著 驗證 TOTP 驗證技術配置檔。

如需後續登入,請使用 取得可用的裝置 方法來檢查使用者是否已註冊其裝置。 如果可用的裝置數目大於零,這表示使用者先前已註冊。 在此情況下,用戶必須輸入出現在驗證器應用程式中的 TOTP 程式代碼。

技術設定檔:

  • 不提供與用戶互動的介面。 相反地,使用 TOTP 顯示控件,從自我判斷技術配置檔呼叫使用者介面。
  • 使用 Microsoft Entra 多重要素驗證服務來驗證 TOTP 程式代碼。
  • 檢查使用者是否已註冊其裝置。

下列螢幕快照顯示TOTP 註冊和驗證流程。 一開始會檢查可用的裝置數目。 如果可用的裝置數目為零,則用戶會經歷註冊協調流程步驟。 否則,用戶會經歷驗證協調流程步驟。

Screenshot showing TOTP flow.

取得可用的裝置

取得可用的裝置模式會檢查使用者可用的裝置數目。 如果可用的裝置數目為零,這表示使用者尚未註冊。

輸入宣告

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

ClaimReferenceId 必要 描述:
userPrincipalName Yes 用戶主體名稱。

輸出宣告

輸出宣告專案包含要從 Microsoft Entra 多重要素驗證傳回的宣告清單。 您也可以將宣告的名稱對應至 MFA 技術設定檔中定義的名稱。

ClaimReferenceId 必要 描述:
numberOfAvailableDevices Yes 使用者可用的裝置數目。

中繼資料

Metadata 元素包含下列屬性。

屬性 必要 描述:
Operation Yes 必須是 GetAvailableDevices

範例:取得可用的裝置

下列範例顯示用來取得可用裝置數目的 Microsoft Entra ID 多重要素驗證技術配置檔。

<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
  <DisplayName>Get Available Devices</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">GetAvailableDevices</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
  </OutputClaims>
</TechnicalProfile>

開始驗證 TOTP

開始驗證 TOTP 會啟動驗證程式。 這個驗證技術配置檔是從呈現及驗證 TOTP 代碼的自我判斷技術配置檔呼叫。 此驗證技術配置檔後面必須接著驗證 TOTP 驗證技術配置檔的呼叫

輸入宣告

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

ClaimReferenceId 必要 描述:
userPrincipalName Yes 使用者主體名稱。
objectId Yes 使用者物件識別碼。
secretKey Yes 使用者的秘密金鑰。 此金鑰會儲存在 Azure AD B2C 目錄中的使用者設定檔中,並與驗證器應用程式共用。 驗證器應用程式會使用秘密來產生 TOTP 程式碼。 此技術設定檔會使用秘密來驗證 TOTP 程式碼。

輸出宣告

Microsoft Entra 多重要素驗證通訊協定提供者不會傳回任何輸出宣告,因此不需要指定輸出宣告。

中繼資料

Metadata 元素包含下列屬性。

屬性 必要 描述:
Operation Yes 必須是 BeginVerifyOTP

範例:開始驗證 TOTP

下列範例顯示用來開始 TOTP 驗證程式的 Microsoft Entra ID 多重要素驗證技術設定檔。

<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
  <DisplayName>Begin verify TOTP"</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">BeginVerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="secretKey" />
    <InputClaim ClaimTypeReferenceId="objectId" />
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
  </InputClaims>
</TechnicalProfile>

確認 TOTP

驗證 TOTP 方法會驗證 TOTP 程式碼。 這個驗證技術設定檔是從呈現及驗證 TOTP 代碼的自我判斷技術設定檔呼叫。 此驗證技術設定檔之前,必須先呼叫 Begin 驗證 TOTP 驗證技術設定檔。

輸入宣告

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

ClaimReferenceId 必要 描述:
otpCode Yes 使用者提供的 TOTP 程式碼。

輸出宣告

Microsoft Entra 多重要素驗證通訊協定提供者不會傳回任何輸出宣告,因此不需要指定輸出宣告。

中繼資料

Metadata 元素包含下列屬性。

屬性 必要 描述:
Operation Yes 必須是 VerifyOTP

範例:驗證 TOTP

下列範例顯示用來驗證 TOTP 程式碼的 Microsoft Entra ID 多重要素驗證技術設定檔。

<TechnicalProfile Id="AzureMfa-VerifyOTP">
  <DisplayName>Verify OTP</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyOTP</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="otpCode" />
  </InputClaims>
</TechnicalProfile>

下一步