Определение технического профиля проверки в пользовательской политике в Azure Active Directory 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"
}

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

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

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

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

Примечание.

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

ValidationTechnicalProfiles

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

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

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

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

Примечание.

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

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

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

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

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

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

Элемент Вхождения Description
Значение 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>