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

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

Для начала с помощью селектора Choose a policy type (Выбрать тип политики) выберите тип пользовательской политики. 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 из меню каталогов и подписок.

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

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

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

  6. Введите значение Name (Имя) для приложения. Например, Azure AD B2C App.

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

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

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

    • User ID: oid;
    • Display name: name;
    • Given name: given_name;
    • Surname: family_name;
    • Электронная почта: электронная почта.
  7. Выберите Сохранить.

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

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

  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 в качестве поставщика удостоверений

Чтобы пользователи могли войти с помощью учетной записи 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">00000000-0000-0000-0000-000000000000</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 укажите для Domain уникальное значение, позволяющее отличить этот поставщик удостоверений от других. Например Contoso. Не помещайте .com в конец этого параметра домена.

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

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

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

  1. Обновите идентификатор элемента TechnicalProfile. Этот идентификатор используется для ссылки на технический профиль из других частей политики, например AADContoso-OpenIdConnect.
  2. Обновите значение DisplayName. Это значение будет отображаться на кнопке входа на экране входа в систему.
  3. Обновите значение Description.
  4. Идентификатор Microsoft Entra использует протокол OpenID Подключение, поэтому убедитесь, что значение протокола равно 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 в соответствии с идентификатором пути взаимодействия пользователя, в который добавлен поставщик удостоверений.

В следующем примере в качестве значения параметра ReferenceId пути взаимодействия пользователя CustomSignUpSignIn задано 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_name given_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 в приложение.