共用方式為


使用 Azure Active Directory B2C 設定傳輸安全性以進行傳遞密鑰驗證

這很重要

自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解

在本教學課程中,瞭解如何整合 Azure Active Directory B2C (Azure AD B2C) 驗證與 Transmit Security 的托管密鑰驗證解決方案。 傳輸安全性使用強式快速身分識別在線 (FIDO2) 生物特徵辨識驗證進行可靠的全通道驗證。 此解決方案可確保跨裝置和通道的客戶順暢登入體驗,同時減少詐騙、網路釣魚和認證重複使用。

案例描述

下列架構圖表說明實作:

傳輸和 Azure AD B2C 架構的示意圖。

  1. 用戶開啟 Azure AD B2C 登入頁面,然後登入或註冊。
  2. Azure AD B2C 會透過 OpenID Connect (OIDC)將使用者重新導向至 Transmit Security。
  3. 傳輸安全性會使用無應用程式 FIDO2 生物特徵辨識來驗證使用者,例如指紋。
  4. 分散式驗證回應已返回至 Transmit Security。
  5. OIDC 回應會傳遞至 Azure AD B2C。
  6. 根據驗證結果,使用者會被授與或拒絕應用程式存取權。

先決條件

若要開始使用,您需要:

步驟 1:建立傳輸應用程式

登入 傳輸管理入口網站建立應用程式

  1. [應用程式] 中,選取 [新增應用程式]。

  2. 使用下列屬性設定應用程式:

    房產 說明
    應用程式名稱 應用程式名稱
    用戶端名稱 用戶端名稱
    重新導向URI https://<your-B2C-tenant>.b2clogin.com/<your-B2C-tenant>.onmicrosoft.com/oauth2/authresp 其中 <your-B2C-tenant> 是您的 Azure AD B2C 租使用者網域(或 <your-B2C-tenant>.b2clogin.com 是您自定義網域)
  3. 選取 ,然後新增

  4. 註冊時,會出現 用戶端標識碼客戶端密碼 。 記錄稍後要使用的值。

步驟 2:設定登入體驗

傳輸管理入口網站設定使用者驗證體驗:

  1. 選取 [驗證],然後選取 [ 體驗管理]。

  2. 從下拉功能表中,選取您的應用程式。

  3. 使用下列屬性設定您的應用程式:

    房產 說明
    用戶標識碼 選取 電子郵件
    主要驗證方法 選取 [通行金鑰]
    次要驗證方法 僅啟用 WebAuthn QR電子郵件 OTP
    選取用戶資訊 刪除所有預設欄位
  4. 選取 [儲存]。

步驟 3:將 Transmit 新增為身份驗證提供者

若要讓使用者使用傳輸安全性登入,請將傳輸安全性設定為新的識別提供者。 在 Azure AD B2C 中,請遵循下列步驟:

  1. 至少以 B2C IEF 原則管理員身分登入 Azure 入口網站

  2. 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。

  3. 入口網站設定 |[目錄 + 訂用帳戶 ] 頁面的 [ 目錄名稱] 清單中,尋找 Azure AD B2C 目錄,然後選取 [ 切換]。

  4. [Azure 服務] 底下,選取 [Azure AD B2C ] (或選取 [更多服務 ],並使用 [ 所有服務 ] 搜尋方塊來搜尋 Azure AD B2C)。

  5. 選取 [識別提供者],然後選取 [新增 OpenID Connect 提供者]。

  6. 設定提供者,如下所示:

    房產 說明
    名稱 名稱,例如 Transmit Security
    元數據 URL https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration
    用戶端識別碼 傳輸所提供的用戶端識別碼
    客戶端密碼 Transmit 所提供的用戶端密碼
    範圍 openid email
    回應類型 程式碼
    回應模式 form_post
    顯示名稱 email
    電子郵件 email
  7. 選取 [儲存]。

步驟 4:建立使用者流程

此時,Transmit Security 身分識別提供者已設定完成,但尚未在任何登入頁面上啟用。 若要將 Transmit Security 識別提供者新增至使用者流程:

  1. 在您的 Azure AD B2C 租戶中,於 [原則] 底下,選取 [使用者流程]
  2. 選取 新使用者流程
  3. 選取 [註冊並登入 使用者流程類型],然後選取 [ 建立]。
  4. 輸入使用者流程的名稱,例如 signupsignin
  5. 在 [識別提供者] 下方:
    • 對於 [本機帳戶],選取 [無]
    • 針對 自定義識別提供者,選取傳輸安全性提供者。
  6. 選取 [建立] 以新增使用者流程。

步驟 5:測試使用者流程

  1. 在 Azure AD B2C 租用戶中,選取 [使用者流程]
  2. 選取已建立的使用者流程,例如 B2C_1_signupsignin
  3. 選取 [執行使用者流程]
    • 針對 [應用程式],選取已註冊的 Web 應用程式。
    • 針對 [回復 URL],選取 https://jwt.ms
  4. 選取 [執行使用者流程]
  5. 瀏覽器被重新導向至 Transmit 的登入頁面。
  6. 完成登入流程:輸入您的帳戶電子郵件並使用生物特徵辨識進行驗證(例如指紋)。
  7. 瀏覽器會使用 Azure AD B2C 令牌重新導向至 https://jwt.ms

步驟 3:建立原則密鑰

您必須將先前記錄的 Transmit 應用程式的用戶端密碼,儲存在 Azure AD B2C 租用戶中。

  1. 登入 Azure 入口網站

  2. 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。

  3. 入口網站設定 |[目錄 + 訂用帳戶 ] 頁面的 [ 目錄名稱] 清單中,尋找 Azure AD B2C 目錄,然後選取 [ 切換]。

  4. 在 [概觀] 頁面的 [ 原則] 底下,選取 [ 身分識別體驗架構]。

  5. 選取 [原則金鑰],然後選取 [新增]

  6. 設定原則金鑰,如下所示:

    房產 說明
    選項 手動
    名稱 原則密鑰名稱,例如 TransmitClientSecret
    祕密 Transmit 所提供的用戶端密碼
    金鑰使用方式 簽章
  7. 選取 [建立] 以新增原則密鑰。

步驟 4:將 Transmit 新增為識別提供者

若要啟用使用 Transmit Security 登入,請將 Transmit Security 定義為 Azure AD B2C 透過端點進行通訊的宣告提供者。 端點提供由 Azure AD B2C 所使用的宣告,確認使用者已使用裝置上的數位身分識別進行驗證。

您可以將 Transmit Security 定義為宣告提供者,方法是將它新增至原則延伸檔案中的 ClaimsProviders 元素。

  1. 從 GitHub 取得自定義原則入門套件,然後使用您的 Azure AD B2C 租使用者名稱更新 SocialAndLocalAccounts 入門套件中的 XML 檔案:

    1. 下載 .zip 檔案 或複製存放庫:

      git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    2. LocalAccounts 目錄中的 檔案中,將字串 yourtenant 取代為 Azure AD B2C 租使用者名稱。

  2. 開啟 LocalAccounts/ TrustFrameworkExtensions.xml

  3. 尋找 ClaimsProviders 元素。 如果沒有出現,請在根元素底下新增它。

  4. 新增類似下列範例的新 ClaimsProvider

     <ClaimsProvider>
         <Domain>api.transmitsecurity.io</Domain>
         <DisplayName>Transmit</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="TS-OpenIdConnect">
             <DisplayName>Transmit</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the Transmit Security client ID -->
               <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item>
               <Item Key="response_types">code</Item>
               <Item Key="scope">openid email</Item>
               <Item Key="response_mode">form_post</Item>
               <Item Key="HttpBinding">POST</Item>
               <Item Key="UsePolicyInRedirectUri">false</Item>
               <Item Key="AccessTokenResponseFormat">json</Item>
             </Metadata>
             <CryptographicKeys>
               <Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" />
             </CryptographicKeys>
             <OutputClaims>
               <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
               <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
               <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
               <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
             </OutputClaims>
             <OutputClaimsTransformations>
               <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
               <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
               <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
             </OutputClaimsTransformations>
             <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
           </TechnicalProfile>
         </TechnicalProfiles>
       </ClaimsProvider>    
    
  5. 使用 Transmit Security 客戶端 ID 設定 client_id

  6. 使用您所建立的原則金鑰名稱更新 client_secret 區段 (例如 ,B2C_1A_TransmitClientSecret):

    <Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" />
    
  7. 選取 [儲存]。

步驟 5:新增使用者旅程圖

目前已設定識別提供者,但尚未出現在任何登入頁面中。 如果您有自訂使用者旅程圖,請繼續進行將 Transmit 新增至使用者旅程圖步驟。 否則,請建立重複的範本使用者旅程圖:

  1. 從入門套件開啟 LocalAccounts/ TrustFrameworkBase.xml 檔案。
  2. 尋找並複製包含 Id=SignUpOrSignIn 元素的內容。
  3. 開啟 LocalAccounts/ TrustFrameworkExtensions.xml
  4. 尋找 UserJourneys 元素。 如果沒有元素,新增一個。
  5. 將 UserJourney 元素貼到 UserJourneys 元素的子元素中。
  6. 重新命名使用者旅程 識別碼 (例如 , Id=TransmitSUSI

步驟 6:將 Transmit 新增至使用者旅程圖

將新的識別提供者新增至使用者旅程圖:

  1. 在使用者旅程圖中,尋找包含 Type=CombinedSignInAndSignUpType=ClaimsProviderSelection 的協調流程步驟元素。 這通常是第一個協調流程步驟。 ClaimsProviderSelections 元素具有使用者用來登入的識別提供者清單。 元素的順序會控制登入按鈕的順序。
  2. 新增 ClaimsProviderSelection XML 元素。
  3. TargetClaimsExchangeId 的值設定為易記名稱。
  4. 新增 ClaimsExchange 元素。
  5. 識別碼設定為目標宣告交換識別碼的值。
  6. TechnicalProfileReferenceId 值更新為您所建立的技術設定檔識別碼。

下列 XML 示範使用者旅程圖中有關識別提供者的協調流程:

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="TSIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>

    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="TSIDExchange" TechnicalProfileReferenceId="TS-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

步驟 7:設定信賴方政策

信賴方政策,例如 SignUpSignIn.xml,會指定 Azure AD B2C 執行的使用者行程。 尋找信賴憑證者內的 DefaultUserJourney 元素。 將 ReferenceId 更新為符合已新增識別提供者的使用者旅程圖識別碼。

在下列範例中,針對 TransmitSUSI 使用者旅程圖,將 ReferenceId 設定為 TransmitSUSI

  <RelyingParty>
    <DefaultUserJourney ReferenceId="TransmitSUSI" />
    <TechnicalProfile Id="TS-OpenIdConnect">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

步驟 8:上傳自定義原則

使用目錄搭配您的 Azure AD B2C 租用戶,上傳自訂原則:

  1. 登入 Azure 入口網站
  2. 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
  3. 入口網站設定 |[目錄 + 訂用帳戶 ] 頁面的 [ 目錄名稱] 清單中,尋找 Azure AD B2C 目錄,然後選取 [ 切換]。
  4. 在 [ 原則] 底下,選取 [ 身分識別體驗架構]。
  5. 選取 [上傳自定義原則],然後依下列順序上傳更新的檔案:
  • 基底原則,例如 TrustFrameworkBase.xml
  • 本地化政策,例如 TrustFrameworkLocalization.xml
  • 擴充原則,例如 TrustFrameworkExtensions.xml
  • 信賴憑證者原則,例如 SignUpOrSignIn.xml

步驟 9:測試您的自定義原則

使用包含 Azure AD B2C 租戶的目錄,測試您的自訂原則:

  1. 在 Azure AD B2C 租戶中,然後在 [原則] 底下,選取 [身分識別體驗架構]。
  2. [自定義原則] 底下,選取 B2C_1A_signup_signin
  3. 針對 [應用程式],選取您註冊的 Web 應用程式。 回覆 URLhttps://jwt.ms
  4. 選取 [立即執行]
  5. 瀏覽器被重新導向至 Transmit 的登入頁面。
  6. 完成登入流程:輸入您的帳戶電子郵件並使用生物特徵辨識進行驗證(例如指紋)。
  7. 瀏覽器會使用 Azure AD B2C 令牌重新導向至 https://jwt.ms

後續步驟

如需詳細資訊,請檢閱下列文章: