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


Добавление AD FS в качестве поставщика удостоверений OpenID Connect с использованием пользовательских политик в Azure Active Directory B2C

Это важно

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

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

Предпосылки

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

Чтобы включить вход пользователей с учетной записью AD FS в Azure Active Directory B2C (Azure AD B2C), создайте группу приложений в AD FS. Дополнительные сведения см. в статье "Создание веб-приложения с помощью OpenID Connect с AD FS 2016 и более поздних версий"

Чтобы создать группу приложений, выполните следующие действия.

  1. В диспетчере серверов выберите "Сервис" и выберите "Управление AD FS".
  2. В разделе "Управление AD FS" щелкните Группы приложений правой кнопкой мыши и выберите Добавить группу приложений.
  3. На экране приветствия мастера настройки группы приложений:
    1. Введите имя приложения. Например, приложение Azure AD B2C.
    2. В разделеClient-Server приложения выберите веб-браузер, который обращается к шаблону веб-приложения .
    3. Нажмите кнопку Далее.
  4. На экране собственного приложения мастера групп приложений :
    1. Скопируйте значение идентификатора клиента. Идентификатор клиента — это идентификатор приложения AD FS. Вам потребуется идентификатор приложения позже в этой статье.
    2. В поле «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 именем клиента и your-domain-name личным доменом.
    3. Нажмите кнопку "Далее", а затем "Далее", а затем еще раз, чтобы завершить работу мастера регистрации приложения.
    4. Выберите Закрыть.

Настройка утверждений приложения

На этом этапе настройте параметры утверждений в приложении AD FS для передачи в Azure AD B2C.

  1. В группах приложений выберите созданное приложение.

  2. В окне свойств приложения в разделе "Приложения" выберите веб-приложение. Затем нажмите кнопку "Изменить". Снимок экрана: изменение веб-приложения.

  3. Перейдите на вкладку "Правила преобразования выдачи ". Затем нажмите кнопку "Добавить правило".

  4. В шаблоне правила утверждения выберите "Отправить атрибуты LDAP в качестве утверждений", а затем "Далее".

  5. Укажите имя правила утверждения. Для хранилища атрибутов выберите Active Directory, добавьте следующие утверждения.

    Атрибут LDAP Тип исходящего утверждения
    Principal-Name пользователя UPN
    Фамилия фамилия
    Given-Name given_name
    Display-Name имя

    Обратите внимание, что некоторые имена не будут отображаться в раскрывающемся списке типа исходящих утверждений. Их необходимо ввести вручную (раскрывающийся список можно изменить).

  6. Нажмите Готово.

  7. Нажмите кнопку "Применить" и нажмите кнопку "ОК".

  8. Нажмите кнопку "ОК", чтобы завершить работу.

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

  1. Войдите на портал Azure с учетной записью, которая имеет по крайней мере права администратора внешнего поставщика удостоверений .

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

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

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

  5. Введите Имя. Например, Contoso.

  6. Для URL-адреса метаданных, введите URL-адрес документа конфигурации AD FS OpenID Connect. Рассмотрим пример.

    https://adfs.contoso.com/adfs/.well-known/openid-configuration 
    
  7. Для идентификатора клиента введите идентификатор приложения, записанный ранее.

  8. В поле "Область" введите openid.

  9. Для типа ответа выберите id_token. Поэтому значение секрета клиента не требуется. Дополнительные сведения об использовании идентификатора клиента и секретного ключа при добавлении универсального поставщика удостоверений OpenID Connect.

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

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

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

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

На данный момент поставщик удостоверений AD FS (Contoso) настроен, но ещё не используется ни на одной из страниц входа. Чтобы добавить поставщика удостоверений AD FS в пользовательский поток:

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

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

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

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

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

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

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

    <ClaimsProvider>
      <Domain>contoso.com</Domain>
      <DisplayName>Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-OpenIdConnect">
          <DisplayName>Contoso</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://your-adfs-domain/adfs/.well-known/openid-configuration</Item>
            <Item Key="response_types">id_token</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="scope">openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">0</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">Your AD FS application ID</Item>
          </Metadata>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="upn" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="unique_name" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss"  />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. В поле URL-адрес метаданных введите URL-адресдокумента конфигурации AD FS OpenID Connect. Рассмотрим пример.

    https://adfs.contoso.com/adfs/.well-known/openid-configuration 
    
  5. Задайте client_id идентификатору приложения из регистрации приложения.

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-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 , чтобы войти с помощью учетной записи Contoso.

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

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

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