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


Логические преобразования утверждений

Это важно

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

В этой статье приведены примеры использования логических преобразований утверждений схемы Identity Experience Framework в Azure Active Directory B2C (Azure AD B2C). Дополнительные сведения см. в статье о преобразовании утверждений.

ИПретензии

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

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) inputClaim1 булевый Первое утверждение для оценки.
InputClaim (Утверждение входа) inputClaim2 булевый Второе утверждение для оценки.
outputClaim outputClaim булевый Утверждение, которое будет создано после вызова этого преобразования утверждений (true или false).

Пример AndClaims

В следующем преобразовании утверждений показано, как выполнять And два логических утверждения: isEmailNotExistи isSocialAccount. Выходное утверждение presentEmailSelfAsserted имеет true значение, если значения обоих входных утверждений имеют значение true.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="AndClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isEmailNotExist" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isSocialAccount" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentEmailSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Входные утверждения:
    • inputClaim1: true
    • inputClaim2: false
  • Выходные утверждения:
    • outputClaim: false

AssertBooleanClaimIsEqualToValue

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

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim InputClaim булевый Проверяемое утверждение.
ПараметрВвода valueToCompareToTo булевый Значение для сравнения (true или false).

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

Схема показывает, как использовать преобразование утверждений AssertStringClaimsAreEqual.

Пример AssertBooleanClaimIsEqualToValue

В следующем преобразовании утверждений показано, как проверить значение логического утверждения со значением true . Если значение accountEnabled утверждения равно false, создается сообщение об ошибке.

<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • Входные утверждения:
    • inputClaim: false
    • valueToCompareTo: true
  • Результат: возникла ошибка.

Вызов преобразования утверждений AssertBooleanClaimIsEqualToValue

Example-AssertBoolean Следующий технический профиль проверки вызывает преобразование утвержденийAssertAccountEnabledIsTrue.

<TechnicalProfile Id="Example-AssertBoolean">
  <DisplayName>Unit test</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

Самозаверяемый технический профиль вызывает технический профиль проверки Example-AssertBoolean .

<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
  <DisplayName>Example</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    <Item Key="UserMessageIfClaimsTransformationBooleanValueIsNotEqual">Custom error message if account is disabled.</Item>
  </Metadata>
  ...
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="Example-AssertBoolean" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

Сравните BooleanClaimToValue

Проверяет, что логическое значение утверждения равно true или falseвозвращает результат сжатия. Ознакомьтесь с преобразованием этих утверждений в демонстрации в реальном времени.

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) InputClaim булевый Утверждение для сравнения.
ПараметрВвода valueToCompareToTo булевый Значение для сравнения (true или false).
outputClaim compareResult булевый Утверждение, которое создается после вызова этого преобразования утверждений.

Пример CompareBooleanClaimToValue

В следующем преобразовании утверждений показано, как проверить значение логического утверждения со значением true . Если значение утверждения равноIsAgeOver21Years, преобразование утверждений true возвращается trueв противном случаеfalse.

<ClaimsTransformation Id="AssertAccountEnabled" TransformationMethod="CompareBooleanClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="IsAgeOver21Years" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim  ClaimTypeReferenceId="accountEnabled" TransformationClaimType="compareResult"/>
  </OutputClaims>
</ClaimsTransformation>
  • Входные утверждения:
    • inputClaim: false
  • Входные параметры:
    • valueToCompareTo: true
  • Выходные утверждения:
    • compareResult: false

NotClaims

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

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) InputClaim булевый Утверждение, с которым должно работать.
outputClaim outputClaim булевый Утверждение, созданное после этого преобразования утверждений, вызывается (true или false).

Пример NotClaims

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

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Входные утверждения:
    • inputClaim: false
  • Выходные утверждения:
    • outputClaim: true.

ИлиПретензии

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

Элемент TransformationClaimType (Тип утверждения) Тип данных Примечания.
InputClaim (Утверждение входа) inputClaim1 булевый Первое утверждение для оценки.
InputClaim (Утверждение входа) inputClaim2 булевый Второе утверждение для оценки.
outputClaim outputClaim булевый Утверждение, которое будет создано после вызова этого преобразования утверждений (true или false).

Пример OrClaims

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

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="OrClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedNotExists" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="presentTOSSelfAsserted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Входные утверждения:
    • inputClaim1: true
    • inputClaim2: false
  • Выходные утверждения:
    • outputClaim: true.

Дальнейшие шаги