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

Это важно

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

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

Предпосылки

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

Чтобы включить вход для пользователей с учетной записью PingOne (Ping Identity) в Azure Active Directory B2C (Azure AD B2C), необходимо создать приложение в консоли администратора Ping Identity. Если у вас еще нет учетной записи PingOne, вы можете зарегистрироваться на сайте https://admin.pingone.com/web-portal/register.

  1. Войдите в консоль администратора Ping Identity, используя учетные данные своей учетной записи PingOne.
  2. В левом меню страницы выберите пункт Подключения, затем рядом с пунктом Приложения выберите +.
  3. На странице Новое приложение выберите веб-приложение, а затем в разделе OIDC нажмите кнопку Настроить.
  4. Введите имя приложения и нажмите кнопку Далее.
  5. В поле 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-domain-name личным доменом и your-tenant-name именем клиента. Используйте все строчные буквы при вводе имени клиента, даже если клиент определен с прописными буквами в Azure AD B2C.
  6. Выберите Сохранить и продолжить.
  7. В разделе SCOPES выберите адрес электронной почты и профиль, а затем нажмите кнопку Сохранить и продолжить.
  8. На странице атрибутов OIDC выберите Сохранить и закрыть.
  9. В списке приложений выберите созданное вами приложение.
  10. На странице Профиль приложения выполните следующие действия:
    1. Рядом с названием приложения включите приложение с помощью кнопки переключения.
    2. Скопируйте значения идентификатора клиента.
  11. Выберите вкладку Конфигурация и выполните следующие действия.
    1. Скопируйте конечную точку обнаружения OIDC.
    2. Показать и скопировать секрет Клиента.
    3. Измените режим редактирования. Затем в разделе Метод проверки подлинности конечной точки маркера измените значение на Client Secret Post и нажмите Сохранить

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

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

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

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

  4. Введите Имя. Например, введите PingOne.

  5. В поле URL-адрес метаданных введите ранее записанную конечную точку обнаружения OIDC . Рассмотрим пример.

    https://auth.pingone.eu/00000000-0000-0000-0000-000000000000/as/.well-known/openid-configuration
    
  6. В поле Идентификатор клиента введите ранее записанный идентификатор клиента.

  7. Для секрета клиентавведите секрет клиента, записанный ранее.

  8. Для области введите openid email profile.

  9. Оставьте значения по умолчанию для типа ответа и режима ответа.

  10. (Необязательно) Для указания домена введите pingone.com. Дополнительные сведения см. в статье Настройка прямого входа в систему с помощью Azure Active Directory B2C.

  11. В разделе сопоставления утверждений поставщика удостоверений выберите следующие утверждения:

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

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

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

  1. В клиенте Azure AD B2C выберите потоки пользователей.
  2. Щелкните пользовательский поток, в который вы хотите добавить поставщика удостоверений PingOne.
  3. В разделе Поставщики идентификаторов социальной информации выберите PingOne.
  4. Нажмите кнопку "Сохранить".
  5. Чтобы протестировать вашу политику, выберите Запустить поток пользователя.
  6. Для приложения выберите веб-приложение с именем testapp1 , которое вы ранее зарегистрировали. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.
  7. Нажмите на кнопку Запустить пользовательский поток.
  8. На странице регистрации или входа выберите PingOne , чтобы войти с учетной записью PingOne.

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

Создание ключа политики

Необходимо сохранить секрет клиента, записанный ранее в клиенте Azure AD B2C.

  1. Войдите на портал Azure.
  2. Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.
  3. Выберите все службы в левом верхнем углу портала Azure, а затем найдите и выберите Azure AD B2C.
  4. На странице "Обзор" выберите Identity Experience Framework.
  5. Выберите ключи политики и нажмите кнопку "Добавить".
  6. В разделе "Параметры" выберите Manual.
  7. Введите имя для ключа политики. Например: PingOneSecret. Префикс B2C_1A_ добавляется автоматически в имя ключа.
  8. В поле Secret введите ваш секрет клиента, который вы записали ранее.
  9. Для использования ключа выберите Signature.
  10. Нажмите кнопку Создать.

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

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

Вы можете определить учетную запись PingOne в качестве поставщика утверждений, добавив ее в элемент ClaimsProviders в файле расширения политики.

  1. Откройте TrustFrameworkExtensions.xml.

  2. Найдите элемент ClaimsProviders . Если он не существует, добавьте его в корневой элемент.

  3. Добавьте новый ClaimsProvider следующим образом:

    <ClaimsProvider>
      <Domain>pingone.com</Domain>
      <DisplayName>PingOne</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="PingOne-OpenIdConnect">
          <DisplayName>Ping Identity</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">Your PingOne OIDC discovery endpoint</Item>
            <Item Key="client_id">Your PingOne client ID</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid email profile</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">0</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_PingOneSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
            <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>
    
  4. Задайте в качестве METADATA метаданных конечную точку обнаружения PingOne OIDC.

  5. Установите метаданные client_id в свой идентификатор клиента PingOne.

  6. Сохраните файл.

Добавить пользовательский сценарий

На этом этапе поставщик удостоверений настроен, но он еще не доступен на любой из страниц входа. Если у вас нет собственного пользовательского пути, создайте дубликат существующего пути пользователя шаблона, в противном случае перейдите к следующему шагу.

  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="PingOneExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="PingOneExchange" TechnicalProfileReferenceId="PingOne-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. На странице регистрации или входа выберите PingOne , чтобы войти с учетной записью PingOne.

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

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

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