Настройка Transmit Security с Azure Active Directory B2C для проверки подлинности без пароля
В этом руководстве описано, как интегрировать проверку подлинности Azure Active Directory B2C (Azure AD B2C) с решением для проверки подлинности без пароля. BindID использует надежную биометрическую проверку подлинности FIDO2 для надежной многокананной проверки подлинности. Решение обеспечивает бесперебойный вход для клиентов на разных устройствах и в разных каналах, одновременно снижая уровень мошенничества, фишинга и повторного использования учетных данных.
Описание сценария
На следующей схеме архитектуры показана реализация.
- Пользователь открывает страницу входа Azure AD B2C, а затем входит в систему или регистрируется.
- Azure AD B2C перенаправляет пользователя в BindID с помощью запроса OpenID Connect (OIDC).
- BindID выполняет проверку подлинности пользователя без приложения с помощью биометрических данных FIDO2, таких как отпечаток пальца.
- В BindID возвращается децентрализованный ответ проверки подлинности.
- Ответ OIDC передается в Azure AD B2C.
- Пользователю предоставляется или запрещается доступ к приложению на основе результатов проверки.
Предварительные требования
Для начала работы необходимы перечисленные ниже компоненты и данные.
- Подписка Microsoft Entra
- Если у вас ее нет, получите бесплатную учетную запись Azure.
- Клиент Azure AD B2C, связанный с подпиской Azure.
- Клиент BindID
- Перейдите к transmitsecurity.com, чтобы приступить к работе
- Регистрация веб-приложения в портал Azure
- Пользовательские политики Azure AD B2C
- Если вы не можете использовать политики, см. руководство по созданию пользовательских потоков и настраиваемых политик в Azure AD B2C.
Регистрация приложения в BindID
Чтобы начать работу:
- Перейдите к developer.bindid.io, чтобы настроить приложение.
- Добавьте приложение на портале 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 своим личным доменом. |
- После регистрации отображаются идентификатор клиента и секрет клиента .
- Запишите значения для последующего использования.
Настройка BindID в качестве поставщика удостоверений в Azure AD B2C
Для выполнения следующих инструкций используйте каталог с клиентом Azure AD B2C.
- Войдите в портал Azure с правами глобального администратора.
- На панели инструментов портала выберите Каталоги и подписки.
- Параметры портала | На странице Каталоги и подписки в списке Имя каталога найдите каталог Azure AD B2C.
- Выберите Переключиться.
- В левом верхнем углу портал Azure выберите Все службы.
- Найдите и выберите Azure AD B2C.
- Выберите пункт Поставщики удостоверений.
- Выберите Новый поставщик OpenID Connect.
- Введите Имя.
- В поле URL-адрес метаданных введите
https://signin.bindid-sandbox.io/.well-known/openid-configuration
. - В поле Идентификатор клиента введите записанный идентификатор клиента.
- В поле Секрет клиента введите записанный секрет клиента.
- Для параметра Область введите значение
openid email
. - В поле Тип ответа выберите code.
- В поле Режим ответа выберите form_post.
- В разделе Сопоставление утверждений поставщика удостоверений в поле Идентификатор пользователя выберите
sub
. - Для Email выберите
email
. - Щелкните Сохранить.
Создание потока пользователей
- В клиенте Azure AD B2C, в разделе Политики выберите Потоки пользователей.
- Выберите Создать поток пользователя.
- Выберите Тип потока пользователя Регистрация и вход .
- Нажмите кнопку создания.
- Введите Имя.
- В разделе Поставщики удостоверений в поле Локальные учетные записи выберите Нет. Это действие отключает проверку подлинности на основе электронной почты и пароля.
- В поле Настраиваемые поставщики удостоверений выберите созданный поставщик удостоверений BindID, например Вход с помощью BindID.
- Нажмите кнопку создания.
Тестирование потока пользователя
- В клиенте Azure AD B2C выберите Потоки пользователей.
- Выберите созданный поток пользователя, например B2C_1_signupsignin.
- В поле Приложение выберите зарегистрированное веб-приложение.
URL-адрес ответа —
https://jwt.ms
. - Выберите Выполнить поток пользователя.
- Браузер перенаправляется на страницу входа BindID.
- Введите адрес электронной почты зарегистрированной учетной записи.
- Выполняет проверку подлинности с помощью биометрических данных FIDO2 apples, таких как отпечаток пальца.
- Браузер перенаправляется на
https://jwt.ms
. Отображается содержимое маркера, возвращенного Azure AD B2C.
Создание ключа политики BindID
Добавьте секрет клиента приложения BindID в качестве ключа политики. Для выполнения следующих инструкций используйте каталог с клиентом Azure AD B2C.
- Войдите на портал Azure.
- На панели инструментов портала выберите Каталоги и подписки.
- Параметры портала | На странице Каталоги и подписки в списке Имя каталога найдите каталог Azure AD B2C.
- Выберите Переключиться.
- На странице "Обзор" в разделе Политики выберите Identity Experience Framework.
- Выберите Ключи политики.
- Выберите Добавить.
- В пункте Параметры выберите Manual (Вручную).
- Введите Имя. Префикс
B2C_1A_
добавляется к имени ключа. - В поле Секрет введите записанный секрет клиента.
- Для параметра Использование ключа выберите Подпись.
- Нажмите кнопку создания.
Настройка BindID в качестве поставщика удостоверений
Чтобы включить вход с помощью BindID, определите BindID в качестве поставщика утверждений, с которым Azure AD B2C взаимодействует через конечную точку. Конечная точка предоставляет утверждения, используемые Azure AD B2C для проверки подлинности пользователя с помощью цифрового удостоверения на устройстве.
Добавьте BindID в качестве поставщика утверждений. Чтобы приступить к работе, получите начальные пакеты настраиваемой политики из GitHub, а затем обновите XML-файлы в начальном пакете SocialAndLocalAccounts, указав имя клиента Azure AD B2C:
Откройте ZIP-папку active-directory-b2c-custom-policy-starterpack-main.zip или клонируйте репозиторий:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
В файлах в каталоге LocalAccounts замените строку
yourtenant
именем клиента B2C Azure AD.Откройте
LocalAccounts/ TrustFrameworkExtensions.xml
.Найдите элемент ClaimsProviders. Если он не отображается, добавьте его в корневой элемент.
Добавьте новый 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>
Задайте client_id с помощью записанного идентификатора приложения BindID.
Щелкните Сохранить.
Добавление пути взаимодействия пользователя
Поставщик удостоверений отсутствует на страницах входа. Если у вас есть пользовательский путь взаимодействия пользователя, перейдите к разделу Добавление поставщика удостоверений в путь взаимодействия пользователя. В противном случае создайте повторяющийся шаблон пути взаимодействия пользователя:
- Откройте файл в начальном пакете
LocalAccounts/ TrustFrameworkBase.xml
. - Найдите и скопируйте содержимое элемента UserJourney , включающее
Id=SignUpOrSignIn
. - Откройте
LocalAccounts/ TrustFrameworkExtensions.xml
. - Найдите элемент UserJourneys . Если элемента нет, добавьте его.
- Вставьте элемент UserJourney как дочерний элемент элемента UserJourneys.
- Переименуйте идентификатор пути взаимодействия пользователя.
Добавление поставщика удостоверений в путь взаимодействия пользователя
Добавьте новый поставщик удостоверений в путь взаимодействия пользователя.
- В пути взаимодействия пользователя найдите элемент шага оркестрации, включающий
Type=CombinedSignInAndSignUp
илиType=ClaimsProviderSelection
. Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений, с помощью которого пользователи входят. Порядок элементов определяет порядок кнопок входа. - Добавьте XML-элемент ClaimsProviderSelection.
- Присвойте значению TargetClaimsExchangeId понятное имя.
- Добавьте элемент ClaimsExchange .
- В качестве идентификатора укажите целевое значение идентификатора обмена запросами. Это действие связывает кнопку BindID с
BindID-SignIn
. - Обновите значение 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>
Передача настраиваемой политики
- Войдите на портал Azure.
- На панели инструментов портала выберите Каталоги и подписки.
- Параметры портала | На странице Каталоги и подписки в списке Имя каталога найдите каталог Azure AD B2C.
- Выберите Переключиться.
- На портале Azure найдите и выберите Azure AD B2C.
- В разделе Политики выберите Identity Experience Framework.
- Выберите Отправить настраиваемую политику.
- Отправьте файлы в начальный пакет LocalAccounts в следующем порядке:
- Базовая политика, например
TrustFrameworkBase.xml
- Политика локализации, например
TrustFrameworkLocalization.xml
- Политика расширения, например
TrustFrameworkExtensions.xml
- Политика проверяющей стороны, например
SignUpOrSignIn.xml
Тестирование настраиваемой политики
Для выполнения следующих инструкций используйте каталог с клиентом Azure AD B2C.
- В клиенте Azure AD B2C и в разделе Политики выберите Identity Experience Framework.
- В разделе Настраиваемые политики выберите B2C_1A_signup_signin.
- В поле Приложение выберите зарегистрированное веб-приложение.
URL-адрес ответа —
https://jwt.ms
. - Выберите Запустить сейчас.
- Браузер перенаправляется на страницу входа BindID.
- Введите адрес электронной почты зарегистрированной учетной записи.
- Проверка подлинности с помощью биометрии FIDO2 apples, например отпечатков пальцев.
- Браузер перенаправляется на
https://jwt.ms
. Появится содержимое маркера, возвращаемое Azure AD B2C.
Дальнейшие действия
Дополнительные сведения см. в следующих статьях: