Элементы управления Display
Примечание.
В Azure Active Directory B2C пользовательские политики преимущественно предназначены для выполнения сложных сценариев. В большинстве случаев рекомендуется использовать встроенные потоки пользователей. Ознакомьтесь со статьей Начало работы с настраиваемыми политиками в Azure Active Directory B2C, чтобы узнать о базовом пакете настраиваемых политик, если еще не сделали этого.
Элемент управления отображением — это элемент пользовательского интерфейса, который реализует особую функциональность и взаимодействует с внутренней службой Azure Active Directory B2C (Azure AD B2C). Она позволяет пользователю выполнять на странице действия, которые вызывают технический профиль проверки из внутренней службы. Элементы управления отображением размещаются на этой странице, и на них ссылается технический профиль с самостоятельным подтверждением.
Необходимые компоненты
В разделе Metadata (Метаданные) технического профиля с самостоятельным подтверждением есть ссылка на ContentDefinition, где параметр DataUri
должен указывать контракт страницы версии 2.1.9 или более поздней. Например:
<ContentDefinition Id="api.selfasserted">
<LoadUri>~/tenant/default/selfAsserted.cshtml</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:selfasserted:2.1.9</DataUri>
...
Определение элементов управления отображением
Элемент DisplayControl содержит следующие атрибуты:
Атрибут | Обязательное поле | Описание: |
---|---|---|
Id |
Да | Идентификатор, который назначен этому элементу управления отображением. На него могут указывать ссылки. |
UserInterfaceControlType |
Да | Тип элемента управления отображением. В настоящее время поддерживается AuthenticationControl, элементы управления TOTP и элементы управления CAPTCHA. |
Контроль проверки
Элемент управления отображением позволяет проверить утверждения, например адреса электронной почты или номера телефона, на который пользователю будет отправлен код проверки. На следующем рисунке вы видите страницу регистрации с самостоятельным подтверждением, где размещены два элемента управления отображением, в которых выполняется проверка основного и дополнительного адресов электронной почты.
Элементы управления TOTP
Элементы управления отображением TOTP — это набор элементов управления отображением, которые предоставляют многофакторную проверку подлинности TOTP с помощью приложения Microsoft Authenticator. На следующем рисунке показана страница регистрации TOTP с тремя элементами управления отображением.
QrCodeControl
Элемент DisplayControl содержит следующие элементы.
Элемент | Вхождения | Description |
---|---|---|
InputClaims |
00:14 | Элементы InputClaim используются для предварительного заполнения значений утверждений, которые нужно собирать от пользователя. Дополнительные сведения см. в документации по элементу InputClaim. |
DisplayClaims |
00:14 | Элементы DisplayClaim представляют утверждения, которые нужно собирать от пользователя. Дополнительные сведения см. в документации по элементу DisplayClaim. |
OutputClaims |
00:14 | Элементы OutputClaim представляют утверждения, которые нужно временно сохранять для этого элемента DisplayControl. Дополнительные сведения см. в документации по элементу OutputClaim. |
Actions |
00:14 | Элементы Action используются для перечисления технических профилей проверки, которые будут вызываться в ответ на действия пользователя в интерфейсе. |
Входящие утверждения
В элементе управления отображением можно с помощью элементов InputClaim предварительно заполнить значения утверждений, которые будут собраны от пользователя на этой странице. Любой элемент InputClaimsTransformation может быть определен в техническом профиле с самостоятельным подтверждением, который ссылается на этот элемент управления отображением.
В следующем примере предварительно заполняется адрес электронной почты, который мы будем проверять.
<DisplayControl Id="emailControl" UserInterfaceControlType="VerificationControl">
<InputClaims>
<InputClaim ClaimTypeReferenceId="emailAddress" />
</InputClaims>
...
Отображаемые утверждения
Для каждого типа элементов управления отображением требуется собственный набор утверждений отображения, исходящих утверждений и выполняемых действий.
Как и в случае с утверждениями отображения, которые определяются в техническом профиле с самостоятельным подтверждением, эти утверждения отображения представляют утверждения, которые будут собраны от пользователя в элементе управления отображением. Указанный в ссылке элемент ClaimType должен определять элемент UserInputType для входных данных от пользователя, поддерживаемый службой Azure AD B2C, например TextBox
или DropdownSingleSelect
. Если для действия значение утверждения отображения является обязательным, задайте для атрибута Required (Обязательный) значение true
. Это означает, что пользователь обязан указать значение для этого конкретного утверждения отображения.
Для некоторых типов элементов управления отображением требуются определенные утверждения отображения. Например, VerificationCode является обязательным для элемента управления отображением с типом VerificationControl. С помощью атрибута ControlClaimType можно указать, какой элемент DisplayClaim назначен для этого обязательного утверждения. Например:
<DisplayClaim ClaimTypeReferenceId="otpCode" ControlClaimType="VerificationCode" Required="true" />
Исходящие утверждения
Исходящие утверждения элемента управления отображением не отправляются на следующий этап оркестрации. Они сохраняются временно, только для текущего сеанса управления отображением. Эти временные утверждения могут использоваться совместно в нескольких действиях одного элемента управления отображением.
Чтобы передать исходящие утверждения на следующий этап оркестрации, используйте элементы OutputClaim технического профиля с самостоятельным подтверждением, который ссылается на этот элемент управления отображением.
Действия элемента управления отображением
Действияэлемента управления отображением представляют собой процедуры, которые выполняются во внутренней службе Azure AD B2C, когда пользователь выполняет определенное действие на стороне клиента (в браузере). Например, это могут быть проверки, выполняемые по нажатию кнопки на странице.
Каждое действие определяет список технических профилей проверки. Они используются для проверки некоторых или всех утверждений отображения элемента управления отображением. Технический профиль проверки проверяет полученные от пользователя входные данные и возвращает ошибку пользователю. В действии элемента управления отображением вы можете использовать ContinueOnError, ContinueOnSuccess и Preconditions по тем же правилам, что и в технических профилях проверки из технического профиля с самостоятельным подтверждением.
Действия
Элемент Actions содержит следующий элемент:
Элемент | Вхождения | Description |
---|---|---|
Action |
1:n | Список действий, которые нужно выполнить. |
Действие
Элемент Action содержит следующий атрибут:
Атрибут | Обязательное поле | Описание: |
---|---|---|
Id |
Да | Тип операции. Возможные значения: SendCode или VerifyCode . Значение SendCode отправляет пользователю код. Это действие может содержать два технических профиля проверки: один — для создания кода, другой — для его отправки. Значение VerifyCode проверяет код, введенный пользователем в текстовое поле ввода. |
Элемент Action содержит следующий элемент:
Элемент | Вхождения | Description |
---|---|---|
ValidationClaimsExchange |
1:1 | Идентификаторы технических профилей, которые используются для проверки некоторых или всех утверждений отображения технического профиля, который ссылается на этот элемент. Все входящие утверждения технического профиля, который включается по ссылке, должны присутствовать в списке исходящих утверждений технического профиля, который ссылается на этот элемент. |
ValidationClaimsExchange
Элемент ValidationClaimsExchange содержит следующий элемент:
Элемент | Вхождения | Description |
---|---|---|
ValidationClaimsExchangeTechnicalProfile |
1:n | Технический профиль используется для проверки некоторых или всех утверждений отображения технического профиля, который ссылается на этот элемент. |
Элемент ValidationClaimsExchangeTechnicalProfile содержит следующий атрибут:
Атрибут | Обязательное поле | Описание: |
---|---|---|
TechnicalProfileReferenceId |
Да | Идентификатор технического профиля, который уже определен в политике или родительской политике. |
Элемент ValidationClaimsExchangeTechnicalProfile содержит следующий элемент:
Элемент | Вхождения | Description |
---|---|---|
Preconditions |
00:14 | Список предварительных условий, которые необходимо соблюдать для выполнения технического профиля проверки. |
Элемент Precondition содержит следующие атрибуты.
Атрибут | Обязательное поле | Описание: |
---|---|---|
Type |
Да | Тип выполняемой проверки или запроса для данного предварительного условия. Возможные значения: ClaimsExist или ClaimEquals . ClaimsExist указывает, что действия должны выполняться в том случае, если указанные утверждения существуют в наборе утверждений текущего пользователя. ClaimEquals указывает, что действия должны выполняться в том случае, если указанное утверждение существует и его значение равно указанному. |
ExecuteActionsIf |
Да | Указывает, следует ли выполнять действия в предварительном условии, если тест возвращает true или false. |
Элементы Precondition содержат следующие элементы:
Элемент | Вхождения | Description |
---|---|---|
Value |
1:n | Данные, используемые при проверке. Если тип этой проверки равен ClaimsExist , то это поле задает ClaimTypeReferenceId для запроса. Если тип проверки равен ClaimEquals , то это поле задает ClaimTypeReferenceId для запроса. Определяет значение, которое нужно найти в другом элементе значения. |
Action |
1:1 | Действие, которое требуется выполнить, если в результате проверки предварительного условия в рамках шага оркестрации получено значение true. Параметр Action (Действие) имеет значение SkipThisValidationTechnicalProfile , что указывает на то, что соответствующий технический профиль проверки не должен выполняться. |
В следующем примере отправляется и проверяется адрес электронной почты с помощью технического профиля SSPR идентификатора Microsoft Entra ID.
<DisplayControl Id="emailVerificationControl" UserInterfaceControlType="VerificationControl">
<InputClaims></InputClaims>
<DisplayClaims>
<DisplayClaim ClaimTypeReferenceId="email" Required="true" />
<DisplayClaim ClaimTypeReferenceId="verificationCode" ControlClaimType="VerificationCode" Required="true" />
</DisplayClaims>
<OutputClaims></OutputClaims>
<Actions>
<Action Id="SendCode">
<ValidationClaimsExchange>
<ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-SendCode" />
</ValidationClaimsExchange>
</Action>
<Action Id="VerifyCode">
<ValidationClaimsExchange>
<ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-VerifyCode" />
</ValidationClaimsExchange>
</Action>
</Actions>
</DisplayControl>
Следующий пример отправляет код в сообщении электронной почты или в текстовом сообщении, в зависимости от выбранного пользователем утверждения mfaType с определенными предусловиями.
<Action Id="SendCode">
<ValidationClaimsExchange>
<ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AzureMfa-SendSms">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>mfaType</Value>
<Value>email</Value>
<Action>SkipThisValidationTechnicalProfile</Action>
</Precondition>
</Preconditions>
</ValidationClaimsExchangeTechnicalProfile>
<ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-SendEmail">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>mfaType</Value>
<Value>phone</Value>
<Action>SkipThisValidationTechnicalProfile</Action>
</Precondition>
</Preconditions>
</ValidationClaimsExchangeTechnicalProfile>
</ValidationClaimsExchange>
</Action>
Ссылки на элементы управления отображением
Ссылки на элементы управления отображением применяются в утверждениях отображения в техническом профиле с самостоятельным подтверждением.
Например:
<TechnicalProfile Id="SelfAsserted-ProfileUpdate">
...
<DisplayClaims>
<DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
<DisplayClaim DisplayControlReferenceId="PhoneVerificationControl" />
<DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
<DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
<DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
Следующие шаги
Примеры использования элемента управления отображением см. в следующих статьях: