ClaimsTransformations

Nota:

En Azure Active Directory B2C, las directivas personalizadas se han diseñado principalmente para abordar escenarios complejos. Para la mayoría de los escenarios, se recomienda usar flujos de usuario integrados. Si no lo ha hecho, obtenga información sobre el paquete de inicio de directivas personalizadas en Introducción a las directivas personalizadas en Active Directory B2C.

El elemento ClaimsTransformations contiene una lista de funciones de transformación de notificaciones que puede usarse en los recorridos del usuario como parte de una directiva personalizada. Una transformación de notificaciones convierte una notificación determinada en otra. En la transformación de notificaciones, debe especificar el método de transformación, por ejemplo, agregando un elemento a una colección de cadenas o cambiando las mayúsculas y minúsculas de una cadena.

Para incluir la lista de funciones de transformación de notificaciones que se puede usar en los recorridos del usuario, se debe declarar un elemento XML ClaimsTransformations en la sección BuildingBlocks de la directiva.

<ClaimsTransformations>
  <ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
    ...
  </ClaimsTransformation>
</ClaimsTransformations>

El elemento ClaimsTransformation contiene los atributos siguientes:

Atributo Obligatorio Descripción
Identificador Un identificador que se usa para identificar de forma única la transformación de la notificación. Se hace referencia al identificador desde otros elementos XML de la directiva.
TransformationMethod El método de transformación que se va a usar en la transformación de las reclamaciones. Cada transformación de notificación tiene sus propios valores. Consulte la referencia de la transformación de notificaciones para obtener una lista completa de los valores disponibles.

ClaimsTransformation

El elemento ClaimsTransformation contiene los elementos siguientes:

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
Elemento Repeticiones Descripción
InputClaims 0:1 Una lista de elementos InputClaim que especifican los tipos de notificación que se toman como entrada en la transformación de notificaciones. Cada uno de esto elementos contiene una referencia a un ClaimType ya definido en la sección ClaimsSchema de la directiva.
InputParameters 0:1 Una lista de elementos InputParameter que se proporcionan como entrada para la transformación de notificaciones.
OutputClaims 0:1 Una lista de elementos OutputClaim que especifican los tipos de notificación que se producen después de que se invoque ClaimsTransformation. Cada uno de esto elementos contiene una referencia a un ClaimType ya definido en la sección ClaimsSchema.

InputClaims

El elemento InputClaims contiene el elemento siguiente:

Elemento Repeticiones Descripción
InputClaim 1:n Un tipo de notificación de entrada esperado.

InputClaim

El elemento InputClaim contiene los atributos siguientes:

Atributo Obligatorio Descripción
ClaimTypeReferenceId Una referencia a un ClaimType ya definido en la sección ClaimsSchema de la directiva.
TransformationClaimType Un identificador para hacer referencia a un tipo de notificación de transformación. Cada transformación de notificación tiene sus propios valores. Consulte la referencia de la transformación de notificaciones para obtener una lista completa de los valores disponibles.

InputParameters

El elemento InputParameters contiene el siguiente elemento:

Elemento Repeticiones Descripción
InputParameter 1:n Un parámetro de entrada esperado.

InputParameter

Atributo Obligatorio Descripción
Identificador Un identificador que es una referencia a un parámetro del método de transformación de notificaciones. Cada método de transformación de notificaciones tiene sus propios valores. Consulte la tabla de la transformación de notificaciones para obtener una lista completa de los valores disponibles.
DataType El tipo de datos del parámetro, como String, Boolean, Int o DateTime, según la enumeración DataType en el esquema XML de la directiva personalizada. Este tipo se usa para realizar operaciones aritméticas correctamente. Cada transformación de notificación tiene sus propios valores. Consulte la referencia de la transformación de notificaciones para obtener una lista completa de los valores disponibles.
Value Un valor que se pasa de forma literal a la transformación. Algunos de los valores son arbitrarios, algunos de ellos se seleccionan desde el método de transformación de notificaciones.

OutputClaims

El elemento OutputClaims contiene el elemento siguiente:

Elemento Repeticiones Descripción
OutputClaim 0:n Un tipo de notificación de salida esperado.

OutputClaim

El elemento OutputClaim contiene los atributos siguientes:

Atributo Obligatorio Descripción
ClaimTypeReferenceId Una referencia a un ClaimType ya definido en la sección ClaimsSchema de la directiva.
TransformationClaimType Un identificador para hacer referencia a un tipo de notificación de transformación. Cada transformación de notificación tiene sus propios valores. Consulte la referencia de la transformación de notificaciones para obtener una lista completa de los valores disponibles.

Las notificaciones de entrada y salida usadas en la transformación de notificaciones deben ser distintas. No se puede usar la misma notificación de entrada como notificación de salida.

Ejemplo

Por ejemplo, puede almacenar la última versión de sus términos del servicio que el usuario aceptó. Al actualizar los términos de servicio, puede pedir al usuario que acepte la nueva versión. En el ejemplo siguiente, la transformación de notificaciones HasTOSVersionChanged compara el valor de la notificación TOSVersion con el valor de la notificación LastTOSAcceptedVersion y después devuelve la notificación booleana TOSVersionChanged.

<BuildingBlocks>
  <ClaimsSchema>
    <ClaimType Id="TOSVersionChanged">
      <DisplayName>Indicates if the TOS version accepted by the end user is equal to the current version</DisplayName>
      <DataType>boolean</DataType>
    </ClaimType>
    <ClaimType Id="TOSVersion">
      <DisplayName>TOS version</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    <ClaimType Id="LastTOSAcceptedVersion">
      <DisplayName>TOS version accepted by the end user</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
  </ClaimsSchema>

  <ClaimsTransformations>
    <ClaimsTransformation Id="HasTOSVersionChanged" TransformationMethod="CompareClaims">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="TOSVersion" TransformationClaimType="inputClaim1" />
        <InputClaim ClaimTypeReferenceId="LastTOSAcceptedVersion" TransformationClaimType="inputClaim2" />
      </InputClaims>
      <InputParameters>
        <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
      </InputParameters>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="TOSVersionChanged" TransformationClaimType="outputClaim" />
      </OutputClaims>
    </ClaimsTransformation>
  </ClaimsTransformations>
</BuildingBlocks>

Referencia a las transformaciones de notificaciones

Para obtener ejemplos de transformaciones de notificaciones, consulte las páginas de referencia siguientes: