Настройка безопасности передачи с помощью Azure Active Directory B2C для проверки подлинности секретных ключей

Это важно

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

В этом руководстве вы узнаете, как интегрировать проверку подлинности Azure Active Directory B2C (Azure AD B2C) с решением проверки подлинности с размещенными ключами компании Transmit Security. Transmit Security использует надежную биометрическую проверку подлинности FIDO2 для надежной всесторонней проверки подлинности. Это решение обеспечивает гладкий вход для клиентов на разных устройствах и каналах, а также снижает уровень мошенничества, фишинга и повторного использования учетных данных.

Описание сценария

На следующей схеме архитектуры показана реализация:

Схема архитектуры Transmit и Azure AD B2C.

  1. Пользователь открывает страницу входа в Azure AD B2C и входит или регистрируется.
  2. Azure AD B2C перенаправляет пользователя на Transmit Security с помощью запроса OpenID Connect (OIDC).
  3. Transmit Security осуществляет аутентификацию пользователя с помощью биометрии FIDO2 без приложения, таких как отпечаток пальца.
  4. Децентрализованный ответ проверки подлинности возвращается в Transmit Security.
  5. Ответ OIDC передается в Azure AD B2C.
  6. Пользователю предоставлен или запрещен доступ к приложению на основе результатов проверки.

Предпосылки

Чтобы начать, вам нужно:

Шаг 1. Создание приложения передачи

Войдите на портал администрирования передачи и создайте приложение:

  1. В разделе "Приложения" выберите "Добавить приложение".

  2. Настройте приложение со следующими атрибутами:

    Недвижимость Описание
    Имя приложения Имя приложения
    Имя клиента имя клиента;
    URI перенаправления https://<your-B2C-tenant>.b2clogin.com/<your-B2C-tenant>.onmicrosoft.com/oauth2/authresp где <your-B2C-tenant> находится домен клиента Azure AD B2C (или <your-B2C-tenant>.b2clogin.com личный домен)
  3. Нажмите кнопку "Добавить".

  4. После регистрации появится идентификатор клиента и секрет клиента . Запишите значения, которые будут использоваться позже.

Шаг 2. Настройка интерфейса входа

На портале администрирования передачи настройте интерфейс проверки подлинности пользователя:

  1. Выберите "Проверка подлинности", а затем выберите "Управление опытом".

  2. В раскрывающемся меню выберите приложение.

  3. Настройте приложение со следующими атрибутами:

    Недвижимость Описание
    Идентификатор пользователя Выбор электронной почты
    Основной метод проверки подлинности Выбор секретного ключа
    Дополнительный метод проверки подлинности Включить только QR-код WebAuthn и OTP электронной почты
    Выбор сведений о пользователе Удаление всех полей по умолчанию
  4. Нажмите кнопку "Сохранить".

Шаг 3. Добавление Transmit в качестве поставщика удостоверений

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

  1. Войдите на портал Azure в роли как минимум администратора политики B2C IEF.

  2. На панели инструментов портала выберите каталоги и подписки.

  3. Параметры портала | На странице каталогов и подписок в списке имен каталогов найдите каталог Azure AD B2C и нажмите кнопку Switch.

  4. В службах Azure выберите Azure AD B2C (или выберите "Дополнительные службы " и используйте поле поиска "Все службы " для поиска Azure AD B2C).

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

  6. Настройте поставщика следующим образом:

    Недвижимость Описание
    Имя Имя, например Transmit Security
    URL-адрес метаданных https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration
    идентификатор клиента Идентификатор клиента, предоставленный Transmit
    Секрет клиента Секрет клиента, предоставленный Transmit
    Объем openid email
    Тип ответа код
    Режим отклика форма_пост
    Отображаемое имя email
    Эл. почта email
  7. Нажмите кнопку "Сохранить".

Шаг 4. Создание потока пользователя

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

  1. В клиенте Azure AD B2C в разделе "Политики" выберите потоки пользователей.
  2. Выберите новый поток пользователя.
  3. Выберите "Регистрация и вход в тип потока пользователя" и нажмите кнопку "Создать".
  4. Введите имя для потока пользователя, например signupsignin.
  5. В разделе поставщики удостоверений:
    • Для локальных учетных записей выберите "Нет".
    • Для пользовательских поставщиков идентификации выберите провайдера Transmit Security.
  6. Нажмите кнопку "Создать", чтобы добавить поток пользователя.

Шаг 5. Тестирование потока пользователя

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

Шаг 3. Создание ключа политики

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

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

  2. На панели инструментов портала выберите каталоги и подписки.

  3. Параметры портала | На странице каталогов и подписок в списке имен каталогов найдите каталог Azure AD B2C и нажмите кнопку Switch.

  4. На странице "Обзор" в разделе Политики выберите Фреймворк взаимодействия с удостоверениями.

  5. Выберите ключи политики и нажмите кнопку "Добавить".

  6. Настройте ключ политики следующим образом:

    Недвижимость Описание
    Параметры Руководство
    Имя Имя ключа политики, например TransmitClientSecret
    Секрет Секрет клиента, предоставленный Transmit
    Способы использования ключа Подпись
  7. Нажмите кнопку "Создать", чтобы добавить ключ политики.

Шаг 4. Добавление Transmit в качестве поставщика удостоверений

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

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

  1. Получите начальные пакеты настраиваемой политики из GitHub, а затем обновите XML-файлы в начальном пакете SocialAndLocalAccounts с именем клиента Azure AD B2C:

    1. Скачайте файл .zip или клонируйте репозиторий:

      git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    2. В файлах в каталоге LocalAccounts замените строку yourtenant именем клиента Azure AD B2C.

  2. Откройте LocalAccounts/ TrustFrameworkExtensions.xml.

  3. Найдите элемент ClaimsProviders . Если он не отображается, добавьте его в корневой элемент.

  4. Добавьте новый ClaimsProvider , аналогичный следующему примеру:

     <ClaimsProvider>
         <Domain>api.transmitsecurity.io</Domain>
         <DisplayName>Transmit</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="TS-OpenIdConnect">
             <DisplayName>Transmit</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://api.transmitsecurity.io/cis/oidc/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the Transmit Security client ID -->
               <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item>
               <Item Key="response_types">code</Item>
               <Item Key="scope">openid email</Item>
               <Item Key="response_mode">form_post</Item>
               <Item Key="HttpBinding">POST</Item>
               <Item Key="UsePolicyInRedirectUri">false</Item>
               <Item Key="AccessTokenResponseFormat">json</Item>
             </Metadata>
             <CryptographicKeys>
               <Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" />
             </CryptographicKeys>
             <OutputClaims>
               <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
               <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
               <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>    
    
  5. Укажите client_id с идентификатором клиента от Transmit Security.

  6. Обновите раздел client_secret с именем созданного ключа политики (например, B2C_1A_TransmitClientSecret):

    <Key Id="client_secret" StorageReferenceId="B2C_1A_TransmitClientSecret" />
    
  7. Нажмите кнопку "Сохранить".

Шаг 5. Добавление пути пользователя

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

  1. В начальном пакете откройте LocalAccounts/ TrustFrameworkBase.xml файл.
  2. Найдите и скопируйте содержимое элемента UserJourney , который включает в себя Id=SignUpOrSignIn.
  3. Откройте LocalAccounts/ TrustFrameworkExtensions.xml.
  4. Найдите элемент UserJourneys . Если нет элемента, добавьте его.
  5. Вставьте элемент UserJourney в качестве дочернего элемента UserJourneys.
  6. Переименуйте путь пользователя ID (например, Id=TransmitSUSI)

Шаг 6: Добавьте элемент «Передача» в пользовательский путь.

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

  1. Найдите элемент шага оркестрации, который включает в себя Type=CombinedSignInAndSignUp или Type=ClaimsProviderSelection в процессе работы пользователя. Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений, через которых пользователи входят в систему. Порядок элементов определяет порядок кнопок входа.
  2. Добавьте XML-элемент ClaimsProviderSelection .
  3. Задайте для параметра TargetClaimsExchangeId понятное имя.
  4. Добавьте элемент ClaimsExchange .
  5. Установите идентификатор в значение целевого идентификатора обмена заявками.
  6. Обновите значение TechnicalProfileReferenceId на идентификатор технического профиля, который вы создали.

Следующий XML-код демонстрирует процесс взаимодействия пользователя оркестрации с поставщиком удостоверений.

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="TSIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>

    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="TSIDExchange" TechnicalProfileReferenceId="TS-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

Шаг 7. Настройка политики проверяющей стороны

Политика проверяющей стороны, например SignUpSignIn.xml, определяет путь пользователя, выполняемый Azure AD B2C. Найдите элемент DefaultUserJourney в проверяющей стороне. Обновите ReferenceId, чтобы он соответствовал идентификатору пути пользователя, где вы добавили провайдера идентификации.

В следующем примере для TransmitSUSI пути пользователя для параметра ReferenceId задано значение TransmitSUSI:

  <RelyingParty>
    <DefaultUserJourney ReferenceId="TransmitSUSI" />
    <TechnicalProfile Id="TS-OpenIdConnect">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

Шаг 8. Отправка настраиваемой политики

Используя каталог Azure AD B2C вашего тенанта, загрузите пользовательскую политику:

  1. Войдите на портал Azure.
  2. На панели инструментов портала выберите каталоги и подписки.
  3. Параметры портала | На странице каталогов и подписок в списке имен каталогов найдите каталог Azure AD B2C и нажмите кнопку Switch.
  4. В разделе "Политики" выберите Identity Experience Framework.
  5. Выберите " Отправить настраиваемую политику", а затем отправьте обновленные файлы в следующем порядке:
  • Базовая политика, например TrustFrameworkBase.xml
  • Политика локализации, например TrustFrameworkLocalization.xml
  • Политика расширения — например TrustFrameworkExtensions.xml
  • Политика проверяющей стороны, например SignUpOrSignIn.xml

Шаг 9. Проверка настраиваемой политики

Используя каталог вашего клиента Azure AD B2C, проверьте настраиваемую политику:

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

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

Дополнительные сведения см. в следующих статьях: