Настройка регистрации и входа с помощью учетной записи SwissID с помощью Azure Active Directory B2C

Это важно

Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".

Прежде чем начать, используйте селектор типа политики в верхней части этой страницы, чтобы выбрать тип политики, которую вы настроите. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.

Из этой статьи вы узнаете, как регистрироваться и входить клиентам с учетными записями SwissID в приложениях с помощью Azure Active Directory B2C (Azure AD B2C). Вы добавляете swissID в потоки пользователя или настраиваемую политику с помощью протокола OpenID Connect. Дополнительные сведения см. в руководстве по интеграции SwissID — OpenID Connect.

Предпосылки

Создание приложения SwissID

Чтобы включить вход пользователей с учетной записью SwissID в Azure AD B2C, необходимо создать приложение. Чтобы создать приложение SwissID, выполните следующие действия.

  1. Обратитесь в службу поддержки Бизнес-партнера SwissID.

  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-tenant-name именем клиента и your-domain-name личным доменом.
    Метод проверки подлинности конечной точки токена client_secret_post
  3. После регистрации приложения следующие сведения будут предоставлены швейцарским идентификатором. Используйте эти сведения для настройки потока пользователя или настраиваемой политики.

    Ключ Замечание
    Окружающая среда Общеизвестная конечная точка конфигурации SwissID OpenId. Например: https://login.sandbox.pre.swissid.ch/idp/oauth2/.well-known/openid-configuration.
    Идентификатор клиента Идентификатор клиента SwissID. Например: 00001111-aaaa-2222-bbbb-3333cccc4444.
    Пароль Секрет клиента SwissID.

Настройка SwissID в качестве поставщика удостоверений

  1. Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.

  2. Выберите все службы в левом верхнем углу портала Azure, а затем найдите и выберите Azure AD B2C.

  3. Выберите поставщики удостоверений и выберите новый поставщик OpenID Connect.

  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. В разделе сопоставления утверждений поставщика удостоверений выберите следующие утверждения:

    • Идентификатор пользователя: sub
    • Заданное имя: given_name
    • Фамилия: family_name
    • Электронная почта: электронная почта
  12. Нажмите кнопку "Сохранить".

Добавьте поставщика удостоверений SwissID в поток пользователя

На этом этапе поставщик удостоверений SwissID был настроен, но он еще не доступен на любой из страниц входа. Чтобы добавить поставщика удостоверений SwissID в пользовательский поток:

  1. В клиенте Azure AD B2C выберите потоки пользователей.
  2. Щелкните поток пользователя, который требуется добавить поставщик удостоверений SwissID.
  3. В разделе поставщиков удостоверений социальных сетей выберите SwissID.
  4. Нажмите кнопку "Сохранить".
  5. Чтобы протестировать вашу политику, выберите Запустить поток пользователя.
  6. Для приложения выберите веб-приложение с именем testapp1 , которое вы ранее зарегистрировали. В поле 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. На странице "Обзор" выберите Identity Experience Framework.
  5. Выберите ключи политики и нажмите кнопку "Добавить".
  6. В разделе "Параметры" выберите Manual.
  7. Введите имя для ключа политики. Например: SwissIDSecret. Префикс B2C_1A_ добавляется автоматически в имя ключа.
  8. В поле Secret введите секрет клиента SwissID.
  9. Для использования ключа выберите Signature.
  10. Нажмите кнопку Создать.

Настройка SwissID в качестве поставщика удостоверений

Чтобы пользователи могли войти с помощью учетной записи SwissID, необходимо определить учетную запись в качестве поставщика утверждений, с которым Azure AD B2C может взаимодействовать через конечную точку. Конечная точка предоставляет набор утверждений, используемых Azure AD B2C для проверки подлинности определенного пользователя.

Вы можете определить учетную запись SwissID в качестве поставщика утверждений, добавив ее в элемент 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. Найдите и скопируйте все содержимое элемента UserJourney , который включает в себя Id="SignUpOrSignIn".
  3. Откройте TrustFrameworkExtensions.xml и найдите элемент UserJourneys . Если элемент не существует, добавьте его.
  4. Вставьте все содержимое элемента UserJourney , скопированного в качестве дочернего элемента UserJourneys .
  5. Переименуйте идентификатор пути пользователя. Например: Id="CustomSignUpSignIn".

Добавьте поставщика удостоверений в путь пользователя

Теперь, когда у вас есть путь пользователя, добавьте нового поставщика идентификации в этот путь. Сначала вы добавляете кнопку входа, а затем связываете кнопку с действием. Действие — это технический профиль, который вы создали ранее.

  1. Найдите элемент шага оркестрации, который включает в себя Type="CombinedSignInAndSignUp" или Type="ClaimsProviderSelection" в процессе работы пользователя. Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений, с которыми пользователь может войти. Порядок элементов определяет порядок кнопок входа, представленных пользователю. Добавьте XML-элемент ClaimsProviderSelection . Задайте для параметра TargetClaimsExchangeId понятное имя.

  2. На следующем шаге оркестрации добавьте элемент ClaimsExchange . Установите Id на значение идентификатора целевого обмена утверждениями. Обновите значение 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. В разделе "Политики" выберите Identity Experience Framework.
  5. Выберите " Отправить настраиваемую политику", а затем отправьте два измененных файла политики в следующем порядке: политика расширения, например TrustFrameworkExtensions.xml, политика проверяющей стороны, например SignUpSignIn.xml.

Проверка настраиваемой политики

  1. Выберите политику доверенной стороны, например B2C_1A_signup_signin.
  2. Для приложения выберите веб-приложение, которое вы ранее зарегистрировали. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.
  3. Нажмите кнопку "Запустить сейчас ".
  4. На странице регистрации или входа выберите SwissID , чтобы войти с помощью учетной записи SwissID.

Если процесс входа выполнен успешно, браузер перенаправляется на https://jwt.ms, где отображается содержимое токена, возвращаемого Azure AD B2C.

Переход в продакшн

SwissID IdP предоставляет предэксплуатационную и эксплуатационную среду. В конфигурации, описанной в этой статье, используется предпроцессная среда. Чтобы использовать рабочую среду, выполните следующие действия.

  1. Обратитесь в службу поддержки SwissId для рабочей среды.
  2. Обновите поток пользователя или настраиваемую политику с помощью URI известной конечной точки конфигурации.

Дальнейшие шаги

Узнайте, как передать токен SwissID вашему приложению.