Partilhar via


Transformações de reivindicações booleanas

Importante

A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais nas nossas Perguntas Frequentes.

Este artigo fornece exemplos para usar as transformações de declarações booleanas do esquema do Identity Experience Framework no Azure Ative Directory B2C (Azure AD B2C). Para obter mais informações, consulte Transformações de declarações.

E Reclamações

Calcula uma And operação 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 dessa transformação de reivindicações.

Elemento TransformationClaimType Tipo de dados Observações
InputClaim inputClaim1 Booleano A primeira alegação a avaliar.
InputClaim inputClaim2 Booleano A segunda alegação a avaliar.
OutputClaim outputClaim Booleano A declaração que será produzida após essa transformação de declarações ter sido invocada (true ou false).

Exemplo de AndClaims

A transformação de declarações a seguir demonstra como duas And reivindicações booleanas: isEmailNotExist, e isSocialAccount. A declaração presentEmailSelfAsserted de saída é definida como true se os valores de ambas as declaraçõ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>
  • Declarações de entrada:
    • inputClaim1: verdadeiro
    • inputClaim2: falso
  • Declarações de saída:
    • outputClaim: falso

AssertBooleanClaimIsEqualToValue

Verifica se os valores booleanos de duas declarações são iguais e lança uma exceção se não forem. Confira a demonstração ao vivo dessa transformação de reivindicações.

Elemento TransformationClaimType Tipo de dados Observações
inputClaim inputClaim Booleano A alegação a ser verificada.
Parâmetro de Entrada valueToCompareTo Booleano O valor a comparar (verdadeiro ou falso).

A transformação de declarações AssertBooleanClaimIsEqualToValue é sempre executada a partir 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. As mensagens de erro podem ser localizadas.

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 true valor. Se o valor da declaração for false, uma mensagem de accountEnabled 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: falso
    • valueToCompareTo: verdadeiro
  • Resultado: Erro lançado

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

O perfil técnico de validação a seguir Example-AssertBoolean chama a transformação de AssertAccountEnabledIsTrue declaraçõ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 autoafirmado 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 declaração é igual a true ou falsee retorna o resultado da compactação. Confira a demonstração ao vivo dessa transformação de reivindicações.

Elemento TransformationClaimType Tipo de dados Observações
InputClaim inputClaim Booleano A alegação a ser comparada.
Parâmetro de Entrada valueToCompareTo Booleano O valor a comparar (verdadeiro ou falso).
OutputClaim compareResult Booleano A alegação que é produzida após essa transformação de reivindicações foi invocada.

Exemplo de CompareBooleanClaimToValue

A transformação de declarações a seguir demonstra como verificar o valor de uma declaração booleana com um true valor. Se o valor da reivindicação for igual a IsAgeOver21Years, a transformação de true declarações retornará true, caso contráriofalse.

<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: falso
  • Parâmetros de entrada:
    • valueToCompareTo: verdadeiro
  • Declarações de saída:
    • compareResult: false

NotClaims

Calcula uma Not operação 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 dessa transformação de reivindicações.

Elemento TransformationClaimType Tipo de dados Observações
InputClaim inputClaim Booleano A reivindicação a ser operada.
OutputClaim outputClaim Booleano A declaração que é produzida após essa transformação de declarações ter sido invocada (true ou false).

Exemplo de NotClaims

A transformação de declarações a seguir demonstra como executar 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: falso
  • Declarações de saída:
    • outputClaim: verdadeiro

OrReivindicações

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

Elemento TransformationClaimType Tipo de dados Observações
InputClaim inputClaim1 Booleano A primeira alegação a avaliar.
InputClaim inputClaim2 Booleano A segunda alegação a avaliar.
OutputClaim outputClaim Booleano A declaração que será produzida após essa transformação de declarações ter sido invocada (true ou false).

Exemplo de OrClaims

A transformação de declarações a seguir demonstra como duas Or reivindicaçõ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: verdadeiro
    • inputClaim2: falso
  • Declarações de saída:
    • outputClaim: verdadeiro

Próximos passos

  • Encontre mais exemplos de transformação de declarações no repositório GitHub da comunidade do Azure AD B2C