ClaimsTransformations

Примечание

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

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

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

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

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

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

ClaimsTransformation

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

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

InputClaims

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

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

InputClaim

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

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

InputParameters

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

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

InputParameter

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

OutputClaims

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

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

outputClaim

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

attribute Обязательно Описание
ClaimTypeReferenceId Да Ссылка на тип 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>

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

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