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.
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
- Encontre mais amostras de transformação de declarações no repositório GitHub da comunidade do Azure AD B2C