這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
在本教學課程中,瞭解如何整合 Azure Active Directory B2C (Azure AD B2C) 驗證與 Transmit Security 的托管密鑰驗證解決方案。 傳輸安全性使用強式快速身分識別在線 (FIDO2) 生物特徵辨識驗證進行可靠的全通道驗證。 此解決方案可確保跨裝置和通道的客戶順暢登入體驗,同時減少詐騙、網路釣魚和認證重複使用。
案例描述
下列架構圖表說明實作:
- 用戶開啟 Azure AD B2C 登入頁面,然後登入或註冊。
- Azure AD B2C 會透過 OpenID Connect (OIDC)將使用者重新導向至 Transmit Security。
- 傳輸安全性會使用無應用程式 FIDO2 生物特徵辨識來驗證使用者,例如指紋。
- 分散式驗證回應已返回至 Transmit Security。
- OIDC 回應會傳遞至 Azure AD B2C。
- 根據驗證結果,使用者會被授與或拒絕應用程式存取權。
先決條件
若要開始使用,您需要:
- Microsoft Entra 訂用帳戶。 如果您沒有帳戶,請取得 免費帳戶。
- 連結至 Entra 訂用帳戶的 Azure AD B2C 租用戶。
- Azure AD B2C 租使用者中已註冊的 Web 應用程式。
- Transmit Security 租用戶。 移至 [transmitsecurity.com]。
- Microsoft Entra 訂用帳戶。 如果您沒有帳戶,請取得 免費帳戶。
- 連結至 Entra 訂用帳戶的 Azure AD B2C 租用戶。
- Azure AD B2C 租使用者中已註冊的 Web 應用程式。
- Azure AD B2C 自定義原則。
- Transmit Security 租用戶。 移至 [transmitsecurity.com]。
步驟 1:建立傳輸應用程式
從 [應用程式] 中,選取 [新增應用程式]。
使用下列屬性設定應用程式:
房產 說明 應用程式名稱 應用程式名稱 用戶端名稱 用戶端名稱 重新導向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是您自定義網域)選取 ,然後新增。
註冊時,會出現 用戶端標識碼 和 客戶端密碼 。 記錄稍後要使用的值。
步驟 2:設定登入體驗
從 傳輸管理入口網站設定使用者驗證體驗:
選取 [驗證],然後選取 [ 體驗管理]。
從下拉功能表中,選取您的應用程式。
使用下列屬性設定您的應用程式:
房產 說明 用戶標識碼 選取 電子郵件 主要驗證方法 選取 [通行金鑰] 次要驗證方法 僅啟用 WebAuthn QR 和 電子郵件 OTP 選取用戶資訊 刪除所有預設欄位 選取 [儲存]。
步驟 3:將 Transmit 新增為身份驗證提供者
若要讓使用者使用傳輸安全性登入,請將傳輸安全性設定為新的識別提供者。 在 Azure AD B2C 中,請遵循下列步驟:
至少以 B2C IEF 原則管理員身分登入 Azure 入口網站。
在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
在 入口網站設定 |[目錄 + 訂用帳戶 ] 頁面的 [ 目錄名稱] 清單中,尋找 Azure AD B2C 目錄,然後選取 [ 切換]。
在 [Azure 服務] 底下,選取 [Azure AD B2C ] (或選取 [更多服務 ],並使用 [ 所有服務 ] 搜尋方塊來搜尋 Azure AD B2C)。
選取 [識別提供者],然後選取 [新增 OpenID Connect 提供者]。
設定提供者,如下所示:
房產 說明 名稱 名稱,例如 Transmit Security 元數據 URL https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration用戶端識別碼 傳輸所提供的用戶端識別碼 客戶端密碼 Transmit 所提供的用戶端密碼 範圍 openid email回應類型 程式碼 回應模式 form_post 顯示名稱 email電子郵件 email選取 [儲存]。
步驟 4:建立使用者流程
此時,Transmit Security 身分識別提供者已設定完成,但尚未在任何登入頁面上啟用。 若要將 Transmit Security 識別提供者新增至使用者流程:
- 在您的 Azure AD B2C 租戶中,於 [原則] 底下,選取 [使用者流程]。
- 選取 新使用者流程。
- 選取 [註冊並登入 使用者流程類型],然後選取 [ 建立]。
- 輸入使用者流程的名稱,例如 signupsignin。
- 在 [識別提供者] 下方:
- 對於 [本機帳戶],選取 [無]。
- 針對 自定義識別提供者,選取傳輸安全性提供者。
- 選取 [建立] 以新增使用者流程。
步驟 5:測試使用者流程
- 在 Azure AD B2C 租用戶中,選取 [使用者流程]。
- 選取已建立的使用者流程,例如 B2C_1_signupsignin。
- 選取 [執行使用者流程]:
- 針對 [應用程式],選取已註冊的 Web 應用程式。
- 針對 [回復 URL],選取
https://jwt.ms。
- 選取 [執行使用者流程]。
- 瀏覽器被重新導向至 Transmit 的登入頁面。
- 完成登入流程:輸入您的帳戶電子郵件並使用生物特徵辨識進行驗證(例如指紋)。
- 瀏覽器會使用 Azure AD B2C 令牌重新導向至
https://jwt.ms。
步驟 3:建立原則密鑰
您必須將先前記錄的 Transmit 應用程式的用戶端密碼,儲存在 Azure AD B2C 租用戶中。
登入 Azure 入口網站。
在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
在 入口網站設定 |[目錄 + 訂用帳戶 ] 頁面的 [ 目錄名稱] 清單中,尋找 Azure AD B2C 目錄,然後選取 [ 切換]。
在 [概觀] 頁面的 [ 原則] 底下,選取 [ 身分識別體驗架構]。
選取 [原則金鑰],然後選取 [新增]。
設定原則金鑰,如下所示:
房產 說明 選項 手動 名稱 原則密鑰名稱,例如 TransmitClientSecret 祕密 Transmit 所提供的用戶端密碼 金鑰使用方式 簽章 選取 [建立] 以新增原則密鑰。
步驟 4:將 Transmit 新增為識別提供者
若要啟用使用 Transmit Security 登入,請將 Transmit Security 定義為 Azure AD B2C 透過端點進行通訊的宣告提供者。 端點提供由 Azure AD B2C 所使用的宣告,確認使用者已使用裝置上的數位身分識別進行驗證。
您可以將 Transmit Security 定義為宣告提供者,方法是將它新增至原則延伸檔案中的 ClaimsProviders 元素。
從 GitHub 取得自定義原則入門套件,然後使用您的 Azure AD B2C 租使用者名稱更新 SocialAndLocalAccounts 入門套件中的 XML 檔案:
下載 .zip 檔案 或複製存放庫:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack在 LocalAccounts 目錄中的 檔案中,將字串
yourtenant取代為 Azure AD B2C 租使用者名稱。
開啟
LocalAccounts/ TrustFrameworkExtensions.xml。尋找 ClaimsProviders 元素。 如果沒有出現,請在根元素底下新增它。
新增類似下列範例的新 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>使用 Transmit Security 客戶端 ID 設定 client_id。
使用您所建立的原則金鑰名稱更新 client_secret 區段 (例如 ,B2C_1A_TransmitClientSecret):
<Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" />選取 [儲存]。
步驟 5:新增使用者旅程圖
目前已設定識別提供者,但尚未出現在任何登入頁面中。 如果您有自訂使用者旅程圖,請繼續進行將 Transmit 新增至使用者旅程圖步驟。 否則,請建立重複的範本使用者旅程圖:
- 從入門套件開啟
LocalAccounts/ TrustFrameworkBase.xml檔案。 - 尋找並複製包含 之
Id=SignUpOrSignIn元素的內容。 - 開啟
LocalAccounts/ TrustFrameworkExtensions.xml。 - 尋找 UserJourneys 元素。 如果沒有元素,新增一個。
- 將 UserJourney 元素貼到 UserJourneys 元素的子元素中。
- 重新命名使用者旅程 識別碼 (例如 ,
Id=TransmitSUSI)
步驟 6:將 Transmit 新增至使用者旅程圖
將新的識別提供者新增至使用者旅程圖:
- 在使用者旅程圖中,尋找包含
Type=CombinedSignInAndSignUp或Type=ClaimsProviderSelection的協調流程步驟元素。 這通常是第一個協調流程步驟。 ClaimsProviderSelections 元素具有使用者用來登入的識別提供者清單。 元素的順序會控制登入按鈕的順序。 - 新增 ClaimsProviderSelection XML 元素。
- 將 TargetClaimsExchangeId 的值設定為易記名稱。
- 新增 ClaimsExchange 元素。
- 將識別碼設定為目標宣告交換識別碼的值。
- 將 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 租用戶,上傳自訂原則:
- 登入 Azure 入口網站。
- 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
- 在 入口網站設定 |[目錄 + 訂用帳戶 ] 頁面的 [ 目錄名稱] 清單中,尋找 Azure AD B2C 目錄,然後選取 [ 切換]。
- 在 [ 原則] 底下,選取 [ 身分識別體驗架構]。
- 選取 [上傳自定義原則],然後依下列順序上傳更新的檔案:
- 基底原則,例如
TrustFrameworkBase.xml - 本地化政策,例如
TrustFrameworkLocalization.xml - 擴充原則,例如
TrustFrameworkExtensions.xml - 信賴憑證者原則,例如
SignUpOrSignIn.xml
步驟 9:測試您的自定義原則
使用包含 Azure AD B2C 租戶的目錄,測試您的自訂原則:
- 在 Azure AD B2C 租戶中,然後在 [原則] 底下,選取 [身分識別體驗架構]。
- 在 [自定義原則] 底下,選取 B2C_1A_signup_signin。
- 針對 [應用程式],選取您註冊的 Web 應用程式。
回覆 URL 為
https://jwt.ms。 - 選取 [立即執行]。
- 瀏覽器被重新導向至 Transmit 的登入頁面。
- 完成登入流程:輸入您的帳戶電子郵件並使用生物特徵辨識進行驗證(例如指紋)。
- 瀏覽器會使用 Azure AD B2C 令牌重新導向至
https://jwt.ms。
後續步驟
如需詳細資訊,請檢閱下列文章: