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


Руководство: настройка Azure Active Directory B2C с BlokSec для проверки подлинности без пароля

Подготовка к работе

Azure Active Directory B2C имеет два метода определения взаимодействия пользователей с приложениями: предопределенные потоки пользователей или настраиваемые настраиваемые политики.

Примечание

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

Azure AD B2C и BlokSec

Узнайте, как интегрировать проверку подлинности Azure Active Directory B2C (Azure AD B2C) с маршрутизатором децентрализованных удостоверений BlokSec. Решение BlokSec упрощает вход пользователей с помощью проверки подлинности без пароля и многофакторной проверки подлинности без маркеров. Решение защищает клиентов от атак, связанных с удостоверениями, таких как заполнение паролем, фишинг и "злоумышленник в середине".

Дополнительные сведения см. на bloksec.com: BlokSec Technologies Inc.

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

Интеграция с BlokSec включает в себя следующие компоненты.

  • Azure AD B2C — сервер авторизации и поставщик удостоверений (IdP) для приложений B2C
  • Маршрутизатор децентрализованных удостоверений BlokSec — шлюз для служб, которые применяют BlokSec DIaaS для маршрутизации запросов проверки подлинности и авторизации в приложения поставщика личных удостоверений пользователя (PIdP)
    • Это поставщик удостоверений OpenID Connect (OIDC) в Azure AD B2C
  • Мобильное приложение на основе пакета SDK для BlokSec — PIdP пользователя в сценарии децентрализованной проверки подлинности.
    • Если вы не используете пакет SDK для BlokSec, перейдите в Google Play, чтобы получить бесплатный идентификатор yuID BlokSec.

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

Схема потока регистрации и входа в реализацию решения BlokSec.

  1. Пользователь входит в приложение Azure AD B2C и пересылается в Azure AD политике входа и регистрации B2C.
  2. Azure AD B2C перенаправляет пользователя на маршрутизатор децентрализованных удостоверений BlokSec, используя поток кода авторизации OIDC.
  3. Маршрутизатор BlokSec отправляет push-уведомление в мобильное приложение пользователя с сведениями о проверке подлинности и запросе на авторизацию.
  4. Пользователь проверяет запрос проверки подлинности. Принятому пользователю предлагается выполнить биометрию, например отпечаток пальца или сканирование лица.
  5. Ответ имеет цифровую подпись с помощью уникального цифрового ключа пользователя. Ответ проверки подлинности предоставляет подтверждение владения, присутствия и согласия. Ответ возвращается маршрутизатору.
  6. Маршрутизатор проверяет цифровую подпись на соответствие неизменяемому уникальному открытому ключу пользователя, хранящейся в распределенном реестре. Маршрутизатор отвечает на Azure AD B2C с результатом проверки подлинности.
  7. Пользователю предоставляется или запрещается доступ.

Включение BlokSec

  1. Перейдите в bloksec.com и выберите Запрос демонстрационного клиента.
  2. В поле сообщения укажите, что вы хотите выполнить интеграцию с Azure AD B2C.
  3. Скачайте и установите бесплатное мобильное приложение BlokSec yuID.
  4. После подготовки демонстрационного клиента приходит сообщение электронной почты.
  5. На мобильном устройстве с приложением BlokSec щелкните ссылку, чтобы зарегистрировать учетную запись администратора в приложении yuID.

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

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

См. также руководство. Создание пользовательских потоков и настраиваемых политик в Azure AD B2C

Создание регистрации приложения в BlokSec

В сообщении электронной почты о регистрации учетной записи от BlokSec найдите ссылку на консоль администрирования BlokSec.

  1. Войдите в консоль администрирования BlokSec.
  2. На панели мониторинга main выберите Добавить приложение > Создать пользовательское.
  3. В поле Имя введите Azure AD B2C или имя приложения.
  4. В поле Тип единого входа выберите OIDC.
  5. В поле URI логотипа введите ссылку на изображение логотипа.
  6. Для URI перенаправления используйте 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.
  7. В поле URI перенаправления после выхода введите https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout.
  8. Выберите созданное приложение Azure AD B2C, чтобы открыть конфигурацию приложения.
  9. Выберите Создать секрет приложения.

Дополнительные сведения: Отправка запроса на выход.

Примечание

Для настройки поставщика удостоверений (IdP) в Azure AD B2C требуются идентификатор приложения и секрет приложения.

Добавление нового поставщика удостоверений в Azure AD B2C

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

  1. Войдите в портал Azure как глобальный администратор клиента B2C Azure AD.
  2. На панели инструментов портала выберите Каталоги и подписки.
  3. На странице Параметры портала, Каталоги и подписки в списке Имя каталога найдите Azure AD каталогЕ B2C.
  4. Выберите Переключить.
  5. В левом верхнем углу портал Azure выберите Все службы.
  6. Найдите и выберите Azure AD B2C.
  7. Перейдите в раздел Информационная панель>Azure Active Directory B2C>Поставщики удостоверений.
  8. Выберите Новый поставщик OpenID Connect.
  9. Выберите Добавить.

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

  1. Выберите Тип поставщика удостоверений > OpenID Connect.
  2. В поле Имя введите BlokSec yuID без пароля или другое имя.
  3. В поле URL-адрес метаданных введите https://api.bloksec.io/oidc/.well-known/openid-configuration.
  4. В поле IdV клиента введите идентификатор приложения из пользовательского интерфейса администратора BlokSec.
  5. В поле Секрет клиента введите секрет приложения из пользовательского интерфейса администратора BlokSec.
  6. В поле Область выберите Профиль электронной почты OpenID.
  7. В поле Тип ответа выберите Код.
  8. В поле Указание домена выберите yuID.
  9. Нажмите кнопку ОК.
  10. Выберите Сопоставление утверждений для этого поставщика удостоверений.
  11. В поле Идентификатор пользователя выберите sub.
  12. В поле Отображаемое имя выберите имя.
  13. В поле Заданное имя используйте given_name.
  14. В разделе Фамилия используйте family_name.
  15. Для Email используйте электронную почту.
  16. Щелкните Сохранить.

Регистрация пользователя

  1. Войдите в консоль администрирования BlokSec с предоставленными учетными данными.
  2. Перейдите к созданному ранее Azure AD приложению B2C.
  3. В правом верхнем углу щелкните значок шестеренки .
  4. Выберите Создать учетную запись.
  5. В разделе Создание учетной записи введите сведения о пользователе. Запишите имя учетной записи.
  6. Нажмите кнопку Submit (Отправить).

Пользователь получает сообщение электронной почты о регистрации учетной записи по указанному адресу электронной почты. Попросите пользователя выбрать ссылку регистрации на мобильном устройстве с помощью приложения BlokSec yuID.

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

Для выполнения следующих инструкций убедитесь, что BlokSec является новым поставщиком удостоверений OIDC (IdP).

  1. В клиенте Azure AD B2C, в разделе Политики выберите Потоки пользователей.
  2. Выберите Создать поток пользователя.
  3. Выберите Регистрация и вход>Версия>Создать.
  4. Введите имя политики.
  5. В разделе Поставщики удостоверений выберите созданный поставщик удостоверений BlokSec.
  6. Для параметра Локальная учетная запись выберите Нет. Это действие отключает проверку подлинности на основе электронной почты и пароля.
  7. Выберите Выполнить поток пользователя.
  8. В форме введите URL-адрес ответа, например https://jwt.ms.
  9. Браузер перенаправляется на страницу входа в BlokSec.
  10. Введите имя учетной записи из регистрации пользователя.
  11. Пользователь получает push-уведомление на мобильном устройстве с приложением BlokSec yuID.
  12. Пользователь открывает уведомление, и появится запрос проверки подлинности.
  13. Если проверка подлинности принята, браузер перенаправляет пользователя на URL-адрес ответа.

Примечание

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

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

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

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

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

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

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

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

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

  3. Чтобы добавить новый ClaimsProvider, выполните приведенные далее действия.

    <ClaimsProvider>
      <Domain>bloksec</Domain>
      <DisplayName>BlokSec</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="BlokSec-OpenIdConnect">
          <DisplayName>BlokSec</DisplayName>
          <Description>Login with your BlokSec decentriled identity</Description>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the BlokSec Application ID -->
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <Item Key="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_BlokSecAppSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <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. Задайте для параметра client_id значение идентификатора приложения из регистрации приложения.

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

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

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

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

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

Если у вас есть путь взаимодействия пользователя, добавьте в него новый поставщик удостоверений. Сначала добавьте кнопку входа, а затем свяжите ее с действием, которое является созданным техническим профилем.

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

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

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

Политика проверяющей стороны, например SignUpSignIn.xml, указывает путь взаимодействия пользователя, Azure AD выполняет B2C.

  1. Найдите элемент DefaultUserJourney в проверяющей стороне.
  2. Обновите ReferenceId в соответствии с идентификатором пути взаимодействия пользователя, в который добавлен поставщик удостоверений.

В следующем примере в качестве значения параметра ReferenceId пути взаимодействия пользователя CustomSignUpOrSignIn задано CustomSignUpOrSignIn.

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

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

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

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

Проверка пользовательской политики

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

Дополнительные сведения: Руководство. Регистрация веб-приложения в Azure Active Directory B2C

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