Настройка входа для определенной организации Microsoft Entra в Azure Active Directory B2C

Это важно

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

В этой статье показано, как включить вход для пользователей из определенной организации Microsoft Entra с помощью потока пользователя в Azure AD B2C.

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

Замечание

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

Предпосылки

Проверка домена издателя приложения

С ноября 2020 года новые регистрации приложений отображаются как непроверенные в запросе согласия пользователя, если домен издателя приложения подтверждени если удостоверение компании было подтверждено в Microsoft Partner Network и связано с приложением. (Дополнительные сведения об этом изменении.) Обратите внимание, что для потоков пользователей Azure AD B2C домен издателя отображается только при использовании учетной записи Майкрософт или другого клиента Microsoft Entra в качестве поставщика удостоверений. Чтобы удовлетворить эти новые требования, выполните следующие действия.

  1. Подтвердите подлинность вашей компании, используя учетную запись Microsoft Partner Network (MPN). Этот процесс используется для проверки сведений о вашей компании и основном контактном лице компании.
  2. Выполните процесс проверки издателя, чтобы связать учетную запись MPN с регистрацией приложения с помощью одного из следующих параметров:

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

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

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

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

  3. На портале Azure найдите и выберите идентификатор Microsoft Entra.

  4. В меню слева в разделе "Управление" выберите "Регистрация приложений".

  5. Выберите +Создать регистрацию.

  6. Введите Имя для вашего приложения. Например: Azure AD B2C App.

  7. Примите выбор учетных записей только в этом каталоге организации (каталог по умолчанию — для одного клиента) для этого приложения.

  8. Для URI перенаправления примите значение Web и введите следующий URL-адрес во всех строчных буквах, где your-B2C-tenant-name заменяется именем клиента Azure AD B2C.

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    Например: https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp.

    Если вы используете личный домен, введите https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Замените your-domain-name личным доменом и your-tenant-name именем клиента.

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

  10. Выберите Сертификаты & Секреты, а затем выберите Новый секрет клиента.

  11. Введите описание секрета, выберите срок действия и нажмите кнопку "Добавить". Запишите значение секрета для использования на следующем шаге.

Настроить Microsoft Entra ID в качестве поставщика идентификации

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

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

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

  4. Введите Имя. Например, введите идентификатор Microsoft Entra Contoso.

  5. Для URL-адреса метаданных введите следующий URL, заменив {tenant} на доменное имя вашего клиента Microsoft Entra:

    https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration
    

Например: https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration. Если вы используете личный домен, замените contoso.com его личным доменом https://login.microsoftonline.com/contoso.com/v2.0/.well-known/openid-configuration.

  1. Для идентификатора клиента введите идентификатор приложения, записанный ранее.

  2. Для секрета клиента введите значение секрета клиента, записанное ранее.

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

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

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

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

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

Добавьте провайдера идентификаций Microsoft Entra в рабочий процесс пользователя

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

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

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

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

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

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

Настроить Microsoft Entra ID в качестве поставщика идентификации

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

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

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

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

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

    <ClaimsProvider>
      <Domain>Contoso</Domain>
      <DisplayName>Login using Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADContoso-OpenIdConnect">
          <DisplayName>Contoso Employee</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration</Item>
            <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile</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_ContosoAppSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. В элементе ClaimsProvider измените значение домена на уникальное значение, которое можно использовать для отличия от других поставщиков удостоверений. Например, Contoso. Вы не помещаете .com на конец этого параметра домена.

  5. В элементе ClaimsProvider обновите значение DisplayName до понятного имени поставщика утверждений. Это значение в настоящее время не используется.

Обновление технического профиля

Чтобы получить маркер из конечной точки Microsoft Entra, необходимо определить протоколы, которые Azure AD B2C должен использовать для взаимодействия с идентификатором Microsoft Entra. Это делается внутри элемента TechnicalProfileв ClaimsProvider.

  1. Обновите идентификатор элемента TechnicalProfile . Этот идентификатор используется для ссылки на этот технический профиль из других частей политики, например AADContoso-OpenIdConnect.
  2. Обновите значение displayName. Это значение будет отображаться на кнопке входа на экране входа.
  3. Обновите значение для Описание.
  4. Идентификатор Microsoft Entra использует протокол OpenID Connect, поэтому убедитесь, что значение для протокол равно OpenIdConnect.
  5. Задайте для параметра METADATA значение https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration, где tenant-name является именем арендатора Microsoft Entra. Например: https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration
  6. Задайте client_id идентификатору приложения из регистрации приложения.
  7. В разделе CryptographicKeys обновите значение StorageReferenceId до имени ключа политики, созданного ранее. Например: B2C_1A_ContosoAppSecret.

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

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

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADContosoExchange" TechnicalProfileReferenceId="AADContoso-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. На странице регистрации или входа выберите Contoso Employee для входа с помощью учетной записи Microsoft Entra Contoso.

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

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

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

  1. Войдите на портал Azure с помощью клиента Microsoft Entra организации. Или, если вы уже выполнили вход, убедитесь, что вы используете директорию, содержащую арендатора Microsoft Entra вашей организации (например, Contoso):
    1. На панели инструментов портала выберите значок Каталоги и подписки.
    2. Параметры портала | На странице каталогов и подписок найдите каталог Microsoft Entra в списке имен каталогов , а затем выберите переключатель.
  2. На портале Azure найдите и выберите идентификатор Microsoft Entra.
  3. В меню слева в разделе "Управление" выберите "Регистрация приложений".
  4. Выберите приложение, для которого нужно настроить необязательные утверждения в списке, например Azure AD B2C App.
  5. В разделе "Управление" выберите конфигурацию токена.
  6. Выберите "Добавить необязательное утверждение".
  7. Для типа токена выберите идентификатор.
  8. Выберите необязательные утверждения для добавления family_name и given_name.
  9. Нажмите кнопку "Добавить". Если появится разрешение профиля Microsoft Graph (необходимо, чтобы утверждения появились в токене), включите его, а затем выберите Добавить еще раз.

[Необязательно] Проверка подлинности приложения

Проверка издателя помогает пользователям понять подлинность зарегистрированного приложения. Проверенное приложение означает, что издатель приложения проверил свою личность с помощью Microsoft Partner Network (MPN). Узнайте, как пометить приложение меткой "Проверенный издатель".

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

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