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>
Справочник по преобразованиям утверждений
Примеры преобразования утверждений см. на следующих страницах справки: