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


Определение технического профиля проверки в пользовательской политике Azure Active Directory B2C

Это важно

Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".

Замечание

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

Технический профиль проверки — это обычный технический профиль любого протокола, например идентификатор Microsoft Entra или REST API. Технический профиль проверки возвращает выходные утверждения или возвращает код состояния HTTP 4xx со следующими данными. Дополнительные сведения см. в разделе "Возврат сообщения об ошибке"

{
    "version": "1.0.0",
    "status": 409,
    "userMessage": "Your error message"
}

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

Технические профили проверки выполняются в последовательности, которая отображается в элементе Validation TechnicalalProfiles . Можно настроить в техническом профиле проверки, следует ли продолжить выполнение любых последующих технических профилей проверки, если технический профиль проверки вызывает ошибку или успешно выполнен.

Технический профиль проверки можно условно выполнить на основе предварительных условий, определенных в элементе Validation TechnicalalProfile . Например, можно проверить, существует ли конкретное утверждение, или если утверждение равно указанному значению.

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

Замечание

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

ВалидацияТехнические профили

Элемент ValidationTechnicalProfiles содержит следующие элементы:

Элемент Вхождения Описание
ВалидацияТехническийПрофиль 1:n Технический профиль, используемый для проверки некоторых или всех выходных утверждений технического профиля ссылки.

Элемент ValidationTechnicalProfile содержит следующий атрибут:

Свойство Обязательно Описание
Код идентификатора Да Идентификатор технического профиля, уже определенный в политике или родительской политике.
ContinueOnError (ПродолжитьНаОшибке) нет Указывая, следует ли продолжать проверку любых последующих технических профилей проверки, если этот технический профиль проверки вызывает ошибку. Возможные значения: true или false (по умолчанию обработка дополнительных профилей проверки будет остановлена и возвращена ошибка).
ПродолжитьНаУспехе нет Указывая, должна ли проверка любых последующих профилей проверки продолжаться, если этот технический профиль проверки успешно выполнен. Возможные значения: true или false. Значение по умолчанию — это trueозначает, что обработка дополнительных профилей проверки продолжится.

Замечание

В настоящее время если для параметра ContinueOnError задано значение false для технического профиля проверки типа ClaimsTransformation, технический профиль не учитывает этот параметр. Чтобы устранить эту проблему, используйте вместо этого предварительные условия.

Элемент ValidationTechnicalProfile содержит следующий элемент:

Элемент Вхождения Описание
Предпосылки 00:14 Список предварительных условий, которые должны быть выполнены для выполнения технического профиля проверки.

Элемент Предварительные условия содержит следующий атрибут:

Свойство Обязательно Описание
Type Да Тип проверки или запроса для выполнения предварительных условий. Либо ClaimsExist указывается, чтобы убедиться, что действия должны выполняться, если указанные утверждения существуют в текущем наборе утверждений пользователя, или ClaimEquals указывается, что действия должны выполняться, если указанное утверждение существует, и его значение равно указанному значению.
ExecuteActionsIf Да Указывает, должны ли выполняться действия в предусловии, если тест имеет значение true или false.

Элемент Предварительные условия содержит следующие элементы:

Элемент Вхождения Описание
Ценность 1:n Данные, используемые проверкой. Если этот флажок задан ClaimsExist, то в этом поле указывается значение ClaimTypeReferenceId для запроса. Если установлен ClaimEqualsтип проверки, это поле указывает идентификатор ClaimTypeReferenceId для запроса. В то время как другой элемент значения содержит проверяемое значение.
Действие 1:1 Действие, которое следует предпринять, если проверка предварительных условий в шаге оркестрации имеет значение true. Для параметра Action задано SkipThisValidationTechnicalProfileзначение . Указывает, что связанный технический профиль проверки не должен выполняться.

Пример

В следующем примере используются эти технические профили проверки:

  1. Первый технический профиль проверки проверяет учетные данные пользователя и не продолжается, если возникает ошибка, например недопустимое имя пользователя или недопустимый пароль.
  2. Следующий технический профиль проверки не выполняется, если утверждение userType не существует, или если значение userType равно Partner. Технический профиль проверки пытается прочитать профиль пользователя из внутренней клиентской базы данных и продолжить, если возникает ошибка, например служба REST API недоступна или любая внутренняя ошибка.
  3. Последний технический профиль проверки не выполняется, если утверждение userType не существует или значение userType Customer. Технический профиль проверки пытается считывать профиль пользователя из внутренней партнерской базы данных и продолжается, если возникает ошибка, например служба REST API недоступна или какая-либо внутренняя ошибка.
<ValidationTechnicalProfiles>
  <ValidationTechnicalProfile ReferenceId="login-NonInteractive" ContinueOnError="false" />
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromCustomersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Partner</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromPartnersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Customer</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
</ValidationTechnicalProfiles>