教學課程:搭配 BlokSec 設定 Azure Active Directory 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,請移至免費BlokSec yuID的 Google Play
下列架構圖說明 BlokSec 解決方案實作中的註冊、登入流程。
- 使用者登入 Azure AD B2C 應用程式,並轉送至 Azure AD B2C 登入和註冊原則
- Azure AD B2C 會使用 OIDC 授權碼流程,將使用者重新導向至 BlokSec 分散式身分識別路由器。
- BlokSec 路由器會使用驗證和授權要求詳細資料,將推播通知傳送給使用者行動應用程式。
- 使用者檢閱驗證挑戰。 系統會提示接受的使用者進行生物測量,例如指紋或臉部掃描。
- 回應會以使用者的唯一數位鍵進行數位簽署。 驗證回應會提供擁有權、存在和同意的證明。 回應會傳回路由器。
- 路由器會根據儲存在分散式總帳中的不可變唯一公開金鑰來驗證數位簽章。 路由器會以驗證結果回復 Azure AD B2C。
- 使用者被授與或拒絕存取。
啟用 BlokSec
- 移至 bloksec.com,然後選取 [ 要求示範 租使用者]。
- 在訊息欄位中,指出您想要與 Azure AD B2C 整合。
- 下載並安裝免費的 BlokSec yuID 行動應用程式。
- 準備示範租使用者之後,就會收到電子郵件。
- 在具有 BlokSec 應用程式的行動裝置上,選取連結以向 yuID 應用程式註冊您的系統管理員帳戶。
必要條件
若要開始,您需要:
- Azure 訂用帳戶
- 如果您沒有帳戶,請取得 Azfree 帳戶
- 連結至 Azure 訂用帳戶的Azure AD B2C 租使用者
- BlokSec 示範
- 註冊 Web 應用程式
另請參閱教學 課程:在 Azure AD B2C 中建立使用者流程和自訂原則
在 BlokSec 中建立應用程式註冊
在 BlokSec 的帳戶註冊電子郵件中,尋找 BlokSec 管理主控台的連結。
- 登入 BlokSec 管理主控台。
- 在主要儀表板上,選取 [ 新增應用程式 > 建立自訂]。
- 針對 [名稱],輸入 Azure AD B2C 或應用程式名稱。
- 針對 [SSO 類型],選取 [OIDC]。
- 針對 [標誌 URI],輸入標誌影像的連結。
- 針對 [重新導向 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
。 - 針對 [登出後重新導向 URI],輸入
https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout
。 - 選取已建立的 Azure AD B2C 應用程式以開啟應用程式組態。
- 選取 [產生應用程式密碼]。
深入瞭解: 傳送登出要求。
注意
您需要應用程式識別碼和應用程式密碼,才能在 Azure AD B2C 中設定識別提供者 (IdP) 。
在 Azure AD B2C 中新增識別提供者
如需下列指示,請使用包含 Azure AD B2C 租使用者的目錄。
- 以 Azure AD B2C 租使用者的全域管理員身分登入Azure 入口網站。
- 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
- 在 [ 入口網站設定] 的 [目錄 + 訂用 帳戶] 頁面上,于 [ 目錄名稱 ] 清單中尋找您的 Azure AD B2C 目錄。
- 選取 [切換]。
- 在Azure 入口網站左上角,選取[所有服務]。
- 搜尋並選取 [Azure AD B2C]。
- 瀏覽至 [儀表板]>[Azure Active Directory B2C]>[識別提供者]。
- 選取 [新增 OpenID Connect 提供者]。
- 選取 [新增]。
設定識別提供者
- 選取 [識別提供者類型] > [OpenID Connect]
- 針對 [名稱],輸入 BlokSec yuID 無密碼 或其他名稱。
- 針對 [中繼資料 URL],輸入
https://api.bloksec.io/oidc/.well-known/openid-configuration
。 - 針對 [用戶端 IDV],輸入來自 BlokSec 系統管理 UI 的應用程式識別碼。
- 針對 [用戶端密碼],輸入來自 BlokSec 系統管理 UI 的應用程式密碼。
- 針對 [範圍],選取 [OpenID 電子郵件設定檔]。
- 針對 [回應類型],選取 [ 程式碼]。
- 針對 [網域提示],選取 [yuID]。
- 選取 [確定]。
- 選取 [對應此識別提供者的宣告]。
- 針對 [使用者識別碼],選取 [子]。
- 針對 [顯示名稱],選取 [名稱]。
- 針對 [指定的名稱],請使用 given_name。
- 針對 Surname,請使用 family_name。
- 針對Email,請使用電子郵件。
- 選取 [儲存]。
使用者註冊
- 使用提供的認證登入 BlokSec 管理主控台。
- 流覽至稍早建立的 Azure AD B2C 應用程式。
- 在右上方,選取 齒輪 圖示。
- 選取 [建立帳戶]。
- 在 [建立帳戶] 中,輸入使用者資訊。 記下 [帳戶名稱]。
- 選取 [提交] 。
使用者會在提供的電子郵件地址收到帳戶註冊電子郵件。 指示使用者使用 BlokSec yuID 應用程式在行動裝置上選取註冊連結。
建立使用者流程原則
如需下列指示,請確定 BlokSec 是新的 OIDC 識別提供者, (IdP) 。
- 在您的 Azure AD B2C 租用戶中,選取 [原則] 下的 [使用者流程]。
- 選取 [新增使用者流程]。
- 選取 [註冊與登入]>[版本]>[建立]。
- 輸入原則 名稱。
- 在 [識別提供者] 區段中,選取已建立的 BlokSec 識別提供者。
- 針對 [本機帳戶],選取 [無]。 此動作會停用電子郵件和密碼型驗證。
- 選取 [執行使用者流程]
- 在表單中,輸入回覆 URL,例如
https://jwt.ms
。 - 瀏覽器會重新導向至 BlokSec 登入頁面。
- 輸入使用者註冊中的帳戶名稱。
- 使用者會透過 BlokSec yuID 應用程式在行動裝置上收到推播通知。
- 使用者會開啟通知,並顯示驗證挑戰。
- 如果接受驗證,瀏覽器會將使用者重新導向至回復 URL。
注意
在 Azure Active Directory B2C 中,自訂原則主要是解決複雜的案例。 在大部分情況下,我們建議使用內建的使用者流程。
請參閱使用者 流程和自訂原則概觀
建立原則金鑰
儲存您在 Azure AD B2C 租使用者中記錄的用戶端密碼。 如需下列指示,請使用 目錄搭配您的 Azure AD B2C 租使用者。
- 登入 Azure 入口網站。
- 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
- 在 [ 入口網站設定] 的 [目錄 + 訂用 帳戶] 頁面上,于 [ 目錄名稱 ] 清單中尋找您的 Azure AD B2C 目錄。
- 選取 [切換]。
- 在Azure 入口網站左上角,選取[所有服務]
- 搜尋並選取 [Azure AD B2C]。
- 在 [概觀] 頁面上,選取 [Identity Experience Framework]。
- 選取 [ 原則金鑰]。
- 選取 [新增]。
- 針對 [選項],選擇 [手動]。
- 輸入原則金鑰的原則 [名稱 ]。 例如:
BlokSecAppSecret
。 前置詞B2C_1A_
會新增至索引鍵名稱。 - 在 [秘密] 中,輸入您記錄的用戶端密碼。
- 針對 [金鑰使用方法] 選取 [簽章]。
- 選取 [建立]。
將 BlokSec 設定為識別提供者
若要讓使用者使用 BlokSec 分散式身分識別登入,請將 BlokSec 定義為宣告提供者。 此動作可確保 Azure AD B2C 會透過端點與其通訊。 Azure AD B2C 會使用端點宣告來驗證使用者使用生物測量來驗證身分識別,例如指紋或臉部掃描。
若要將 BlokSec 定義為宣告提供者,請將它新增至原則延伸檔案中的 ClaimsProvider 元素。
開啟
TrustFrameworkExtensions.xml
。尋找 ClaimsProviders 元素。 如果專案未出現,請在根項目底下新增它。
若要新增 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">00000000-0000-0000-0000-000000000000</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>
將 client_id 設定為來自應用程式註冊的應用程式識別碼。
選取 [儲存]。
新增使用者旅程圖
如果已設定識別提供者,但未在任何登入頁面中,請使用下列指示。 如果您沒有自訂使用者旅程圖,請複製範本使用者旅程圖。
- 從入門套件開啟
TrustFrameworkBase.xml
檔案。 - 尋找並複製包含 ID=
SignUpOrSignIn
的UserJourneys元素內容。 - 開啟
TrustFrameworkExtensions.xml
。 - 尋找 UserJourneys 元素。 如果專案未出現,請新增一個專案。
- 貼上您複製為 UserJourneys 元素子系 之 UserJourney 元素 的內容。
- 重新命名使用者旅程圖識別碼。 例如,ID=
CustomSignUpSignIn
。
將識別提供者新增至使用者旅程圖
如果您有使用者旅程圖,請將新的識別提供者新增至其中。 請先新增登入按鈕,然後將其連結至動作,也就是您所建立的技術設定檔。
- 在使用者旅程圖中,找出包含 Type=
CombinedSignInAndSignUp
或 Type=ClaimsProviderSelection
的協調流程步驟元素。 這通常是第一個協調流程步驟。 ClaimsProviderSelections元素包含使用者登入的識別提供者清單。 元素的順序會控制使用者看到的登入按鈕順序。 - 新增 ClaimsProviderSelection XML 元素。
- 將 TargetClaimsExchangeId 的值設定為易記名稱。
- 在下一個協調流程步驟中,新增 ClaimsExchange 元素。
- 將識別碼設定為目標宣告交換識別碼的值。
- 將 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 執行的使用者旅程圖。
- 在信賴憑證者中尋找 DefaultUserJourney 元素。
- 更新 ReferenceId,使其符合您在其中新增識別提供者的使用者旅程圖識別碼。
在下列範例中,針對 CustomSignUpOrSignIn
使用者旅程圖,將 ReferenceId 設定為 CustomSignUpOrSignIn
。
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
上傳自訂原則
如需下列指示,請使用 目錄搭配您的 Azure AD B2C 租使用者。
- 登入 Azure 入口網站。
- 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
- 在 [ 入口網站設定] 的 [目錄 + 訂用帳戶 ] 頁面的 [ 目錄名稱 ] 清單中,尋找您的 Azure AD B2C 目錄
- 選取 [切換]。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 在 [原則] 之下,選取 [Identity Experience Framework]。
- 選取 [上傳自訂原則]。
- 依下列順序上傳您變更的兩個原則檔案:
- 擴充原則,例如
TrustFrameworkExtensions.xml
- 信賴憑證者原則,例如
SignUpSignIn.xml
測試自訂原則
- 選取您的信賴憑證者原則 (例如
B2C_1A_signup_signin
)。 - 針對 [應用程式],選取您註冊的 Web 應用程式。
-
回復 URL會顯示為
https://jwt.ms
。 - 選取 [立即執行]。
- 從註冊或登入頁面,選取 [Google] 以使用 Google 帳戶登入。
- 瀏覽器會重新導向至
https://jwt.ms
。 請參閱 Azure AD B2C 所傳回的權杖內容。
深入瞭解 :教學課程:在 Azure Active Directory B2C 中註冊 Web 應用程式