Поделиться через


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

Это важно

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

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

Замечание

Эта функция доступна в общедоступной предварительной версии.

Предпосылки

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

Чтобы включить вход для пользователей с учетной записью Weibo в Azure Active Directory B2C (Azure AD B2C), необходимо создать приложение на портале разработчика Weibo. Если у вас еще нет учетной записи Weibo, вы можете зарегистрироваться по https://weibo.comадресу.

  1. Войдите на портал разработчика Weibo с учетными данными учетной записи Weibo.
  2. После входа выберите отображаемое имя в правом верхнем углу.
  3. В раскрывающемся списке выберите 编辑开发者信息 (изменение сведений о разработчике).
  4. Введите необходимые сведения и выберите 提交 (отправить).
  5. Завершите процесс проверки электронной почты.
  6. Перейдите на страницу проверки подлинности.
  7. Введите необходимые сведения и выберите 提交 (отправить).

Регистрация приложения Weibo

  1. Перейдите на новую страницу регистрации приложения Weibo.
  2. Введите необходимые сведения о приложении.
  3. Выберите "создать".
  4. Скопируйте значения ключа приложения и секрета приложения. Для добавления поставщика удостоверений в тенант вам потребуется каждый из них.
  5. Отправьте необходимые фотографии и введите необходимые сведения.
  6. Выберите 保存以上信息 (save).
  7. Выберите 高级信息 (дополнительные сведения).
  8. Выберите 编辑 (изменить) рядом с полем OAuth2.0 授权设置 (URL-адрес перенаправления).
  9. В поле OAuth2.0 授权设置 (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 личным доменом.
  10. Выберите 提交 (отправить).

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

  1. Войдите на портал Azure с учетной записью, которая имеет по крайней мере права администратора внешнего поставщика удостоверений .
  2. Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.
  3. Выберите все службы в левом верхнем углу портала Azure, найдите и выберите Azure AD B2C.
  4. Выберите поставщики удостоверений, а затем выберите Weibo (предварительная версия).
  5. Введите Имя. Например, Weibo.
  6. В поле идентификатора клиента введите ключ приложения Weibo, созданного ранее.
  7. В поле Секрет клиента введите секрет приложения, записанный ранее.
  8. Нажмите кнопку "Сохранить".

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

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

Если процесс входа выполнен успешно, браузер перенаправляется на 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. Введите имя для ключа политики. Например: WeiboSecret. Префикс B2C_1A_ добавляется автоматически в имя ключа.
  8. В поле Secret введите ваш секрет клиента, который вы записали ранее.
  9. Для использования ключа выберите Signature.
  10. Нажмите кнопку Создать.

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

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

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

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

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

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

    <ClaimsProvider>
      <Domain>weibo.com</Domain>
      <DisplayName>Weibo (Preview)</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Weibo-OAuth2">
          <DisplayName>Weibo</DisplayName>
          <Protocol Name="OAuth2" />
          <Metadata>
            <Item Key="ProviderName">weibo</Item>
            <Item Key="authorization_endpoint">https://api.weibo.com/oauth2/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://api.weibo.com/oauth2/access_token</Item>
            <Item Key="ClaimsEndpoint">https://api.weibo.com/2/account/get_uid.json</Item>
            <Item Key="scope">email</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="external_user_identity_claim_id">uid</Item>
            <Item Key="client_id">Your Weibo application ID</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_WeiboSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="numericUserId" PartnerClaimType="uid" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="weibo.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="displayName" DefaultValue="Weibo User" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="UserId" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateIssuerUserId" />
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    <ClaimsProvider>
    
  4. Задайте client_id идентификатору приложения из регистрации приложения.

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

Добавить преобразования утверждений

Технический профиль GitHub требует добавления преобразований утверждений CreateIssuerUserId в список ClaimsTransformations. Если в файле нет элемента ClaimsTransformations , добавьте родительские XML-элементы, как показано ниже. Преобразования утверждений также требуют нового типа утверждения, определенного с именем numericUserId.

  1. Найдите элемент BuildingBlocks . Если элемент не существует, добавьте его.
  2. Найдите элемент ClaimsSchema . Если элемент не существует, добавьте его.
  3. Добавьте утверждение numericUserId в элемент ClaimsSchema .
  4. Найдите элемент ClaimsTransformations . Если элемент не существует, добавьте его.
  5. Добавьте преобразования утверждений CreateIssuerUserId в элемент ClaimsTransformations.
<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="numericUserId">
      <DisplayName>Numeric user Identifier</DisplayName>
      <DataType>long</DataType>
    </ClaimType>
  </ClaimsSchema>
  <ClaimsTransformations>
    <ClaimsTransformation Id="CreateIssuerUserId" TransformationMethod="ConvertNumberToStringClaim">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="numericUserId" TransformationClaimType="inputClaim" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="outputClaim" />
      </OutputClaims>
    </ClaimsTransformation>
  </ClaimsTransformations>
</BuildingBlocks>

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

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

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="WeiboExchange" TechnicalProfileReferenceId="Weibo-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. В разделе "Политики" выберите Identity Experience Framework.
  5. Выберите " Отправить настраиваемую политику", а затем отправьте два измененных файла политики в следующем порядке: политика расширения, например TrustFrameworkExtensions.xml, политика проверяющей стороны, например SignUpSignIn.xml.

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

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

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