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


Настройка Transmit Security с Azure Active Directory B2C для проверки подлинности без пароля

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

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

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

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

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

Предварительные требования

Для начала работы необходимы перечисленные ниже компоненты и данные.

Регистрация приложения в BindID

Чтобы начать работу:

  1. Перейдите к developer.bindid.io, чтобы настроить приложение.
  2. Добавьте приложение на портале BindID Администратор. Вход требуется.
Свойство Описание
Имя имя приложения;
Домен Введите your-B2C-tenant-name.onmicrosoft.com. Замените your-B2C-tenant своим клиентом B2C Azure AD.
URI перенаправления https://jwt.ms/
URL-адреса перенаправления Введите https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Замените your-B2C-tenant своим клиентом B2C Azure AD. Для личного домена замените your-B2C-tenant-name.b2clogin.com своим личным доменом.
  1. После регистрации отображаются идентификатор клиента и секрет клиента .
  2. Запишите значения для последующего использования.

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

Для выполнения следующих инструкций используйте каталог с клиентом Azure AD B2C.

  1. Войдите в портал Azure с правами глобального администратора.
  2. На панели инструментов портала выберите Каталоги и подписки.
  3. Параметры портала | На странице Каталоги и подписки в списке Имя каталога найдите каталог Azure AD B2C.
  4. Выберите Переключиться.
  5. В левом верхнем углу портал Azure выберите Все службы.
  6. Найдите и выберите Azure AD B2C.
  7. Выберите пункт Поставщики удостоверений.
  8. Выберите Новый поставщик OpenID Connect.
  9. Введите Имя.
  10. В поле URL-адрес метаданных введите https://signin.bindid-sandbox.io/.well-known/openid-configuration.
  11. В поле Идентификатор клиента введите записанный идентификатор клиента.
  12. В поле Секрет клиента введите записанный секрет клиента.
  13. Для параметра Область введите значение openid email.
  14. В поле Тип ответа выберите code.
  15. В поле Режим ответа выберите form_post.
  16. В разделе Сопоставление утверждений поставщика удостоверений в поле Идентификатор пользователя выберите sub.
  17. Для Email выберите email.
  18. Щелкните Сохранить.

Создание потока пользователей

  1. В клиенте Azure AD B2C, в разделе Политики выберите Потоки пользователей.
  2. Выберите Создать поток пользователя.
  3. Выберите Тип потока пользователя Регистрация и вход .
  4. Нажмите кнопку создания.
  5. Введите Имя.
  6. В разделе Поставщики удостоверений в поле Локальные учетные записи выберите Нет. Это действие отключает проверку подлинности на основе электронной почты и пароля.
  7. В поле Настраиваемые поставщики удостоверений выберите созданный поставщик удостоверений BindID, например Вход с помощью BindID.
  8. Нажмите кнопку создания.

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

  1. В клиенте Azure AD B2C выберите Потоки пользователей.
  2. Выберите созданный поток пользователя, например B2C_1_signupsignin.
  3. В поле Приложение выберите зарегистрированное веб-приложение. URL-адрес ответаhttps://jwt.ms.
  4. Выберите Выполнить поток пользователя.
  5. Браузер перенаправляется на страницу входа BindID.
  6. Введите адрес электронной почты зарегистрированной учетной записи.
  7. Выполняет проверку подлинности с помощью биометрических данных FIDO2 apples, таких как отпечаток пальца.
  8. Браузер перенаправляется на https://jwt.ms. Отображается содержимое маркера, возвращенного Azure AD B2C.

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

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

  1. Войдите на портал Azure.
  2. На панели инструментов портала выберите Каталоги и подписки.
  3. Параметры портала | На странице Каталоги и подписки в списке Имя каталога найдите каталог Azure AD B2C.
  4. Выберите Переключиться.
  5. На странице "Обзор" в разделе Политики выберите Identity Experience Framework.
  6. Выберите Ключи политики.
  7. Выберите Добавить.
  8. В пункте Параметры выберите Manual (Вручную).
  9. Введите Имя. Префикс B2C_1A_ добавляется к имени ключа.
  10. В поле Секрет введите записанный секрет клиента.
  11. Для параметра Использование ключа выберите Подпись.
  12. Нажмите кнопку создания.

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

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

Добавьте BindID в качестве поставщика утверждений. Чтобы приступить к работе, получите начальные пакеты настраиваемой политики из GitHub, а затем обновите XML-файлы в начальном пакете SocialAndLocalAccounts, указав имя клиента Azure AD B2C:

  1. Откройте ZIP-папку active-directory-b2c-custom-policy-starterpack-main.zip или клонируйте репозиторий:

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

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

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

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

     <ClaimsProvider>
         <Domain>signin.bindid-sandbox.io</Domain>
         <DisplayName>BindID</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="BindID-OpenIdConnect">
             <DisplayName>BindID</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the BindID Application ID -->
               <Item Key="client_id">00000000-0000-0000-0000-000000000000</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_BindIDClientSecret" />
             </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>    
    
  6. Задайте client_id с помощью записанного идентификатора приложения BindID.

  7. Щелкните Сохранить.

Добавление пути взаимодействия пользователя

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

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

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

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

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

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

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>
    
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

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

Политика проверяющей стороны, например SignUpOrSignIn.xml, указывает путь взаимодействия пользователя, Azure AD выполняется B2C. Вы можете управлять утверждениями, передаваемыми в приложение, изменив элемент OutputClaims элемента PolicyProfile TechnicalProfile. В этом руководстве приложение получает атрибуты пользователя, такие как отображаемое имя, заданное имя, фамилия, адрес электронной почты, objectId, поставщик удостоверений и tenantId.

См. Azure-Samples/active-directory-b2c-custom-policy-starterpack.

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
    <TechnicalProfile Id="BindID-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>

Передача настраиваемой политики

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

Тестирование настраиваемой политики

Для выполнения следующих инструкций используйте каталог с клиентом Azure AD B2C.

  1. В клиенте Azure AD B2C и в разделе Политики выберите Identity Experience Framework.
  2. В разделе Настраиваемые политики выберите B2C_1A_signup_signin.
  3. В поле Приложение выберите зарегистрированное веб-приложение. URL-адрес ответаhttps://jwt.ms.
  4. Выберите Запустить сейчас.
  5. Браузер перенаправляется на страницу входа BindID.
  6. Введите адрес электронной почты зарегистрированной учетной записи.
  7. Проверка подлинности с помощью биометрии FIDO2 apples, например отпечатков пальцев.
  8. Браузер перенаправляется на https://jwt.ms. Появится содержимое маркера, возвращаемое Azure AD B2C.

Дальнейшие действия

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