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


Преобразования требований

Это важно

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

Замечание

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

Элемент ClaimsTransformations содержит список функций преобразования утверждений, которые можно использовать в пути пользователя в рамках пользовательской политики. Преобразование утверждений преобразует одно утверждение в другое. В преобразовании утверждений укажите метод преобразования, например добавление элемента в коллекцию строк или изменение регистра строки.

Чтобы включить список функций преобразования утверждений, которые можно использовать в пути пользователя, xml-элемент ClaimsTransformations должен быть объявлен в разделе BuildingBlocks политики.

<ClaimsTransformations>
  <ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
    ...
  </ClaimsTransformation>
</ClaimsTransformations>

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

Свойство Обязательно Описание
Идентификатор Да Идентификатор, который используется для уникальной идентификации преобразования утверждений. Идентификатор ссылается на другие XML-элементы в политике.
ПреобразованиеMethod Да Метод преобразования, используемый в преобразовании утверждений. Каждое преобразование утверждений имеет собственные значения. Полный список доступных значений см. в справочнике по преобразованию утверждений .

ClaimsTransformation

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

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
Элемент Вхождения Описание
InputClaims 00:14 Список элементов InputClaim , указывающих типы утверждений, которые принимаются в качестве входных данных для преобразования утверждений. Каждый из этих элементов содержит ссылку на ClaimType, уже определенную в разделе ClaimsSchema в политике.
Входные параметры 00:14 Список элементов InputParameter , предоставляемых в качестве входных данных для преобразования утверждений.
OutputClaims 00:14 Список элементов OutputClaim , указывающих типы утверждений, созданные после вызова ClaimsTransformation. Каждый из этих элементов содержит ссылку на ClaimType, уже определенный в разделе ClaimsSchema.

InputClaims

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

Элемент Вхождения Описание
InputClaim (Утверждение входа) 1:n Ожидаемый тип входящего утверждения.

InputClaim (Утверждение входа)

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

Свойство Обязательно Описание
ИдентификаторСсылкиТипаТребования Да Ссылка на ClaimType, уже определенная в разделе ClaimsSchema в политике.
TransformationClaimType (Тип утверждения) Да Идентификатор для ссылки на тип утверждения преобразования. Каждое преобразование утверждений имеет собственные значения. Полный список доступных значений см. в справочнике по преобразованию утверждений .

Входные параметры

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

Элемент Вхождения Описание
ПараметрВвода 1:n Ожидаемый входной параметр.

ПараметрВвода

Свойство Обязательно Описание
Идентификатор Да Идентификатор, который является ссылкой на параметр метода преобразования утверждений. Каждый метод преобразования утверждений имеет собственные значения. Полный список доступных значений см. в таблице преобразования утверждений.
Тип данных Да Тип данных параметра, например String, Boolean, Int или DateTime в соответствии с перечислением DataType в схеме XML пользовательской политики. Этот тип используется для правильного выполнения арифметических операций. Каждое преобразование утверждений имеет собственные значения. Полный список доступных значений см. в справочнике по преобразованию утверждений .
Ценность Да Значение, передаваемое в преобразование. Некоторые значения являются произвольными, некоторые из них вы выбираете из метода преобразования утверждений.

OutputClaims

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

Элемент Вхождения Описание
outputClaim 0:n Ожидаемый тип исходящего утверждения.

outputClaim

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

Свойство Обязательно Описание
ИдентификаторСсылкиТипаТребования Да Ссылка на ClaimType, уже определенная в разделе ClaimsSchema в политике.
TransformationClaimType (Тип утверждения) Да Идентификатор для ссылки на тип утверждения преобразования. Каждое преобразование утверждений имеет собственные значения. Полный список доступных значений см. в справочнике по преобразованию утверждений .

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

Пример

Например, вы можете сохранить последнюю версию условий предоставления услуг, принятых пользователем. При обновлении условий обслуживания пользователь может попросить пользователя принять новую версию. В следующем примере преобразование утверждений HasTOSVersionChanged сравнивает значение утверждения TOSVersion со значением утверждения LastTOSAcceptedVersion, а затем возвращает логическое утверждение TOSVersionChanged .

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="TOSVersionChanged">
      <DisplayName>Indicates if the TOS version accepted by the end user is equal to the current version</DisplayName>
      <DataType>boolean</DataType>
    </ClaimType>
    <ClaimType Id="TOSVersion">
      <DisplayName>TOS version</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    <ClaimType Id="LastTOSAcceptedVersion">
      <DisplayName>TOS version accepted by the end user</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
  </ClaimsSchema>

  <ClaimsTransformations>
    <ClaimsTransformation Id="HasTOSVersionChanged" TransformationMethod="CompareClaims">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="TOSVersion" TransformationClaimType="inputClaim1" />
        <InputClaim ClaimTypeReferenceId="LastTOSAcceptedVersion" TransformationClaimType="inputClaim2" />
      </InputClaims>
      <InputParameters>
        <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
      </InputParameters>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="TOSVersionChanged" TransformationClaimType="outputClaim" />
      </OutputClaims>
    </ClaimsTransformation>
  </ClaimsTransformations>
</BuildingBlocks>

Справочник по преобразованиям утверждений

Примеры преобразований утверждений см. на следующих справочных страницах: