共用方式為


使用 QQ 帳戶設置 Azure Active Directory B2C 的註冊與登入

這很重要

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

開始之前,請使用此頁面頂端的 [選擇原則類型] 選取器,選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先定義的使用者流程,或透過完全可設定的自訂原則。 此文章中所需的步驟隨各方法而異。

備註

這項功能處於公開預覽狀態。

先決條件

創建 QQ 應用

若要在 Azure Active Directory B2C (Azure AD B2C) 中為具有 QQ 帳戶的使用者啟用登錄,需要在 QQ 開發人員門戶中創建應用程式。 如果您還沒有 QQ 帳戶,可以在 上註冊 https://ssl.zc.qq.com

註冊 QQ 開發者計劃

  1. 使用您的QQ帳戶憑證登錄 QQ開發人員門戶
  2. 登錄后,請轉到 https://open.qq.com/reg 將自己註冊為開發人員。
  3. 選擇個人(個人開發者)。
  4. 輸入所需資訊,然後選擇 下一步 (next step)。
  5. 完成電子郵件驗證過程。 註冊為開發者后,您需要等待幾天才能獲得批准。

註冊 QQ 應用

  1. 移至 https://connect.qq.com/index.html
  2. 選擇 應用管理 (app management)。
  3. 選擇 建立應用 (create app) 並輸入所需資訊。
  4. 對於 授權回調域 (callback URL),請輸入 https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp。 如果您使用 自訂網域,請輸入 https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp。 將your-tenant-name替換為您的租用者名稱,並將your-domain-name替換為您的自訂網域名稱。
  5. 選擇 創建應用 (create app)。
  6. 在確認頁面上,選擇 應用管理 (app management) 以返回應用管理頁面。
  7. 選擇您建立的應用程式旁邊的 查看 (view)。
  8. 選擇 「修改 (edit)」。
  9. 複製APP IDAPP KEY。 您需要這兩個值才能將身份供應商添加到您的租戶。

將 QQ 配置為身份供應商

  1. 登入 Azure 入口網站
  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
  3. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  4. 選擇 Identity providers(身份供應商),然後選擇 QQ(預覽版)
  5. 輸入名稱。 例如,QQ。
  6. 對於 Client ID,請輸入您之前創建的 QQ 應用的 APP ID。
  7. 針對 [客戶端密碼],輸入您記錄的APP KEY。
  8. 選取 [儲存]。

將 QQ 標識提供者添加到使用者流

  1. 在您的 Azure AD B2C 租戶中,選取 使用者流程
  2. 點擊您想要添加 QQ 身份供應商的使用者流。
  3. Social identity providers(社交身份提供者)下,選擇 QQ。
  4. 選取 [儲存]。
  5. 若要測試您的原則,請選取 [ 執行使用者流程]。
  6. 針對 [應用程式],選取您先前註冊的名為 testapp1 的Web應用程式。 Reply URL 應顯示 https://jwt.ms
  7. 選取 [ 執行使用者流程 ] 按鈕。
  8. 在註冊或登錄頁面中,選擇 QQ 以使用 QQ 帳戶登錄。

如果登入程式成功,您的瀏覽器會重新導向至 https://jwt.ms,以顯示 Azure AD B2C 所傳回令牌的內容。

建立原則金鑰

您必須儲存您先前在 Azure AD B2C 租用戶中記錄的客戶端密碼。

  1. 登入 Azure 入口網站
  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租用戶。
  3. 選擇 Azure 入口網站左上角 的 [所有服務 ],然後搜尋並選取 [Azure AD B2C]。
  4. 在 [概觀] 頁面上,選取 [ 身分識別體驗架構]。
  5. 選取 [原則密鑰 ],然後選取 [ 新增]。
  6. 針對 [選項],選擇 Manual
  7. 輸入政策金鑰的名稱。 例如: QQSecret 。 前置詞 B2C_1A_ 會自動新增至金鑰的名稱。
  8. 在 [ 秘密] 中,輸入您先前記錄的客戶端密碼。
  9. 針對 [ 金鑰使用方式],選取 Signature
  10. 點擊 建立

將 QQ 配置為身份供應商

若要使用戶能夠使用 QQ 帳戶登錄,需要將該帳戶定義為 Azure AD B2C 可以通過終結點與之通信的聲明提供者。 端點提供一組宣告,供 Azure AD B2C 用來驗證特定使用者已驗證。

通過將 QQ 帳戶添加到策略擴展檔中的 ClaimsProviders 元素中,可以將該帳戶定義為聲明提供者。

  1. 開啟 TrustFrameworkExtensions.xml

  2. 尋找 ClaimsProviders 元素。 如果不存在,請在根元素底下新增它。

  3. 新增 ClaimsProvider ,如下所示:

    <ClaimsProvider>
      <Domain>qq.com</Domain>
      <DisplayName>QQ (Preview)</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="QQ-OAuth2">
          <DisplayName>QQ</DisplayName>
          <Protocol Name="OAuth2" />
          <Metadata>
            <Item Key="ProviderName">qq</Item>
            <Item Key="authorization_endpoint">https://graph.qq.com/oauth2.0/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://graph.qq.com/oauth2.0/token</Item>
            <Item Key="ClaimsEndpoint">https://graph.qq.com/oauth2.0/me</Item>
            <Item Key="scope">get_user_info</Item>
            <Item Key="HttpBinding">GET</Item>
            <Item Key="ClaimsResponseFormat">JsonP</Item>
            <Item Key="ResponseErrorCodeParamName">error</Item>
            <Item Key="external_user_identity_claim_id">openid</Item>
            <Item Key="client_id">Your QQ application ID</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_QQSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="UserId" PartnerClaimType="openid" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="qq.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          </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 並尋找 UserJourneys 元素。 如果元素不存在,新增一個。
  4. 貼上您複製的 UserJourney 元素作為 UserJourneys 元素子元素的整個內容。
  5. 重新命名使用者旅程的識別碼。 例如: Id="CustomSignUpSignIn"

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

現在您已擁有使用者旅程圖,請將新的識別提供者新增至使用者旅程圖。 您必須先新增登入按鈕,然後將按鈕連結至動作。 動作項目是您稍早建立的技術配置檔。

  1. 尋找使用者旅程中包含 Type="CombinedSignInAndSignUp"Type="ClaimsProviderSelection" 的協調流程步驟元素。 通常是第一個編排流程步驟。 ClaimsProviderSelections 元素包含使用者可以登入的識別提供者清單。 元素的順序會控制向用戶呈現的登入按鈕順序。 新增 ClaimsProviderSelection XML 元素。 將 TargetClaimsExchangeId 的值設定為易記名稱。

  2. 在下一個協調流程步驟中,新增 ClaimsExchange 元素。 將標識碼設定為目標宣告交換的標識碼值。更新TechnicalProfileReferenceId的值為您稍早建立的技術配置檔之標識碼。

下列 XML 示範使用者旅程圖的前兩個協調流程步驟與識別提供者:

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="QQExchange" TechnicalProfileReferenceId="QQ-OAuth2" />
  </ClaimsExchanges>
</OrchestrationStep>

設定信賴憑證者原則

例如 SignUpSignIn.xml 的信賴方政策,指定 Azure AD B2C 將執行的使用者流程。 尋找信賴憑證者內的DefaultUserJourney元素。 更新 ReferenceId 以符合您新增識別提供者的使用者旅程圖標識碼。

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

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

上傳自定義原則

  1. 登入 Azure 入口網站
  2. 在入口網站工具列中選取 [目錄 + 訂 用帳戶] 圖示,然後選取包含 Azure AD B2C 租使用者的目錄。
  3. 在 Azure 入口網站中,搜尋並選取 [Azure AD B2C]
  4. 在 [ 原則] 底下,選取 [ 身分識別體驗架構]。
  5. 選取 [上傳自定義原則],然後上傳您變更的兩個原則檔案,順序如下:擴充原則,例如 TrustFrameworkExtensions.xml,然後是信賴憑證者原則,例如 SignUpSignIn.xml

測試您的自定義原則

  1. 選取您的受信方政策,例如 B2C_1A_signup_signin
  2. 針對 [應用程式],選取您 先前註冊的 Web 應用程式。 Reply URL 應顯示 https://jwt.ms
  3. 選取 [ 立即執行] 按鈕。
  4. 在註冊或登錄頁面中,選擇 QQ 以使用 QQ 帳戶登錄。

如果登入程式成功,您的瀏覽器會重新導向至 https://jwt.ms,以顯示 Azure AD B2C 所傳回令牌的內容。