Share via


使用 Azure Active Directory B2C 設定使用 SwissID 帳戶註冊和登入

開始之前,請使用 [選擇原則類型 選取器] 來選擇您要設定的原則類型。 Azure Active Directory B2C 提供兩種方法來定義使用者如何與您的應用程式互動:透過預先 定義的使用者流程 ,或透過完全可設定 的自定義原則。 本文中每個方法所需的步驟都不同。

在本文中,您將瞭解如何使用 Azure Active Directory B2C(Azure AD B2C),為應用程式中具有 SwissID 帳戶的客戶提供註冊和登入。 您可以使用 OpenID 連線 通訊協定,將 SwissID 新增至使用者流程或自定義原則。 如需詳細資訊,請參閱 SwissID Integration Guidelines – OpenID 連線

必要條件

建立 SwissID 應用程式

若要在 Azure AD B2C 中為具有 SwissID 帳戶的使用者啟用登入,您需要建立應用程式。 若要建立 SwissID 應用程式,請遵循下列步驟:

  1. 請連絡 SwissID Business Partner 支持人員。

  2. 使用 SwissID 註冊之後,請提供 Azure AD B2C 租使用者的相關信息:

    索引鍵 注意
    重新導向 URI https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp提供 URI。 如果您使用 自訂網域,請輸入 https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp。 取代為您的租使用者名稱,並以your-domain-name您的自訂網域取代 your-tenant-name
    令牌端點驗證方法 client_secret_post
  3. 註冊應用程式之後,瑞士標識碼將提供下列資訊。 使用這項資訊來設定您的使用者流程或自定義原則。

    索引鍵 注意
    環境 SwissID OpenId 已知的組態端點。 例如: https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration
    用戶端識別碼 SwissID 用戶端標識碼。 例如: 11111111-2222-3333-4444-555555555555
    密碼 SwissID 用戶端密碼。

將 SwissID 設定為識別提供者

  1. 如果您有多個租使用者的存取權,請選取頂端功能表中的 [設定] 圖示,從 [目錄 + 訂用帳戶] 功能表切換至您的 Azure AD B2C 租使用者。

  2. 選擇 Azure 入口網站 左上角的 [所有服務],然後搜尋並選取 [Azure AD B2C]。

  3. 選取 [識別提供者],然後選取 [新增 OpenID 連線 提供者]。

  4. 輸入名稱。 例如,輸入 SwissID

  5. 針對 [元數據 URL],輸入 URL SwissID OpenId 已知組態端點。 例如:

    https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration
    
  6. 針對 [ 用戶端識別符],輸入 SwissID 用戶端識別碼。

  7. 針對 [客戶端密碼],輸入 SwissID 用戶端密碼。

  8. 針對 [ 範圍],輸入 openid profile email

  9. 保留 [回應類型] 和 [回應模式] 的預設值。

  10. (選擇性)針對 [ 網域提示],輸入 swissid.com。 如需詳細資訊,請參閱 使用 Azure Active Directory B2C 設定直接登入。

  11. 在 [識別提供者宣告對應] 底下,選取下列宣告:

    • 用戶標識碼
    • 指定名稱given_name
    • 姓氏family_name
    • 電子郵件電子郵件
  12. 選取 [儲存]。

將 SwissID 識別提供者新增至使用者流程

此時,已設定 SwissID 識別提供者,但尚未在任何登入頁面中提供。 若要將 SwissID 識別提供者新增至使用者流程:

  1. 在您的 Azure AD B2C 租使用者中,選取 [ 使用者流程]。
  2. 按兩下您要新增 SwissID 識別提供者的使用者流程。
  3. 在 [ 社交識別提供者] 底下,選取 [SwissID]。
  4. 選取 [儲存]。
  5. 若要測試您的原則,請選取 [ 執行使用者流程]。
  6. 針對 [ 應用程式],選取您先前註冊的名為 testapp1 的Web應用程式。 回覆 URL 應該會顯示 https://jwt.ms
  7. 選取 [ 執行使用者流程 ] 按鈕。
  8. 從 [註冊或登入] 頁面中,選取 [SwissID] 以使用 SwissID 帳戶登入。

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

建立原則金鑰

您必須將您從 SwissID 收到的用戶端密碼儲存在 Azure AD B2C 租使用者中。

  1. 登入 Azure 入口網站
  2. 請確定您使用的是包含 Azure AD B2C 租用戶的目錄。 選取頂端功能表中的 [ 目錄 + 訂 用帳戶] 篩選,然後選擇包含您租用戶的目錄。
  3. 選擇 Azure 入口網站 左上角的 [所有服務],然後搜尋並選取 [Azure AD B2C]。
  4. 在 [概觀] 頁面上,選取 [ 身分識別體驗架構]。
  5. 選取 [ 原則密鑰 ],然後選取 [ 新增]。
  6. 針對 [ 選項],選擇 Manual
  7. 輸入 原則金鑰的 [名稱 ]。 例如: SwissIDSecret 。 前置詞 B2C_1A_ 會自動新增至金鑰的名稱。
  8. 在 [秘密] 中,輸入您的 SwissID 用戶端密碼。
  9. 針對 [ 金鑰使用方式],選取 Signature
  10. 按一下 [建立]。

將 SwissID 設定為識別提供者

若要讓使用者使用 SwissID 帳戶登入,您必須將帳戶定義為 Azure AD B2C 可以透過端點通訊的宣告提供者。 端點提供一組宣告,供 Azure AD B2C 用來驗證特定使用者已驗證。

您可以將瑞士標識碼帳戶定義為宣告提供者,方法是將它新增至 原則擴充檔案中的 ClaimsProviders 元素。

  1. 開啟 TrustFrameworkExtensions.xml

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

  3. 新增 ClaimsProvider,如下所示:

    <ClaimsProvider>
      <Domain>SwissID.com</Domain>
      <DisplayName>SwissID</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SwissID-OpenIdConnect">
          <DisplayName>SwissID</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration</Item>
            <Item Key="client_id">Your Swiss client ID</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>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_SwissIDSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="email" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateDisplayName" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. 將client_id設定為 SwissID 用戶端識別碼。

  5. 儲存檔案。

新增使用者旅程圖

此時,識別提供者已設定,但尚未在任何登入頁面中提供。 如果您沒有自己的自定義使用者旅程圖,請建立現有範本使用者旅程圖的重複項目,否則請繼續進行下一個步驟。

  1. 從入門套件開啟 TrustFrameworkBase.xml 檔案。
  2. 尋找並複製包含 Id="SignUpOrSignIn"之 UserJourney 元素的整個內容
  3. 開啟 TrustFrameworkExtensions.xml 並尋找 UserJourneys 元素。 如果專案不存在,請新增一個。
  4. 貼上您複製為 UserJourneys 元素子系之 UserJourney 元素整個內容。
  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="SwissIDExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="SwissIDExchange" TechnicalProfileReferenceId="SwissID-OpenIdConnect" />
  </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 應用程式。 回復 URL 應該會顯示 https://jwt.ms
  3. 選取 [ 立即 執行] 按鈕。
  4. 從 [註冊或登入] 頁面中,選取 [SwissID] 以使用 SwissID 帳戶登入。

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

移至生產環境

SwissID IdP 提供生產前和生產環境。 本文所述的組態會使用生產階段前環境。 若要使用生產環境,請遵循下列步驟:

  1. 請連絡 SwissId 支援以取得生產環境。
  2. 使用已知組態端點的 URI 更新您的使用者流程或自訂原則。

下一步

瞭解如何將 SwissID 權杖傳遞至您的應用程式