Partilhar via


Transformações de afirmações booleanas

Este artigo fornece exemplos para utilizar as transformações de afirmações booleanas do esquema do Identity Experience Framework no Azure Active Directory B2C (Azure AD B2C). Para obter mais informações, veja transformações de afirmações.

AndClaims

Calcula uma And operação de duas afirmações de entrada booleanas e define a afirmação de saída com o resultado da operação. Veja a demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
InputClaim inputClaim1 boolean A primeira afirmação a avaliar.
InputClaim inputClaim2 boolean A segunda afirmação a avaliar.
OutputClaim outputClaim boolean A afirmação que será produzida após esta transformação de afirmações ter sido invocada (verdadeira ou falsa).

Exemplo de AndClaims

A seguinte transformação de afirmações demonstra como duas And afirmações booleanas: isEmailNotExist, e isSocialAccount. A afirmação presentEmailSelfAsserted de saída está definida como true se os valores de ambas as afirmações de entrada forem 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>
  • Afirmações de entrada:
    • inputClaim1: true
    • inputClaim2: false
  • Afirmações de saída:
    • outputClaim: false

AssertBooleanClaimIsEqualToValue

Verifica se os valores booleanos de duas afirmações são iguais e gera uma exceção se não forem. Veja a demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
inputClaim inputClaim boolean A afirmação a verificar.
InputParameter valueToCompareTo boolean O valor a comparar (verdadeiro ou falso).

A transformação de afirmações AssertBooleanClaimIsEqualToValue é sempre executada a partir de um perfil técnico de validação chamado por um perfil técnico auto-afirmado. Os metadados de perfil técnico auto-afirmado UserMessageIfClaimsTransformationBooleanValueIsNotEqual controlam a mensagem de erro que o perfil técnico apresenta ao utilizador. As mensagens de erro podem ser localizadas.

O diagrama mostra como utilizar a transformação de afirmações AssertStringClaimsAreEqual.

Exemplo de AssertBooleanClaimIsEqualToValue

A transformação de afirmações seguinte demonstra como verificar o valor de uma afirmação booleana com um true valor. Se o valor da accountEnabled afirmação for falso, é emitida uma mensagem de erro.

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

Chamar a transformação de afirmações AssertBooleanClaimIsEqualToValue

O seguinte Example-AssertBoolean perfil técnico de validação chama a transformação de AssertAccountEnabledIsTrue afirmações.

<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 auto-afirmado 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 booleano de uma afirmação é igual a true ou false, e devolve o resultado da compressão. Veja a demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
InputClaim inputClaim boolean A afirmação a ser comparada.
InputParameter valueToCompareTo boolean O valor a comparar (verdadeiro ou falso).
OutputClaim compareResult boolean A afirmação que é produzida após esta transformação de afirmações ter sido invocada.

Exemplo de CompareBooleanClaimToValue

A transformação de afirmações seguinte demonstra como verificar o valor de uma afirmação booleana com um true valor. Se o valor da IsAgeOver21Years afirmação for igual a true, a transformação de afirmações devolve 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>
  • Afirmações de entrada:
    • inputClaim: false
  • Parâmetros de entrada:
    • valueToCompareTo: true
  • Afirmações de saída:
    • compareResult: false

NotClaims

Calcula uma Not operação da afirmação de entrada booleana e define a afirmação de saída com o resultado da operação. Veja a demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
InputClaim inputClaim boolean A afirmação a ser operada.
OutputClaim outputClaim boolean A afirmação que é produzida após esta transformação de afirmações ter sido invocada (verdadeira ou falsa).

Exemplo de NotClaims

A seguinte transformação de afirmações demonstra como executar negações lógicas numa afirmação.

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

OrClaims

Calcula uma Or de duas afirmações booleanas e define a afirmação de saída com o resultado da operação. Veja a demonstração em direto desta transformação de afirmações.

Elemento TransformationClaimType Tipo de Dados Notas
InputClaim inputClaim1 boolean A primeira afirmação a avaliar.
InputClaim inputClaim2 boolean A segunda afirmação a avaliar.
OutputClaim outputClaim boolean A afirmação que será produzida após esta transformação de afirmações ter sido invocada (verdadeira ou falsa).

Exemplo de OrClaims

A seguinte transformação de afirmações demonstra como duas Or afirmaçõ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>
  • Afirmações de entrada:
    • inputClaim1: true
    • inputClaim2: false
  • Afirmações de saída:
    • outputClaim: true

Passos seguintes