Compartir vía


Transformaciones de notificaciones booleanas

En este artículo se proporcionan ejemplos de uso de las transformaciones de notificaciones booleanas del esquema de Identity Experience Framework en Azure Active Directory B2C (Azure AD B2C). Para más información, consulte Transformaciones de notificaciones.

AndClaims

Procesa una operación And de dos inputClaims booleanos y establece la notificación de salida con el resultado de la operación. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim inputClaim1 boolean Primera notificación que se evalúa.
InputClaim inputClaim2 boolean Segunda notificación que se evaluará.
OutputClaim outputClaim boolean La notificación que se generará después de que se haya invocado esta transformación de notificaciones (true o false).

Ejemplo de AndClaims

La siguiente transformación de notificaciones explica cómo aplicar And a dos notificaciones booleanas: isEmailNotExist y isSocialAccount. La notificación de salida presentEmailSelfAsserted está establecida en true si los valores de ambas notificaciones de entrada es 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>
  • Notificaciones de entrada:
    • inputClaim1: true
    • inputClaim2: false
  • Notificaciones de salida:
    • outputClaim: false

AssertBooleanClaimIsEqualToValue

Comprueba que los valores booleanos de dos notificaciones son iguales y lanza una excepción si no lo son. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
inputClaim inputClaim boolean La notificación que se va a comprobar.
InputParameter valueToCompareTo boolean El valor que se va a comparar (true o false).

La transformación de notificaciones AssertBooleanClaimIsEqualToValue siempre se ejecuta desde un perfil técnico de validación llamado por un perfil técnico autoafirmado. Los metadatos de un perfil técnico autoafirmado UserMessageIfClaimsTransformationBooleanValueIsNotEqual controlan el mensaje de error que el perfil técnico presenta al usuario. Los mensajes de error se pueden localizar.

Diagrama en el que se muestra cómo usar la transformación de notificaciones AssertStringClaimsAreEqual.

Ejemplo de AssertBooleanClaimIsEqualToValue

La siguiente transformación de notificaciones explica cómo comprobar el valor de una notificación booleana con un valor true. Si el valor de la notificación es accountEnabled, se desencadena un mensaje de error.

<ClaimsTransformation Id="AssertAccountEnabledIsTrue" TransformationMethod="AssertBooleanClaimIsEqualToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="accountEnabled" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="valueToCompareTo" DataType="boolean" Value="true" />
  </InputParameters>
</ClaimsTransformation>
  • Notificaciones de entrada:
    • inputClaim: false
    • valueToCompareTo: true
  • Resultado: aparece un error

Llamada a la transformación de notificaciones AssertBooleanClaimIsEqualToValue

El siguiente perfil técnico de validación Example-AssertBoolean llama a la transformación de notificaciones 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>

El perfil técnico autoafirmado llama al perfil técnico Example-AssertBoolean de validación.

<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

Comprueba que el valor booleano de una notificación es igual a true o false y que devuelve el resultado de la compresión. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim inputClaim boolean La notificación que se va a comparar.
InputParameter valueToCompareTo boolean El valor que se va a comparar (true o false).
OutputClaim compareResult boolean Notificación que se genera después de que se haya invocado esta transformación de notificaciones.

Ejemplo de CompareBooleanClaimToValue

La siguiente transformación de notificaciones explica cómo comprobar el valor de una notificación booleana con un valor true. Si el valor de la notificación IsAgeOver21Years es igual a true, la transformación de notificación devuelve true. De lo contrario, 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>
  • Notificaciones de entrada:
    • inputClaim: false
  • Parámetros de entrada:
    • valueToCompareTo: true
  • Notificaciones de salida:
    • compareResult: false

NotClaims

Realiza una operación Not del inputClaim booleano y establece el elemento outputClaim con el resultado de la operación. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim inputClaim boolean La notificación que se va a realizar.
OutputClaim outputClaim boolean La notificación que se genera después de que se haya invocado esta transformación de notificaciones.

Ejemplo de NotClaims

La siguiente transformación de notificaciones muestra cómo realizar la negación lógica en una notificación.

<ClaimsTransformation Id="CheckWhetherEmailBePresented" TransformationMethod="NotClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userExists" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • Notificaciones de entrada:
    • inputClaim: false
  • Notificaciones de salida:
    • outputClaim: true

OrClaims

Procesa una operación Or de dos inputClaims booleanos y establece el elemento outputClaim con el resultado de la operación. Consulte la demo en vivo de esta transformación de notificaciones.

Elemento TransformationClaimType Tipo de datos Notas
InputClaim inputClaim1 boolean Primera notificación que se evalúa.
InputClaim inputClaim2 boolean Segunda notificación que se evaluará.
OutputClaim outputClaim boolean La notificación que se generará después de que se haya invocado esta transformación de notificaciones (true o false).

Ejemplo de OrClaims

La siguiente transformación de notificaciones explica cómo aplicar Or a dos notificaciones 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>
  • Notificaciones de entrada:
    • inputClaim1: true
    • inputClaim2: false
  • Notificaciones de salida:
    • outputClaim: true

Pasos siguientes