這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
開始之前
Azure Active Directory B2C (Azure AD B2C) 有兩種方法可定義使用者與應用程式的互動:預先定義的使用者流程或可設定的自定義原則。 請參閱 使用者流程和自定義原則概觀
整合 Azure AD B2C 與 IDEMIA 行動標識碼
IDEMIA 提供生物特徵辨識驗證服務,例如臉部標識碼和指紋,可減少詐騙和認證重複使用。 有了行動標識碼,公民可以從受信任的政府簽發數位標識碼中獲益,作為其實體標識符的補充。 行動標識碼會使用自我選取的 PIN、觸控標識碼或臉部標識碼來驗證身分識別。 公民藉由共用交易所需的資訊來控制其身分識別。 許多州機動車部門(DMV)都使用移動標識碼。
若要深入瞭解,請移至 idemia.com: IDEMIA
案例描述
行動識別元整合包含下列元件:
-
Azure AD B2C – 驗證使用者認證的授權伺服器
- 也稱為識別提供者 (IdP)
- IDEMIA Mobile ID - OpenID Connect (OIDC) 提供者已設定為 Azure AD B2C 外部提供者
-
IDEMIA 行動標識碼應用程式 - 手機上應用程式中的駕照或狀態簽發標識碼的數位版本
- 請參閱 IDEMIA行動標識碼
行動標識碼是數位識別檔,這是 DMV 用來驗證個別身分識別的可攜式行動身分識別令牌。 已簽署的數位化識別碼會儲存在使用者的行動電話上,作為邊緣上的身分識別。 已簽署的認證可簡化對身分識別服務的存取,例如年齡驗證、金融了解您的客戶、帳戶存取等。
下圖說明使用行動標識元註冊和登入使用者流程。
- 用戶使用其裝置和行動 ID 造訪 Azure AD B2C 登入頁面(回復方)來進行交易。
- Azure AD B2C 會執行標識碼檢查。 它會使用 OIDC 授權碼流程,將使用者重新導向至 IDEMIA 路由器。
- 路由器會將生物特徵辨識挑戰及驗證和授權要求詳情傳送給使用者的行動應用程式。
- 視安全性而定,可能會提示使用者提供更多詳細數據:輸入 PIN、取得即時自拍或兩者。
- 驗證回應會提供擁有權、存在和同意證明。 回應會傳回至路由器。
- 路由器會驗證用戶資訊,並將結果回傳給 Azure AD B2C。
- 使用者會被授與或拒絕存取。
啟用行動標識碼
若要開始使用,請移至 [idemia.com 連絡 頁面以要求示範。 在 [要求表單] 字段中,指出您對 Azure AD B2C 整合的興趣。
整合行動識別碼與 Azure AD B2C
使用下列各節來準備和執行整合程式。
先決條件
若要開始使用,您需要:
使用 IDEMIA,美國各州發行的行動識別碼認證 (mID),存取使用者
- 或在測試階段期間,來自 IDEMIA 的 mID 示範應用程式
Azure 訂用帳戶
- 如果您沒有帳戶,請取得 Azure 免費帳戶
連結至 Azure 訂用帳戶的 Azure AD B2C 租戶
您的商務 Web 應用程式已在 Azure AD B2C 租戶中註冊
- 若要進行測試,請設定 https://jwt.msMicrosoft具有已譯碼令牌內容的 Web 應用程式
備註
令牌內容不會離開您的瀏覽器。
提交信賴憑證者應用程式的 mID
在行動標識碼整合期間,會提供下列資訊。
| 房產 | 說明 |
|---|---|
| 應用程式名稱 | Azure AD B2C 或其他應用程式名稱 |
| 客戶_識別碼 | 識別提供者的唯一識別碼 (IdP) |
| 用戶端密碼 | 信賴憑證者應用程式用來向 IDEMIA IdP 驗證的密碼 |
| 元數據端點 | 指向令牌簽發者設定檔的 URL,也稱為 OpenID 已知組態端點 |
| 重新導向 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 中設定 IdP。
建立原則金鑰
將記下的 IDEMIA 用戶端密鑰儲存在您的 Azure AD B2C 租戶中。 請使用與您的 Azure AD B2C 租戶相關的目錄,以便完成以下指示。
- 登入 Azure 入口網站。
- 在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
- 在 [入口網站設定,目錄 + 訂閱] 頁面上,在 [目錄名稱] 列表中尋找您的 Azure AD B2C 目錄。
- 選取 [切換]。
- 在 Azure 入口網站的左上角,選取 [所有服務]。
- 搜尋並選取 [Azure AD B2C]。
- 在 [概觀] 頁面上,選取 [Identity Experience Framework]。
- 選取 [原則金鑰]。
- 選取 ,然後新增。
- 針對 [選項],選擇 [ 手動]。
- 輸入政策金鑰的名稱。 例如:
IdemiaAppSecret。 前置詞B2C_1A_會新增至金鑰名稱。 - 在 [ 秘密] 中,輸入您注意到的客戶端密碼。
- 針對 [ 金鑰 使用方式],選取 [ 簽章]。
- 選取 ,創建。
將行動識別碼設定為外部 IdP
若要讓使用者使用行動ID登入,請將IDEMIA定義為認證提供者。 此動作可確保 Azure AD B2C 透過端點進行通訊,並提供 Azure AD B2C 用於驗證使用者生物特徵認證的宣告。
若要將 IDEMIA 定義為宣告提供者,請將它新增至原則延伸檔案中的 ClaimsProvider 元素。
<TechnicalProfile Id="Idemia-Oauth2">
<DisplayName>IDEMIA</DisplayName>
<Description>Login with your IDEMIA identity</Description>
<Protocol Name="OAuth2" />
<Metadata>
<Item Key="METADATA">https://idp.XXXX.net/oxauth/.well-known/openid-configuration</Item>
<!-- Update the Client ID below to the Application ID -->
<Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item>
<Item Key="response_types">code</Item>
<Item Key="scope">openid id_basic mt_scope</Item>
<Item Key="response_mode">form_post</Item>
<Item Key="HttpBinding">POST</Item>
<Item Key="UsePolicyInRedirectUri">false</Item>
<Item Key="token_endpoint_auth_method">client_secret_basic</Item>
<Item Key="ClaimsEndpoint">https://idp.XXXX.net/oxauth/restv1/userinfo</Item>
<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item>
</Metadata>
<CryptographicKeys>
<Key Id="client_secret" StorageReferenceId="B2C_1A_IdemiaAppSecret" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="acr" PartnerClaimType="acr_values" DefaultValue="loa-2" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
<OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid" />
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName1" />
<OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="lastName1" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
<OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="idemia" />
<OutputClaim ClaimTypeReferenceId="documentId" />
<OutputClaim ClaimTypeReferenceId="address1" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
<OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
<OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
<OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
</TechnicalProfile>
將client_id設定為應用程式註冊中的應用程式識別碼。
| 房產 | 說明 |
|---|---|
| Scope | 針對OpenID Connect(OIDC),最低需求是將 scope 參數設定為 openid。 將更多範圍附加為以空格分隔的清單。 |
| redirect_uri | 此位置是使用者代理程式將授權碼傳送至 Azure AD B2C 的位置。 |
| response_type(回應類型) | 針對授權碼流程,選取 [程式碼] |
| acr_values | 此參數會控制用戶必須在驗證期間執行的驗證方法。 |
選取下列其中一個值:
| 參數值 | 對使用者驗證程序的影響 |
|---|---|
loa-2 |
以加密為基礎的 Microsoft Entra 多重身份驗證僅限於此 |
loa-3 |
以密碼編譯為基礎的 MFA,加上另一個因素 |
loa-4 |
以密碼編譯為基礎的 MFA,加上使用者執行 PIN 和生物特徵辨識驗證 |
/userinfo 端點會提供授權要求中所要求的範圍宣告。 針對 <mt_scope>,有諸如名字、姓氏和駕照編號等宣告,還有其他項目。 針對範圍設定的宣告會發佈在探索 API 的scope_to_claims_mapping 區段中。 Azure AD B2C 要求宣告端點的宣告,並傳回 OutputClaims 元素中的宣告。 您可能需要將原則中的宣告名稱對應到 IdP 中的名稱。 在 ClaimSchema 元素中定義宣告類型:
<ClaimType Id="documentId">
<DisplayName>documentId</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="address1">
<DisplayName>address</DisplayName>
<DataType>string</DataType>
</ClaimType>
新增使用者旅程圖
針對這些指示,會設定 IdP,但不會在任何登入頁面中。 如果您沒有自定義使用者旅程圖,請複製範本使用者旅程圖。
- 從入門套件開啟
TrustFrameworkBase.xml檔案。 - 找出並複製
UserJourneys元素的內容,其中包含ID=SignUpOrSignIn。 - 開啟
TrustFrameworkExtensions.xml。 - 找出 UserJourneys 元素。 如果沒有元素,新增一個。
- 將 UserJourney 元素的內容貼上為 UserJourneys 元素的子系。
- 重新命名使用者旅程識碼。 例如:
ID=CustomSignUpSignIn。
將 IdP 新增至使用者旅程圖
如果有使用者旅程圖,請將新的 IdP 新增至其中。 首先新增一個登入按鈕,然後將它連結到一個動作,這是您所建立的技術設定檔。
- 在使用者旅程圖中,尋找具有 Type=
CombinedSignInAndSignUp或 Type=ClaimsProviderSelection的協調流程步驟元素。 這通常是第一個協調流程步驟。 ClaimsProviderSelections 元素包含使用者用來登入的 IdP 清單。 元素控件的順序是使用者看到登入按鈕的順序。 - 新增 ClaimsProviderSelection XML 元素。
- 將 TargetClaimsExchangeId 值設定為易記名稱。
- 新增 ClaimsExchange 元素。
- 將識別碼設定為目標宣告交換識別碼的值。
- 將 TechnicalProfileReferenceId 值更新為您所建立的技術設定檔識別碼。
下列 XML 示範使用 IdP 進行使用者旅程的前兩個協調步驟:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="IdemiaExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="IdemiaExchange" TechnicalProfileReferenceId="Idemia-Oauth2" />
</ClaimsExchanges>
</OrchestrationStep>
設定信賴憑證者原則
信賴憑證者原則 (例如 SignUpSignIn.xml) 指定 Azure AD B2C 執行的使用者旅程圖。
- 在信賴憑證者中找出 DefaultUserJourney 元素。
- 更新 ReferenceId,使其符合您在其中新增 IdP 的使用者旅程圖識別碼。
在下列範例中,針對 CustomSignUpOrSignIn 使用者旅程圖,將 ReferenceId 設定為 CustomSignUpOrSignIn。
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
上傳自定義原則
請使用與您的 Azure AD B2C 租戶相關的目錄,以便完成以下指示。
登入 Azure 入口網站。
在入口網站工具列中,選取 [目錄 + 訂用帳戶]。
在 [ 入口網站設定] 的 [目錄 + 訂 用帳戶] 頁面上,於 [ 目錄名稱] 清單中,尋找您的 Azure AD B2C 目錄。
選取 [切換]。
在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
在 [ 原則] 底下,選取 [ 身分識別體驗架構]。
選取上傳客製化政策。
依下列順序上傳您變更的兩個原則檔案:
- 擴充原則,例如
TrustFrameworkExtensions.xml - 信賴憑證者原則,例如
SignUpSignIn.xml。
- 擴充原則,例如
測試您的自定義原則
- 選取您的信賴憑證者原則,例如
B2C_1A_signup_signin。 - 針對 [應用程式],選取您註冊的 Web 應用程式。
-
https://jwt.ms會出現在 [回復 URL] 中。 - 選取 [立即執行]。
- 從註冊或登入頁面,選取 [ IDEMIA]。
- 瀏覽器會重新導向至
https://jwt.ms。 請參閱 Azure AD B2C 所傳回的令牌內容。
深入瞭解: 教學課程:在 Azure AD B2C 中註冊 Web 應用程式
後續步驟
- Azure AD B2C 自定義原則概觀
- 教學課程:在 Azure AD B2C 中建立使用者流程和自定義原則
- 移至 idemia.com 以了解行動識別碼:以更高的隱私權證明您的身分識別