這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
開始之前,請使用此頁面頂端的 [選擇原則類型] 選取器,選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先定義的使用者流程,或透過完全可設定的自訂原則。 此文章中所需的步驟隨各方法而異。
先決條件
- 建立使用者流程,讓使用者能夠註冊並登入您的應用程式。
- 註冊 Web 應用程式。
- 完成開始使用 Active Directory B2C 中的自定義原則中的步驟。 本教學課程會引導您更新自定義原則檔案,以使用您的 Azure AD B2C 租用戶設定。
- 註冊 Web 應用程式。
建立應用程式
若要為 Azure AD B2C 中具有 X 帳戶的使用者啟用登入,您需要建立 X 應用程式。 如果您還沒有 X 帳戶,可以在 註冊 https://x.com/signup
。 您也需要 申請開發人員帳戶。 如需詳細資訊,請參閱 申請存取權限。
- 使用您的 X 帳戶認證登入 X 開發人員入口網站 。
- 選取 [+ 建立專案] 按鈕。
- 在 [項目名稱] 索引標籤下,輸入您專案的慣用名稱,然後選取 [ 下一步] 按鈕。
- 在 [使用案例] 索引標籤下,選取您慣用的使用案例,然後選取 [ 下一步]。
- 在 [專案描述] 索引標籤下,輸入您的專案描述,然後選取 [ 下一步] 按鈕。
- 在 [應用程式名稱] 索引標籤下,輸入應用程式的名稱,例如 azureadb2c,然後選取 [ 下一步] 按鈕。
- 在 [ 金鑰與令牌 ] 索引標籤下,複製 [API 金鑰 ] 和 [ API 金鑰密碼] 的值。 您稍後會使用這些來進行設定。
- 選取 [應用程式設定 ] 以開啟應用程式設定。
- 在頁面的下半部,在 [ 用戶驗證設定] 底下,選取 [ 設定]。
- 在 [應用程式類型] 底下,選取適當的應用程式類型,例如 Web 應用程式。
- 在 [應用程式資訊] 底下:
- 針對 [ 回呼 URI/重新導向 URL],輸入
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/your-policy-id/oauth1/authresp
。 如果您使用 自訂網域,請輸入https://your-domain-name/your-tenant-name.onmicrosoft.com/your-user-flow-Id/oauth1/authresp
。 輸入租使用者名稱和使用者流程標識碼時,請使用所有小寫字母,即使他們在 Azure AD B2C 中以大寫字母定義也一樣。 取代:-
your-tenant-name
改為您的租戶名稱。 -
your-domain-name
使用您的自訂網域。 -
your-policy-id
的使用者流程識別碼。 例如:b2c_1a_signup_signin_x
。
-
- 針對 [網站 URL],輸入
https://your-tenant.b2clogin.com
。 以您的租使用者名稱取代your-tenant
。 例如:https://contosob2c.b2clogin.com
。 如果您使用 自訂網域,請輸入https://your-domain-name
。 - (選擇性)輸入 服務條款的網址,例如
http://www.contoso.com/tos
。 原則 URL 是您需維護以提供應用程式條款及條件的網頁。 - (選擇性)輸入 隱私策略的網址,例如
http://www.contoso.com/privacy
。 原則 URL 是您需維護以提供應用程式隱私權資訊的網頁。
- 針對 [ 回呼 URI/重新導向 URL],輸入
- 選取 [儲存]。
- 使用您的 X 帳戶認證登入 X 開發人員入口網站 。
- 選取 [+ 建立專案] 按鈕。
- 在 [項目名稱] 索引標籤下,輸入您專案的慣用名稱,然後選取 [ 下一步] 按鈕。
- 在 [使用案例] 索引標籤下,選取您慣用的使用案例,然後選取 [ 下一步]。
- 在 [專案描述] 索引標籤下,輸入您的專案描述,然後選取 [ 下一步] 按鈕。
- 在 [應用程式名稱] 索引標籤下,輸入應用程式的名稱,例如 azureadb2c,然後選取 [ 下一步] 按鈕。
- 在 [ 金鑰和令牌 ] 索引標籤下,複製 API 金鑰 和 API 金鑰秘密 的值以供稍後使用。 您可以使用這兩者,將 X 設定為 Azure AD B2C 租使用者中的識別提供者。
- 選取 [應用程式設定 ] 以開啟應用程式設定。
- 在頁面的下半部,在 [ 用戶驗證設定] 底下,選取 [ 設定]。
- 在 [應用程式類型] 底下,選取適當的應用程式類型,例如 Web 應用程式。
- 在 [應用程式資訊] 底下:
- 針對 [ 回呼 URI/重新導向 URL],輸入
https://your-tenant.b2clogin.com/your-tenant-name.onmicrosoft.com/your-user-flow-name/oauth1/authresp
。 如果您使用 自訂網域,請輸入https://your-domain-name/your-tenant-name.onmicrosoft.com/your-user-flow-Id/oauth1/authresp
。 輸入租使用者名稱和使用者流程標識碼時,請使用所有小寫字母,即使他們在 Azure AD B2C 中以大寫字母定義也一樣。 取代:-
your-tenant-name
改為您的租戶名稱。 -
your-domain-name
使用您的自訂網域。 -
your-user-flow-name
的使用者流程識別碼。 例如:b2c_1_signup_signin_x
。
-
- 針對 [網站 URL],輸入
https://your-tenant.b2clogin.com
。 以您的租使用者名稱取代your-tenant
。 例如:https://contosob2c.b2clogin.com
。 如果您使用 自訂網域,請輸入https://your-domain-name
。 - 輸入 服務條款的網址,例如
http://www.contoso.com/tos
。 原則 URL 是您需維護以提供應用程式條款及條件的網頁。 - 輸入 隱私策略的網址,例如
http://www.contoso.com/privacy
。 原則 URL 是您需維護以提供應用程式隱私權資訊的網頁。
- 針對 [ 回呼 URI/重新導向 URL],輸入
- 選取 [儲存]。
將 X 設定為識別提供者
- 使用至少具有外部識別提供者系統管理員許可權的帳戶登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 選擇 Azure 入口網站左上角 的 [所有服務 ],搜尋並選取 [Azure AD B2C]。
- 選取 [識別提供者],然後選取 [Twitter]。
- 輸入名稱。 例如, X。
- 針對 [用戶端識別符],輸入您稍早建立之 X 應用程式的 API 金鑰 。
- 針對 [客戶端密碼],輸入您記錄的 API 金鑰秘密 。
- 選取 [儲存]。
將 X 識別提供者新增至使用者流程
此時,已設定 X 身份提供者,但尚未在任何登入頁面上可用。 若要將 X 識別提供者新增至使用者流程:
- 在您的 Azure AD B2C 租戶中,選取 使用者流程。
- 選取您想要將 X 識別提供者新增至的使用者流程。
- 在 [社交識別提供者] 底下,選取 [Twitter]。
- 選取 [儲存]。
測試您的使用者流程
- 若要測試您的原則,請選取 [ 執行使用者流程]。
- 針對 [應用程式],選取您先前註冊的名為 testapp1 的Web應用程式。
Reply URL 應顯示
https://jwt.ms
。 - 選取 [ 執行使用者流程 ] 按鈕。
- 從 [註冊或登入] 頁面中,選取 [Twitter ] 以使用 X 帳戶登入。
建立原則金鑰
您需要將先前為 X 應用程式記錄的秘密金鑰儲存在您的 Azure AD B2C 租戶中。
- 登入 Azure 入口網站。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 在左側功能表的 [ 原則] 底下,選取 [ 身分識別體驗架構]。
- 選取 [原則密鑰 ],然後選取 [ 新增]。
- 針對 [選項],選擇
Manual
。 - 輸入政策金鑰的名稱。 例如:
XSecret
。 前置詞B2C_1A_
會自動新增至金鑰的名稱。 - 針對 [ 秘密],輸入您先前記錄的 API 金鑰秘密 值。
- 針對 [ 金鑰使用方式],選取
Signature
。 - 點擊 建立。
將 X 設定為識別提供者
為了讓使用者能夠使用 X 帳戶登入,您需要將該帳戶定義為一個宣告提供者,以便 Azure AD B2C 可以透過一個端點與其進行通訊。 端點提供一組宣告,供 Azure AD B2C 用來驗證特定使用者已驗證。
您可以將 X 帳戶定義為宣告提供者,方法是將它新增至原則擴充檔案中的 ClaimsProviders 元素。 請參閱本文先決條件中下載的自定義原則啟動套件。
開啟 TrustFrameworkExtensions.xml。
尋找 ClaimsProviders 元素。 如果不存在,請在根元素底下新增它。
新增 ClaimsProvider ,如下所示:
<ClaimsProvider> <Domain>x.com</Domain> <DisplayName>X</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Twitter-OAuth1"> <DisplayName>X</DisplayName> <Protocol Name="OAuth1" /> <Metadata> <Item Key="ProviderName">Twitter</Item> <Item Key="authorization_endpoint">https://api.twitter.com/oauth/authenticate</Item> <Item Key="access_token_endpoint">https://api.twitter.com/oauth/access_token</Item> <Item Key="request_token_endpoint">https://api.twitter.com/oauth/request_token</Item> <Item Key="ClaimsEndpoint">https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true</Item> <Item Key="ClaimsResponseFormat">json</Item> <Item Key="client_id">Your X application API key</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_TwitterSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="user_id" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="screen_name" /> <OutputClaim ClaimTypeReferenceId="email" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="twitter.com" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
請將 client_id 的值替換為您先前記錄的 API 金鑰。
儲存檔案。
新增使用者旅程圖
此時,身份提供者已設定,但尚未在任何登入頁面中可用。 如果您沒有自己的自定義使用者旅程圖,請建立現有範本使用者旅程圖的重複項目,否則請繼續進行下一個步驟。
- 從入門套件開啟 TrustFrameworkBase.xml 檔案。
- 尋找並複製包含 之
Id="SignUpOrSignIn"
元素的整個內容。 - 開啟 TrustFrameworkExtensions.xml 並尋找 UserJourneys 元素。 如果元素不存在,新增一個。
- 貼上您複製的 UserJourney 元素作為 UserJourneys 元素子元素的整個內容。
- 重新命名使用者旅程的識別碼。 例如:
Id="CustomSignUpSignIn"
。
將識別提供者新增至使用者旅程圖
現在您已擁有使用者旅程圖,請將新的識別提供者新增至使用者旅程圖。 您必須先新增登入按鈕,然後將按鈕連結至動作。 動作項目是您稍早建立的技術配置檔。
尋找使用者旅程中包含
Type="CombinedSignInAndSignUp"
或Type="ClaimsProviderSelection"
的協調流程步驟元素。 通常是第一個編排流程步驟。 ClaimsProviderSelections 元素包含使用者可以登入的識別提供者清單。 元素的順序會控制向用戶呈現的登入按鈕順序。 新增 ClaimsProviderSelection XML 元素。 將 TargetClaimsExchangeId 的值設定為易記名稱。在下一個協調流程步驟中,新增 ClaimsExchange 元素。 將標識碼設定為目標宣告交換的標識碼值。更新TechnicalProfileReferenceId的值為您稍早建立的技術配置檔之標識碼。
下列 XML 示範使用者旅程圖的前兩個協調流程步驟與識別提供者:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="TwitterExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="TwitterExchange" TechnicalProfileReferenceId="Twitter-OAuth1" />
</ClaimsExchanges>
</OrchestrationStep>
設定信賴憑證者原則
例如 SignUpSignIn.xml 的信賴方政策,指定 Azure AD B2C 將執行的使用者流程。 尋找信賴憑證者內的DefaultUserJourney元素。 更新 ReferenceId 以符合您新增識別提供者的使用者旅程圖標識碼。
在下列範例中 CustomSignUpSignIn
,針對使用者旅程圖, ReferenceId 會設定為 CustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
上傳自定義原則
- 登入 Azure 入口網站。
- 在入口網站工具列中選取 [目錄 + 訂 用帳戶] 圖示,然後選取包含 Azure AD B2C 租使用者的目錄。
- 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]。
- 在 [ 原則] 底下,選取 [ 身分識別體驗架構]。
- 選取 [上傳自定義原則],然後上傳您變更的兩個原則檔案,順序如下:擴充原則,例如
TrustFrameworkExtensions.xml
,然後是信賴憑證者原則,例如SignUpSignIn.xml
。
測試您的自定義原則
- 選取您的受信方政策,例如
B2C_1A_signup_signin
。 - 針對 [應用程式],選取您 先前註冊的 Web 應用程式。
Reply URL 應顯示
https://jwt.ms
。 - 選取 [ 立即執行] 按鈕。
- 從 [註冊或登入] 頁面中,選取 [Twitter ] 以使用 X 帳戶登入。
如果登入程式成功,您的瀏覽器會重新導向至 https://jwt.ms
,以顯示 Azure AD B2C 所傳回令牌的內容。