Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
Узнайте, как интегрировать проверку подлинности Microsoft Entra ID (Azure AD B2C) с Asignio. С помощью этой интеграции предоставьте клиентам возможность без пароля, обратимой биометрии и многофакторной проверки подлинности. Asignio использует патентованную подпись Asignio и динамическую проверку лица для проверки подлинности пользователей. Изменяемая биометрическая подпись помогает снизить проблемы, связанные с паролями, мошенничеством, фишингом и повторным использованием учетных данных, с помощью омниканальной аутентификации.
Перед тем как начать
Выберите селектор типа политики, чтобы указать настройку типа политики. Azure AD B2C имеет два метода для определения взаимодействия пользователей с приложениями:
- Предопределенные потоки пользователей
- Настраиваемые политики
Действия, описанные в этой статье, отличаются для каждого метода.
Подробнее:
- Общие сведения о потоках пользователей и пользовательских политиках
- Обзор настраиваемой политики Azure AD B2C
Предпосылки
Подписка Azure.
Если у вас нет учетной записи, получите бесплатный аккаунт Azure.
Клиент Azure AD B2C, связанный с подпиской Azure
См. руководство. Создание клиента Azure Active Directory B2C
Идентификатор клиента Asignio и секрет клиента, выданный Asignio.
Эти маркеры получаются путем регистрации мобильных или веб-приложений в Asignio.
Для пользовательских политик
Полное руководство. Создание потоков пользователей и пользовательских политик в Azure AD B2C
Описание сценария
Эта интеграция включает следующие компоненты:
- Azure AD B2C — сервер авторизации, проверяющий учетные данные пользователя
- Веб-приложения или мобильные приложения — для защиты с помощью Asignio MFA
- Веб-приложение Asignio — сигнатурная биометрия на пользовательском сенсорном устройстве
На следующей схеме показана реализация.
- Пользователь открывает страницу входа Azure AD B2C на своем мобильном или веб-приложении, а затем входит или регистрируется.
- Azure AD B2C перенаправляет пользователя в Asignio с помощью запроса OpenID Connect (OIDC).
- Пользователь перенаправляется в веб-приложение Asignio для биометрического входа. Если пользователь не зарегистрировал свою подпись Asignio, он может использовать SMS One-Time-Password (OTP) для аутентификации. После проверки подлинности пользователь получает ссылку на регистрацию, чтобы создать подпись Asignio.
- Пользователь проходит проверку подлинности с помощью подписи Asignio и проверки лица, а также голосовой и лицевой проверки.
- Ответ на вызов отправляется в Asignio.
- Asignio возвращает ответ на запрос OIDC при входе в Azure AD B2C.
- Azure AD B2C отправляет запрос проверки подлинности в Asignio, чтобы подтвердить получение данных проверки подлинности.
- Пользователю предоставлен или запрещен доступ к приложению.
Настройка приложения с помощью Asignio
Настройка приложения с помощью Asignio осуществляется через сайт администрирования партнеров Asignio.
- Чтобы запросить доступ к вашей организации, перейдите на страницу asignio.com Администрирование партнеров Asignio .
- С помощью учетных данных войдите в Администрирование партнеров Asignio.
- Создайте запись для приложения Azure AD B2C с помощью клиента Azure AD B2C. При использовании Azure AD B2C с Asignio Azure AD B2C управляет подключенными приложениями. Приложения Asignio представляют приложения на портале Azure.
- На сайте администрирования партнеров Asignio создайте идентификатор клиента и секрет клиента.
- Запишите и сохраните идентификатор клиента и секрет клиента. Они понадобятся вам позже. Asignio не хранит секреты клиента.
- Введите универсальный код ресурса (URI перенаправления) на сайте, к который пользователь возвращается после проверки подлинности. Используйте следующий шаблон URI.
[https://<your-b2c-domain>.b2clogin.com/<your-b2c-domain>.onmicrosoft.com/oauth2/authresp].
- Отправьте логотип компании. Он появляется при аутентификации Asignio, когда пользователи входят в систему.
Регистрация веб-приложения в Azure AD B2C
Зарегистрируйте приложения в управляемом клиенте, а затем они могут взаимодействовать с Azure AD B2C.
Дополнительные сведения: типы приложений, которые можно использовать в Active Directory B2C
В этом руководстве вы регистрируете веб-приложение Microsofthttps://jwt.ms, содержимое декодированного токена которого не покидает браузер.
Регистрация веб-приложения
Выполните действия, описанные в руководстве. Регистрация веб-приложения в статье Azure Active Directory B2C .
Настройка Asignio в качестве поставщика удостоверений в Azure AD B2C
Для выполнения следующих инструкций используйте клиент Microsoft Entra с подпиской Azure.
- Войдите в портал Azure в качестве по крайней мере администратора политики B2C IEF клиента Azure AD B2C.
- На панели инструментов портала Azure выберите каталоги и подписки.
- Параметры портала | Каталоги + подписки в списке имен каталогов найдите каталог Microsoft Entra.
- Выберите Переключиться.
- В левом верхнем углу портала Azure выберите все службы.
- Найдите и выберите Azure AD B2C.
- В портале Azure найдите и выберите Azure AD B2C.
- В меню слева выберите поставщики удостоверений.
- Выберите новый поставщик OpenID Connect.
- Выберите тип >OpenID Connect.
- В поле "Имя" введите вход Asignio или имя, выбранное вами.
- Введите
https://authorization.asignio.com/.well-known/openid-configuration. - Для идентификатора клиента введите созданный идентификатор клиента.
- В поле "Секрет клиента" введите созданный секрет клиента.
- Для Scope используйте openid email profile.
- Для типа ответа используйте код.
- Для режима ответа используйте запрос.
- Для указания домена используйте
https://asignio.com. - Нажмите ОК.
- Выберите "Сопоставить утверждения этого поставщика удостоверений".
- Для идентификатора пользователя используйте sub.
- Для отображаемого имени используйте имя.
- Для заданного имени используйте given_name.
- Для фамилии используйте family_name.
- Для Email используйте электронную почту.
- Нажмите кнопку "Сохранить".
Создание политики потока пользователя
- В клиенте Azure AD B2C в разделе "Политики" выберите потоки пользователей.
- Выберите новый поток пользователя.
- Выберите "Регистрация и вход в тип потока пользователя".
- Выберите рекомендуемую версию.
- Нажмите кнопку "Создать".
- Введите имя потока пользователя, например
AsignioSignupSignin. - В разделе "Поставщики удостоверений" для локальных учетных записей выберите "Нет". Это действие отключает проверку подлинности электронной почты и пароля.
- Для пользовательских поставщиков удостоверений выберите созданного поставщика удостоверений Asignio.
- Нажмите кнопку "Создать".
Тестирование потока пользователя
- В клиенте Azure AD B2C выберите потоки пользователей.
- Выберите созданный поток пользователя.
- Для приложения выберите зарегистрированное веб-приложение.
URL-адрес ответа .
https://jwt.ms - Выберите Запустить пользовательский сценарий.
- Браузер перенаправляется на страницу входа Asignio.
- Появится экран входа.
- Внизу выберите аутентификацию Asignio.
Если у вас есть подпись Asignio, выполните запрос на проверку подлинности. В противном случае укажите номер телефона устройства для проверки подлинности через SMS OTP. Используйте ссылку для регистрации подписи Asignio.
- Браузер перенаправляется в
https://jwt.ms. Отображается содержимое токена, возвращаемое Azure AD B2C.
Создайте ключ политики Asignio
- Сохраните созданный секрет клиента в клиенте Azure AD B2C.
- Войдите на портал Azure.
- На панели инструментов портала выберите каталоги и подписки.
- Параметры портала | Каталоги + подписки в списке имен каталогов найдите каталог Azure AD B2C.
- Выберите Переключиться.
- В левом верхнем углу портала Azure выберите все службы.
- Найдите и выберите Azure AD B2C.
- На странице "Обзор" выберите Identity Experience Framework.
- Выберите Ключи политики.
- Нажмите кнопку "Добавить".
- В разделе "Параметры" выберите "Вручную".
- Введите имя для ключа политики. Префикс
B2C_1A_добавляется к имени ключа. - Секрет, введите секрет клиента, который вы указали.
- Для назначения ключа выберите Подпись.
- Нажмите кнопку "Создать".
Настройка Asignio в качестве поставщика удостоверений
Подсказка
Перед началом работы убедитесь, что политика Azure AD B2C настроена. В противном случае следуйте инструкциям в начальном пакете пользовательской политики.
Чтобы пользователи могли войти в Asignio, определите Asignio в качестве поставщика утверждений, с которым взаимодействует Azure AD B2C через конечную точку. Конечная точка предоставляет информацию, которую Azure AD B2C использует для проверки аутентификации пользователей с помощью цифрового идентификатора на устройстве.
Добавить Asignio в качестве поставщика утверждений
Получите начальные пакеты настраиваемой политики из GitHub, а затем обновите XML-файлы в начальном пакете LocalAccounts с именем клиента Azure AD B2C:
Скачайте zip active-directory-b2c-custom-policy-starterpack или клонируйте репозиторий:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpackВ файлах в каталоге LocalAccounts замените строку
yourtenantименем клиента Azure AD B2C.Откройте LocalAccounts/TrustFrameworkExtensions.xml.
Найдите элемент ClaimsProviders . Если его нет, добавьте его в корневой элемент
TrustFrameworkPolicy.Добавьте новый ClaimsProvider , аналогичный следующему примеру:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Asignio</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Asignio-Oauth2"> <DisplayName>Asignio</DisplayName> <Description>Login with your Asignio account</Description> <Protocol Name="OAuth2" /> <Metadata> <Item Key="ProviderName">authorization.asignio.com</Item> <Item Key="authorization_endpoint">https://authorization.asignio.com/authorize</Item> <Item Key="AccessTokenEndpoint">https://authorization.asignio.com/token</Item> <Item Key="ClaimsEndpoint">https://authorization.asignio.com/userinfo</Item> <Item Key="ClaimsEndpointAccessTokenName">access_token</Item> <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> <Item Key="HttpBinding">POST</Item> <Item Key="scope">openid profile email</Item> <Item Key="UsePolicyInRedirectUri">0</Item> <!-- Update the Client ID below to the Asignio Application ID --> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="IncludeClaimResolvingInClaimsHandling">true</Item> <!-- trying to add additional claim--> <!--Insert b2c-extensions-app application ID here, for example: 00001111-aaaa-2222-bbbb-3333cccc4444--> <Item Key="00001111-aaaa-2222-bbbb-3333cccc4444"></Item> <!--Insert b2c-extensions-app application ObjectId here, for example: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb--> <Item Key="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"></Item> <!-- The key below allows you to specify each of the Azure AD tenants that can be used to sign in. Update the GUIDs below for each tenant. --> <!--<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/00001111-aaaa-2222-bbbb-3333cccc4444</Item>--> <!-- The commented key below specifies that users from any tenant can sign-in. Uncomment if you would like anyone with an Azure AD account to be able to sign in. --> <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_AsignioSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" DefaultValue="https://authorization.asignio.com" /> <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>Задайте client_id с указанным идентификатором приложения Asignio.
Обновите раздел client_secret с помощью созданного ключа политики. Например,
B2C_1A_AsignioSecret:<Key Id="client_secret" StorageReferenceId="B2C_1A_AsignioSecret" />Сохраните изменения.
Добавить пользовательский сценарий
Провайдер удостоверений отсутствует на страницах входа.
- Если у вас есть настраиваемый путь пользователя, продолжайте к настройке политики проверяющей стороны, в противном случае скопируйте шаблон пути пользователя.
- В начальном пакете откройте LocalAccounts/TrustFrameworkBase.xml.
- Найдите и скопируйте содержимое элемента UserJourney , который включает
Id=SignUpOrSignIn. - Откройте LocalAccounts/TrustFrameworkExtensions.xml.
- Найдите элемент UserJourneys . Если его нет, добавьте его.
- Вставьте содержимое элемента UserJourney в качестве дочернего элемента UserJourneys.]
- Переименуйте путь пользователя ID. Например:
Id=AsignioSUSI.
Дополнительные сведения: пути взаимодействия пользователей
Добавьте поставщика удостоверений в путь пользователя
Добавьте нового поставщика удостоверений в путь пользователя.
- Найдите элемент шага оркестрации, который включает в себя
Type=CombinedSignInAndSignUpилиType=ClaimsProviderSelectionв процессе работы пользователя. Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений, через которых пользователи входят в систему. Порядок элементов определяет порядок кнопок входа. - Добавьте XML-элемент ClaimsProviderSelection .
- Задайте для параметра TargetClaimsExchangeId понятное имя.
- Добавьте элемент ClaimsExchange .
- Установите идентификатор в значение целевого идентификатора обмена заявками.
- Обновите значение TechnicalProfileReferenceId на идентификатор технического профиля, который вы создали.
Следующий XML-код демонстрирует оркестрацию взаимодействия пользователей с поставщиком удостоверений.
<UserJourney Id="AsignioSUSI">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
<ClaimsProviderSelection TargetClaimsExchangeId="AsignioExchange" />
<ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
</ClaimsProviderSelections>
<ClaimsExchanges>
<ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- Check if the user has selected to sign in using one of the social providers -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AsignioExchange" TechnicalProfileReferenceId="Asignio-Oauth2" />
<ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>authenticationSource</Value>
<Value>localAccountAuthentication</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadUsingAlternativeSecurityId" TechnicalProfileReferenceId="AAD-UserReadUsingAlternativeSecurityId-NoError" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- Show self-asserted page only if the directory does not have the user account already (i.e. we do not have an objectId). This can only happen when authentication happened using a social IDP. If local account was created or authentication done using ESTS in step 2, then an user account must exist in the directory by this time. -->
<OrchestrationStep Order="4" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="SelfAsserted-Social" TechnicalProfileReferenceId="SelfAsserted-Social" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- This step reads any user attributes that we may not have received when authenticating using ESTS so they can be sent in the token. -->
<OrchestrationStep Order="5" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>authenticationSource</Value>
<Value>socialIdpAuthentication</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- The previous step (SelfAsserted-Social) could have been skipped if there were no attributes to collect from the user. So, in that case, create the user in the directory if one does not already exist (verified using objectId which would be set from the last step if account was created in the directory. -->
<OrchestrationStep Order="6" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AADUserWrite" TechnicalProfileReferenceId="AAD-UserWriteUsingAlternativeSecurityId" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
<ClientDefinition ReferenceId="DefaultWeb" />
</UserJourney>
Настройте политику доверяющей стороны
Политика проверяющей стороны, например SignUpSignIn.xml, определяет путь пользователя, выполняемый Azure AD B2C.
- В доверяющей стороне найдите элемент DefaultUserJourney.
- Обновите ReferenceId, чтобы он соответствовал идентификатору пути пользователя, где вы добавили провайдера идентификации.
В следующем примере для AsignioSUSI пути пользователя для параметра ReferenceId задано значение AsignioSUSI:
<RelyingParty>
<DefaultUserJourney ReferenceId="AsignioSUSI" />
<TechnicalProfile Id="PolicyProfile">
<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}" />
<OutputClaim ClaimTypeReferenceId="correlationId" DefaultValue="{Context:CorrelationId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Отправка настраиваемой политики
- Войдите на портал Azure.
- На панели инструментов портала выберите каталоги и подписки.
- Параметры портала | Каталоги + подписки в списке имен каталогов найдите каталог Azure AD B2C.
- Выберите Переключиться.
- В портале Azure найдите и выберите Azure AD B2C.
- В разделе "Политики" выберите Identity Experience Framework.
- Выберите "Отправить настраиваемую политику".
- Отправьте два файла политики, которые вы изменили в следующем порядке:
- Политика расширения — например
TrustFrameworkExtensions.xml - Политика проверяющей стороны, например
SignUpOrSignin.xml
Проверка настраиваемой политики
- В клиенте Azure AD B2C и в разделе "Политики" выберите "Платформа взаимодействия с удостоверениями".
- В разделе "Пользовательские политики" выберите AsignioSUSI.
- Для приложения выберите зарегистрированное веб-приложение.
URL-адрес ответа .
https://jwt.ms - Выберите Запустить немедленно.
- Браузер перенаправляется на страницу входа Asignio.
- Появится экран входа.
- Внизу выберите аутентификацию Asignio.
Если у вас есть подпись Asignio, вам будет предложено пройти проверку подлинности с помощью подписи Asignio. В противном случае укажите номер телефона устройства для проверки подлинности через SMS OTP. Используйте ссылку для регистрации подписи Asignio.
- Браузер перенаправляется в
https://jwt.ms. Отображается содержимое токена, возвращаемое Azure AD B2C.