共用方式為


教學課程:使用BlokSec設定 Azure Active Directory B2C 以進行無密碼驗證

這很重要

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

開始之前

Azure Active Directory B2C 有兩種方法可定義使用者與應用程式的互動:預先定義的使用者流程或可設定的自定義原則。

備註

在 Azure Active Directory B2C 中,自定義原則主要可解決複雜的案例。 在大部分情況下,建議使用內建的使用者流程。
請參閱 使用者流程和自定義原則概觀

Azure AD B2C 和 BlokSec

瞭解如何整合 Azure Active Directory B2C (Azure AD B2C) 驗證與 BlokSec 分散式身分識別路由器。 BlokSec 解決方案使用無密碼驗證和無令牌多重要素驗證來簡化使用者登入。 此解決方案可保護客戶免於身分識別相關攻擊,例如密碼填充、網路釣魚和中間人。

若要深入瞭解,請移至 bloksec.com: BlokSec Technologies Inc.

案例描述

BlokSec 整合包含下列元件:

  • Azure AD B2C – B2C 應用程式的授權伺服器和識別提供者 (IdP)
  • BlokSec 分散式身分識別路由器 – 適用於套用 BlokSec DIaaS 的服務閘道,將驗證和授權要求路由傳送給使用者個人識別提供者 (PIdP) 應用程式
    • 它是 Azure AD B2C 中的 OpenID Connect (OIDC) 識別提供者
  • 以 BlokSec SDK 為基礎的行動應用程式 – 在分散式驗證案例中的使用者 PIdP。
    • 如果您未使用 BlokSec SDK,請前往 Google Play 以取得免費的 BlokSec yuID

下列架構圖說明BlokSec解決方案實作中的註冊、登入流程。

BlokSec 解決方案實作中註冊、登入流程的圖表。

  1. 使用者登入 Azure AD B2C 應用程式,並轉送至 Azure AD B2C 登入和註冊原則
  2. Azure AD B2C 會使用 OIDC 授權碼流程,將使用者重新導向至 BlokSec 分散式身分識別路由器。
  3. BlokSec 路由器會將包含驗證及授權要求細節的推播通知發送給用戶的手機應用程式。
  4. 使用者檢閱驗證挑戰。 系統會提示接受的用戶進行生物測量,例如指紋或臉部掃描。
  5. 回應會使用使用者的唯一數位金鑰進行數字簽署。 驗證回應會提供擁有權、存在和同意證明。 回應會傳迴路由器。
  6. 路由器會根據儲存在分散式帳本中的使用者不變且唯一的公鑰來驗證數位簽章。 路由器會將驗證結果回傳給 Azure AD B2C。
  7. 使用者會被授與或拒絕存取。

啟用 BlokSec

  1. 移至 bloksec.com,然後選取 [要求示範] 租用戶。
  2. 在訊息欄位中,指出您想要與 Azure AD B2C 整合。
  3. 下載並安裝免費的BlokSec yuID行動應用程式。
  4. 準備好示範租用戶後,您就會收到一封電子郵件。
  5. 在具有BlokSec應用程式的行動裝置上,選取連結以向 yuID 應用程式註冊您的系統管理員帳戶。

先決條件

若要開始使用,您需要:

另請參閱 教學課程:在 Azure AD B2C 中建立使用者流程和自定義原則

在 BlokSec 中建立應用程式註冊

在BlokSec的帳戶註冊電子郵件中,尋找BlokSec管理主控台的連結。

  1. 登入BlokSec管理主控台。
  2. 在主要儀錶板上,選取 [ 新增應用程式 > 建立自定義]。
  3. 針對 [名稱],輸入 Azure AD B2C 或應用程式名稱。
  4. 針對 [SSO 類型],選取 [OIDC]。
  5. 針對 標誌 URI,輸入標誌圖片的連結。
  6. 針對 [重新導向 URI],使用 https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp。 例如: https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp 。 針對自訂網域,輸入 https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
  7. 針對 [登出後重新導向 URI],輸入 https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout
  8. 選取已建立的 Azure AD B2C 應用程式以開啟應用程式組態。
  9. 選取 [產生應用程式密碼]。

深入了解: 傳送註銷要求

備註

您需要應用程式識別碼和應用程式密碼,才能在 Azure AD B2C 中設定識別提供者 (IdP)。

在 Azure AD B2C 中新增識別提供者

針對下列指示,請使用包含 Azure AD B2C 租用戶的目錄。

  1. 至少以 Azure AD B2C 租戶的 B2C IEF 原則管理員的身分登入 Azure 入口網站
  2. 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
  3. 在 [ 入口網站設定] 的 [目錄 + 訂 用帳戶] 頁面上,於 [ 目錄名稱] 清單中,尋找您的 Azure AD B2C 目錄。
  4. 選取 [切換]
  5. 在 Azure 入口網站的左上角,選取 [所有服務]。
  6. 搜尋並選取 [Azure AD B2C]
  7. 瀏覽至 [儀表板]>[Azure Active Directory B2C]>[識別提供者]
  8. 選取 新增 OpenID Connect 提供者
  9. 選取 ,然後新增

設定識別提供者

  1. 選取 [識別提供者類型 > OpenID Connect]
  2. 針對 [名稱],輸入 BlokSec yuID 無密碼 或其他名稱。
  3. 針對 [元數據 URL],輸入 https://api.bloksec.io/oidc/.well-known/openid-configuration
  4. 針對 [用戶端 IDV],輸入來自 BlokSec 系統管理 UI 的應用程式識別碼。
  5. 針對 [客戶端密碼],輸入來自BlokSec系統管理UI的應用程式秘密。
  6. 針對 [範圍],選取 [OpenID 電子郵件設定檔]
  7. 針對 [回應類型],選取 [程式碼]
  8. 針對 [網域提示],選取 [yuID]
  9. 請選擇 [確定]
  10. 選取 [對應此識別提供者的宣告]
  11. 針對 [使用者識別碼],選取 [子項]
  12. 針對 [顯示名稱],選取 [名稱]
  13. 針對 [指定名稱],請使用 given_name
  14. 針對 Surname,請使用 family_name
  15. 對於 [電子郵件],使用 email
  16. 選取 [儲存]。

使用者註冊

  1. 使用提供的認證登入 BlokSec 管理控制台。
  2. 流覽至稍早建立的 Azure AD B2C 應用程式。
  3. 在右上方,選取 齒輪 圖示。
  4. 選取 [ 建立帳戶]。
  5. [建立帳戶] 中,輸入用戶資訊。 記下 [帳戶名稱]。
  6. 選取 提交

使用者會收到位於所提供電子郵件地址的帳戶註冊電子郵件。 指示使用者使用BlokSec yuID 應用程式選取行動裝置上的註冊連結。

建立使用者流程原則

如需下列指示,請確定BlokSec是新的OIDC識別提供者 (IdP)。

  1. 在您的 Azure AD B2C 租戶中,於 [原則] 底下,選取 [使用者流程]
  2. 選取 新使用者流程
  3. 選取 [註冊與登入]>[版本]>[建立]
  4. 輸入原則 [名稱]
  5. 在 [識別提供者] 區段中,選取已建立的BlokSec識別提供者。
  6. 針對 [本機帳戶],選取 [無]。 此動作會停用電子郵件和密碼型驗證。
  7. 選取 [執行使用者流程]
  8. 在表單中,輸入回復 URL,例如 https://jwt.ms
  9. 瀏覽器會重新導向至BlokSec登入頁面。
  10. 輸入用戶註冊中的帳戶名稱。
  11. 使用者會使用 BlokSec yuID 應用程式,在行動裝置上收到推播通知。
  12. 用戶會開啟通知,而驗證挑戰隨即出現。
  13. 如果已接受驗證,瀏覽器會將使用者重新導向至回復 URL。

備註

在 Azure Active Directory B2C 中,自定義原則主要可解決複雜的案例。 在大部分情況下,建議使用內建的使用者流程。
請參閱 使用者流程和自定義原則概觀

建立原則金鑰

儲存您在 Azure AD B2C 租戶中注意到的客戶端密碼。 請使用與您的 Azure AD B2C 租戶相關的目錄,以便完成以下指示。

  1. 登入 Azure 入口網站
  2. 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
  3. 在 [ 入口網站設定] 的 [目錄 + 訂 用帳戶] 頁面上,於 [ 目錄名稱] 清單中,尋找您的 Azure AD B2C 目錄。
  4. 選取 [切換]
  5. 在 Azure 入口網站的左上角,選取 [所有服務]
  6. 搜尋並選取 [Azure AD B2C]
  7. 在 [概觀] 頁面上,選取 [Identity Experience Framework]
  8. 選取 [原則金鑰]。
  9. 選取 ,然後新增
  10. 針對 [選項],選擇 [ 手動]。
  11. 輸入政策金鑰的名稱。 例如: BlokSecAppSecret 。 前置詞 B2C_1A_ 會新增至金鑰名稱。
  12. 在 [ 秘密] 中,輸入您注意到的客戶端密碼。
  13. 針對 [ 金鑰使用方式],選取 [ 簽章]。
  14. 選取 ,創建

將BlokSec設定為識別提供者

若要讓使用者使用BlokSec分散式身分識別登入,請將BlokSec定義為宣告提供者。 此動作可確保 Azure AD B2C 會透過端點與其通訊。 Azure AD B2C 使用端點宣告來核實使用者透過生物識別技術,例如指紋或臉部掃描,來進行身份驗證。

若要將BlokSec定義為宣告提供者,請將它新增至原則延伸檔案中的 ClaimsProvider 元素。

  1. 開啟 TrustFrameworkExtensions.xml

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

  3. 若要新增 ClaimsProvider

    <ClaimsProvider>
      <Domain>bloksec</Domain>
      <DisplayName>BlokSec</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="BlokSec-OpenIdConnect">
          <DisplayName>BlokSec</DisplayName>
          <Description>Login with your BlokSec decentriled identity</Description>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the BlokSec Application ID -->
            <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <Item Key="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_BlokSecAppSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. client_id 設定為應用程式註冊中的應用程式識別碼。

  5. 選取 [儲存]。

新增使用者旅程圖

如果識別提供者已經設定,但不在任何登入頁面中,則使用下列指示。 如果您沒有自定義使用者旅程圖,請複製範本使用者旅程圖。

  1. 從入門套件開啟 TrustFrameworkBase.xml 檔案。
  2. 尋找並複製包含ID=SignUpOrSignIn元素內容。
  3. 開啟 TrustFrameworkExtensions.xml
  4. 尋找 UserJourneys 元素。 如果元素未出現,請新增一個。
  5. 將您複製的 UserJourney 元素內容貼為 UserJourneys 元素的子元素。
  6. 重新命名使用者旅程識碼。 例如,ID=CustomSignUpSignIn

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

如果您已經具有使用者旅程圖,請將新的識別提供者新增至其中。 首先新增一個登入按鈕,然後將它連結到一個動作,這是您所建立的技術設定檔。

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

下列 XML 展示識別提供者的前兩個使用者旅程編排步驟:

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

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

設定信賴憑證者原則

信賴方政策,例如 SignUpSignIn.xml,會指定 Azure AD B2C 執行的使用者行程。

  1. 在信賴憑證者中找出 DefaultUserJourney 元素。
  2. ReferenceId 更新為符合已新增識別提供者的使用者旅程圖識別碼。

在下列範例中,針對 CustomSignUpOrSignIn 使用者旅程,ReferenceId 會設定為 CustomSignUpOrSignIn

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

上傳自定義原則

請使用與您的 Azure AD B2C 租戶相關的目錄,以便完成以下指示。

  1. 登入 Azure 入口網站
  2. 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
  3. 入口網站設定,目錄 + 訂用帳戶 頁面上,於 目錄名稱 清單中,尋找您的 Azure AD B2C 目錄
  4. 選取 [切換]
  5. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  6. 在 [ 原則] 底下,選取 [ 身分識別體驗架構]。
  7. 選取上傳客製化政策
  8. 上傳您依下列順序變更的兩個原則檔案:
  • 擴充原則,例如 TrustFrameworkExtensions.xml
  • 信賴憑證者原則,例如 SignUpSignIn.xml

測試自定義原則

  1. 選取您的信賴憑證者原則,例如 B2C_1A_signup_signin
  2. 針對 [應用程式],選取您註冊的 Web 應用程式。
  3. 回覆 URL 會顯示為 https://jwt.ms
  4. 選取 [立即執行]
  5. 從 [註冊或登入] 頁面中,選取 [Google ] 以使用 Google 帳戶登入。
  6. 瀏覽器會重新導向至 https://jwt.ms。 請參閱 Azure AD B2C 所傳回的令牌內容。

深入瞭解: 教學課程:在 Azure Active Directory B2C 中註冊 Web 應用程式

後續步驟