Compartilhar via


Transformações de declarações boolianas

Este artigo fornece exemplos para usar as transformações de declarações boolianas do esquema do Identity Experience Framework no Azure AD B2C (Azure Active Directory B2C). Para saber mais, confira transformações de declarações.

AndClaims

Calcula uma operação And de duas declarações de entrada booleanas e define a declaração de saída com o resultado da operação. Confira a Demonstração ao vivo desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim inputClaim1 booleano A primeira declaração a avaliar.
InputClaim inputClaim2 booleano A segunda declaração a avaliar.
OutputClaim outputClaim booleano A declaração que será produzida depois da invocação dessa transformação de declarações (verdadeiro ou falso).

Exemplo de AndClaims

A transformação de declarações a seguir demonstra como And duas declarações booleanas: isEmailNotExist e isSocialAccount. A declaração de saída presentEmailSelfAsserted será definida como true se o valor de ambas as declarações de entrada for 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>
  • Declarações de entrada:
    • inputClaim1: true
    • inputClaim2: false
  • Declarações de saída:
    • outputClaim: false

AssertBooleanClaimIsEqualToValue

Verifica se os valores boolianos de duas declarações são iguais e gera uma exceção se eles não são. Confira a Demonstração ao vivo desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim InputClaim booleano A declaração ser verificada.
InputParameter valueToCompareTo booleano O valor a ser comparado (true ou false).

A transformação de declarações AssertBooleanClaimIsEqualToValue é sempre executada por meio de um perfil técnico de validação que é chamado por um perfil técnico autodeclarado. Os metadados do perfil técnico autodeclarado UserMessageIfClaimsTransformationBooleanValueIsNotEqual controlam a mensagem de erro que o perfil técnico apresenta ao usuário. A mensagem de erro pode ser localizada.

O diagrama mostra como usar a transformação de declarações AssertStringClaimsAreEqual.

Exemplo de AssertBooleanClaimIsEqualToValue

A transformação de declarações a seguir demonstra como verificar o valor de uma declaração booleana com um valor true. Se o valor da declaração accountEnabled for falso, uma mensagem de erro será lançada.

<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • Declarações de entrada:
    • inputClaim: false
    • valueToCompareTo: true
  • Resultado: Erro gerado

Chamando a transformação de declarações AssertBooleanClaimIsEqualToValue

O perfil técnico de validação Example-AssertBoolean a seguir chama a transformação de declarações 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>

O perfil técnico autodeclarado chama o perfil técnico de validação 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>

CompareBooleanClaimToValue

Verifica se o valor booliano de uma declaração é igual a true ou false e retorna o resultado da compactação. Confira a Demonstração ao vivo desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim InputClaim booleano A declaração a ser comparada.
InputParameter valueToCompareTo booleano O valor a ser comparado (true ou false).
OutputClaim compareResult booleano A declaração que é produzida após essa transformação de declarações ter sido invocada.

Exemplo de CompareBooleanClaimToValue

A transformação de declarações a seguir demonstra como verificar o valor de uma declaração booleana com um valor true. Se o valor da declaração IsAgeOver21Years for igual a true, a transformação de declarações retornará true, caso contrário, 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>
  • Declarações de entrada:
    • inputClaim: false
  • Parâmetros de entrada:
    • valueToCompareTo: true
  • Declarações de saída:
    • compareResult: false

NotClaims

Calcula uma operação Not da declaração de entrada booleana e define a declaração de saída com o resultado da operação. Confira a Demonstração ao vivo desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim InputClaim booleano A declaração a ser operada.
OutputClaim outputClaim booleano A declaração que é produzida após a invocação dessa transformação de declarações (verdadeiro ou falso).

Exemplo de NotClaims

A transformação de declarações a seguir demonstra como realizar a negação lógica em uma declaração.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Declarações de entrada:
    • inputClaim: false
  • Declarações de saída:
    • outputClaim: true

OrClaims

Calcula uma Or das duas declarações booleanas e define a declaração de saída com o resultado da operação. Confira a Demonstração ao vivo desta transformação de declarações.

Elemento TransformationClaimType Tipo de Dados Observações
InputClaim inputClaim1 booleano A primeira declaração a avaliar.
InputClaim inputClaim2 booleano A segunda declaração a avaliar.
OutputClaim outputClaim booleano A declaração que será produzida depois da invocação dessa transformação de declarações (verdadeiro ou falso).

Exemplo de OrClaims

A transformação de declarações a seguir demonstra como Or duas declarações booleanas.

<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>
  • Declarações de entrada:
    • inputClaim1: true
    • inputClaim2: false
  • Declarações de saída:
    • outputClaim: true

Próximas etapas