Руководство: настройка 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.
- Пользователь входит в приложение Azure AD B2C и пересылается в Azure AD политике входа и регистрации B2C.
- Azure AD B2C перенаправляет пользователя на маршрутизатор децентрализованных удостоверений BlokSec, используя поток кода авторизации OIDC.
- Маршрутизатор BlokSec отправляет push-уведомление в мобильное приложение пользователя с сведениями о проверке подлинности и запросе на авторизацию.
- Пользователь проверяет запрос проверки подлинности. Принятому пользователю предлагается выполнить биометрию, например отпечаток пальца или сканирование лица.
- Ответ имеет цифровую подпись с помощью уникального цифрового ключа пользователя. Ответ проверки подлинности предоставляет подтверждение владения, присутствия и согласия. Ответ возвращается маршрутизатору.
- Маршрутизатор проверяет цифровую подпись на соответствие неизменяемому уникальному открытому ключу пользователя, хранящейся в распределенном реестре. Маршрутизатор отвечает на Azure AD B2C с результатом проверки подлинности.
- Пользователю предоставляется или запрещается доступ.
Включение BlokSec
- Перейдите в bloksec.com и выберите Запрос демонстрационного клиента.
- В поле сообщения укажите, что вы хотите выполнить интеграцию с Azure AD B2C.
- Скачайте и установите бесплатное мобильное приложение BlokSec yuID.
- После подготовки демонстрационного клиента приходит сообщение электронной почты.
- На мобильном устройстве с приложением BlokSec щелкните ссылку, чтобы зарегистрировать учетную запись администратора в приложении yuID.
Предварительные требования
Для начала работы необходимы перечисленные ниже компоненты и данные.
- Подписка Azure
- Если у вас ее нет, получите учетную запись Azfree.
- Клиент Azure AD B2C, связанный с подпиской Azure
- Демонстрация BlokSec
- Регистрация веб-приложения
См. также руководство. Создание пользовательских потоков и настраиваемых политик в Azure AD B2C
Создание регистрации приложения в BlokSec
В сообщении электронной почты о регистрации учетной записи от BlokSec найдите ссылку на консоль администрирования BlokSec.
- Войдите в консоль администрирования BlokSec.
- На панели мониторинга main выберите Добавить приложение > Создать пользовательское.
- В поле Имя введите Azure AD B2C или имя приложения.
- В поле Тип единого входа выберите OIDC.
- В поле URI логотипа введите ссылку на изображение логотипа.
- Для 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
. - В поле URI перенаправления после выхода введите
https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout
. - Выберите созданное приложение Azure AD B2C, чтобы открыть конфигурацию приложения.
- Выберите Создать секрет приложения.
Дополнительные сведения: Отправка запроса на выход.
Примечание
Для настройки поставщика удостоверений (IdP) в Azure AD B2C требуются идентификатор приложения и секрет приложения.
Добавление нового поставщика удостоверений в Azure AD B2C
Для выполнения следующих инструкций используйте каталог, содержащий Azure AD клиентЕ B2C.
- Войдите в портал Azure как глобальный администратор клиента B2C Azure AD.
- На панели инструментов портала выберите Каталоги и подписки.
- На странице Параметры портала, Каталоги и подписки в списке Имя каталога найдите Azure AD каталогЕ B2C.
- Выберите Переключить.
- В левом верхнем углу портал Azure выберите Все службы.
- Найдите и выберите Azure AD B2C.
- Перейдите в раздел Информационная панель>Azure Active Directory B2C>Поставщики удостоверений.
- Выберите Новый поставщик OpenID Connect.
- Выберите Добавить.
Настройка поставщика удостоверений
- Выберите Тип поставщика удостоверений > OpenID Connect.
- В поле Имя введите BlokSec yuID без пароля или другое имя.
- В поле URL-адрес метаданных введите
https://api.bloksec.io/oidc/.well-known/openid-configuration
. - В поле IdV клиента введите идентификатор приложения из пользовательского интерфейса администратора BlokSec.
- В поле Секрет клиента введите секрет приложения из пользовательского интерфейса администратора BlokSec.
- В поле Область выберите Профиль электронной почты OpenID.
- В поле Тип ответа выберите Код.
- В поле Указание домена выберите yuID.
- Нажмите кнопку ОК.
- Выберите Сопоставление утверждений для этого поставщика удостоверений.
- В поле Идентификатор пользователя выберите sub.
- В поле Отображаемое имя выберите имя.
- В поле Заданное имя используйте given_name.
- В разделе Фамилия используйте family_name.
- Для Email используйте электронную почту.
- Щелкните Сохранить.
Регистрация пользователя
- Войдите в консоль администрирования BlokSec с предоставленными учетными данными.
- Перейдите к созданному ранее Azure AD приложению B2C.
- В правом верхнем углу щелкните значок шестеренки .
- Выберите Создать учетную запись.
- В разделе Создание учетной записи введите сведения о пользователе. Запишите имя учетной записи.
- Нажмите кнопку Submit (Отправить).
Пользователь получает сообщение электронной почты о регистрации учетной записи по указанному адресу электронной почты. Попросите пользователя выбрать ссылку регистрации на мобильном устройстве с помощью приложения BlokSec yuID.
Создание политики для потока пользователя
Для выполнения следующих инструкций убедитесь, что BlokSec является новым поставщиком удостоверений OIDC (IdP).
- В клиенте Azure AD B2C, в разделе Политики выберите Потоки пользователей.
- Выберите Создать поток пользователя.
- Выберите Регистрация и вход>Версия>Создать.
- Введите имя политики.
- В разделе Поставщики удостоверений выберите созданный поставщик удостоверений BlokSec.
- Для параметра Локальная учетная запись выберите Нет. Это действие отключает проверку подлинности на основе электронной почты и пароля.
- Выберите Выполнить поток пользователя.
- В форме введите URL-адрес ответа, например
https://jwt.ms
. - Браузер перенаправляется на страницу входа в BlokSec.
- Введите имя учетной записи из регистрации пользователя.
- Пользователь получает push-уведомление на мобильном устройстве с приложением BlokSec yuID.
- Пользователь открывает уведомление, и появится запрос проверки подлинности.
- Если проверка подлинности принята, браузер перенаправляет пользователя на URL-адрес ответа.
Примечание
В Azure Active Directory B2C настраиваемые политики в основном направлены на сложные сценарии. В большинстве сценариев рекомендуется использовать встроенные потоки пользователей.
См. общие сведения о потоках пользователей и пользовательских политиках.
Создание ключа политики
Сохраните секрет клиента, записанный в клиенте Azure AD B2C. Для выполнения следующих инструкций используйте каталог с клиентом B2C Azure AD.
- Войдите на портал Azure.
- На панели инструментов портала выберите Каталоги и подписки.
- На странице Параметры портала, Каталоги и подписки в списке Имя каталога найдите Azure AD каталогЕ B2C.
- Выберите Переключить.
- В левом верхнем углу портал Azure выберите Все службы.
- Найдите и выберите Azure AD B2C.
- На странице Обзор выберите Identity Experience Framework.
- Выберите Ключи политики.
- Выберите Добавить.
- Для пункта Параметры выберите Вручную.
- Введите имя политики для ключа политики. Например,
BlokSecAppSecret
. ПрефиксB2C_1A_
добавляется к имени ключа. - В поле Секрет введите секрет клиента, который вы записали.
- Для параметра Использование ключа выберите Подпись.
- Нажмите кнопку создания.
Настройка BlokSec в качестве поставщика удостоверений
Чтобы пользователи могли выполнять вход с помощью децентрализованного удостоверения BlokSec, определите BlokSec в качестве поставщика утверждений. Это действие гарантирует, Azure AD B2C взаимодействует с ним через конечную точку. Azure AD B2C использует утверждения конечной точки для проверки подлинности пользователей с помощью биометрии, например отпечатка пальца или сканирования лица.
Чтобы определить BlokSec в качестве поставщика утверждений, добавьте его в элемент ClaimsProvider в файле расширения политики.
Откройте
TrustFrameworkExtensions.xml
.Найдите элемент ClaimsProviders. Если элемент не отображается, добавьте его под корневым элементом.
Чтобы добавить новый 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>
Задайте для параметра client_id значение идентификатора приложения из регистрации приложения.
Щелкните Сохранить.
Добавление пути взаимодействия пользователя
Используйте следующие инструкции, если поставщик удостоверений настроен, но не на странице входа. Если у вас нет пользовательского пути взаимодействия пользователя, скопируйте шаблон пути взаимодействия пользователя.
- В начальном пакете откройте
TrustFrameworkBase.xml
файл . - Найдите и скопируйте содержимое элемента UserJourneys , включающее ID=
SignUpOrSignIn
. - Откройте
TrustFrameworkExtensions.xml
. - Найдите элемент UserJourneys . Если элемент не отображается, добавьте его.
- Вставьте содержимое элемента UserJourney , скопированного как дочерний элемент элемента UserJourneys .
- Переименуйте идентификатор пути взаимодействия пользователя. Например, ID=
CustomSignUpSignIn
.
Добавление поставщика удостоверений в путь взаимодействия пользователя
Если у вас есть путь взаимодействия пользователя, добавьте в него новый поставщик удостоверений. Сначала добавьте кнопку входа, а затем свяжите ее с действием, которое является созданным техническим профилем.
- В пути взаимодействия пользователя найдите элемент шага оркестрации, включающий Type=
CombinedSignInAndSignUp
, или Type=ClaimsProviderSelection
. Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений для входа пользователей. Порядок элементов управляет порядком кнопок входа, видимых пользователем. - Добавьте XML-элемент ClaimsProviderSelection.
- Присвойте значению TargetClaimsExchangeId понятное имя.
- На следующем шаге оркестрации добавьте элемент ClaimsExchange.
- В качестве идентификатора укажите целевое значение идентификатора обмена запросами.
- Измените значение 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.
- Найдите элемент DefaultUserJourney в проверяющей стороне.
- Обновите ReferenceId в соответствии с идентификатором пути взаимодействия пользователя, в который добавлен поставщик удостоверений.
В следующем примере в качестве значения параметра ReferenceId пути взаимодействия пользователя CustomSignUpOrSignIn
задано CustomSignUpOrSignIn
.
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Передача настраиваемой политики
Для выполнения следующих инструкций используйте каталог с клиентом B2C Azure AD.
- Войдите на портал Azure.
- На панели инструментов портала выберите Каталоги и подписки.
- На странице Параметры портала, Каталоги и подписки в списке Имя каталога найдите каталог Azure AD B2C.
- Выберите Переключить.
- На портале Azure найдите и выберите Azure AD B2C.
- В разделе Политики выберите Identity Experience Framework.
- Выберите Отправить настраиваемую политику.
- Отправьте два измененных файла политики в следующем порядке:
- Политика расширения, например
TrustFrameworkExtensions.xml
- Политика проверяющей стороны, например
SignUpSignIn.xml
Проверка пользовательской политики
- Выберите политику проверяющей стороны, например
B2C_1A_signup_signin
. - В поле Приложение выберите зарегистрированное веб-приложение.
-
URL-адрес ответа отображается как
https://jwt.ms
. - Выберите Запустить сейчас.
- На странице регистрации или входа выберите Google, чтобы выполнить вход с помощью учетной записи Google.
- Браузер перенаправляется по адресу
https://jwt.ms
. Просмотрите содержимое маркера, возвращенное Azure AD B2C.
Дополнительные сведения: Руководство. Регистрация веб-приложения в Azure Active Directory B2C