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


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

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

Примечание.

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

Предпосылки

Создание приложения учетной записи Майкрософт

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

  1. Войдите на портал Azure.

  2. Если у вас есть доступ к нескольким арендаторам, щелкните значок Настройки в верхнем меню, чтобы переключиться на арендатора Microsoft Entra ID из меню Каталоги и подписки.

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

  4. Выберите Новая регистрация.

  5. Введите Имя для вашего приложения. Например, MSAapp1.

  6. В разделе "Поддерживаемые типы учетных записей" выберите личные учетные записи Майкрософт (например, Skype, Xbox).

    Дополнительные сведения о различных типах учетных записей см. в Быстрый старт: Регистрация приложения на платформе идентификации Microsoft.

  7. В разделе URI перенаправления (необязательно) выберите веб-сайт и введите 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 на имя арендатора Azure AD B2C и your-domain-name на настраиваемый домен.

  8. Нажмите кнопку Зарегистрировать.

  9. Запишите идентификатор приложения (клиента), показанный на странице обзора приложения. Вам потребуется идентификатор клиента при настройке поставщика удостоверений в следующем разделе.

  10. Выбор сертификатов и секретов

  11. Щелкните "Новый секрет клиента"

  12. Введите описание секрета, например пароль приложения 1, а затем нажмите кнопку "Добавить".

  13. Запишите пароль приложения, указанный в столбце «Значение». Вам нужен секрет клиента при настройке поставщика удостоверений в следующем разделе.

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

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

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

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

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

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

Настройка необязательных утверждений

Если вы хотите получить family_namegiven_name утверждения из идентификатора Microsoft Entra, можно настроить необязательные утверждения для приложения в пользовательском интерфейсе портала Azure или манифесте приложения. Дополнительные сведения см. в разделе "Как предоставить необязательные утверждения для приложения Microsoft Entra".

  1. Войдите на портал Azure. Найдите и выберите Microsoft Entra ID.
  2. В разделе "Управление" выберите "Регистрация приложений".
  3. Выберите приложение, для которого нужно настроить необязательные утверждения в списке.
  4. В разделе "Управление" выберите конфигурацию токена (предварительная версия).
  5. Выберите Добавить необязательное утверждение.
  6. Выберите тип токена, который требуется настроить.
  7. Выберите необязательные утверждения для добавления.
  8. Нажмите кнопку Добавить.

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

Теперь, когда вы создали приложение в клиенте Microsoft Entra, необходимо сохранить секрет клиента этого приложения в клиенте Azure AD B2C.

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

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

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

Вы можете определить Microsoft Entra ID как поставщика утверждений, добавив элемент ClaimsProvider в файл расширения вашей политики.

  1. Откройте файл политики TrustFrameworkExtensions.xml .

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

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

    <ClaimsProvider>
      <Domain>live.com</Domain>
      <DisplayName>Microsoft Account</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="MSA-MicrosoftAccount-OpenIdConnect">
          <DisplayName>Microsoft Account</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="ProviderName">https://login.live.com</Item>
            <Item Key="METADATA">https://login.live.com/.well-known/openid-configuration</Item>
            <Item Key="response_types">code</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="client_id">Your Microsoft application client ID</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_MSASecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
            <OutputClaim ClaimTypeReferenceId="email" />
          </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идентификатором приложения (клиента) приложения Microsoft Entra, записанного ранее.

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

Теперь вы настроили политику, чтобы Azure AD B2C знал, как взаимодействовать с приложением учетной записи Майкрософт в идентификаторе Microsoft Entra.

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

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

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="MicrosoftAccountExchange" TechnicalProfileReferenceId="MSA-MicrosoftAccount-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. На странице регистрации или входа выберите Корпорацию Майкрософт для входа с помощью учетной записи Майкрософт.

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