ClaimsTransformations

Notes

Dans Active Directory B2C, les stratégies personnalisées sont principalement conçues pour gérer des scénarios complexes. Pour la plupart des scénarios, nous vous recommandons de recourir à des flux d’utilisateurs intégrés. Si vous ne l’avez pas fait, découvrez le Pack de démarrage de stratégie personnalisée dans Prise en main des stratégies personnalisées dans Active Directory B2C.

L’élément ClaimsTransformations contient une liste des fonctions de transformation de revendication utilisables dans des parcours utilisateur dans le cadre d’une stratégie personnalisée. Une transformation de revendication convertit une revendication donnée en une autre. Dans la transformation de revendication, vous spécifiez la méthode de transformation, par exemple l’ajout d’un élément à une collection de chaînes ou le changement de la casse d’une chaîne.

Pour inclure la liste des fonctions de transformation de revendication pouvant être utilisées dans les parcours utilisateur, vous devez déclarer un élément XML ClaimsTransformations sous la section BuildingBlocks de la stratégie.

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

L’élément ClaimsTransformation contient les attributs suivants :

Attribut Obligatoire Description
Id Oui Identificateur servant à identifier de façon unique la transformation de revendication. L’identificateur est référencé à partir d’autres éléments XML dans la stratégie.
Méthode de transformation Oui Méthode de transformation à utiliser dans la transformation de revendication. Chaque transformation de revendication a ses propres valeurs. Pour obtenir la liste complète des valeurs disponibles, consultez la référence des transformations de revendications.

ClaimsTransformation

L’élément ClaimsTransformation contient les éléments suivants :

<ClaimsTransformation Id="<identifier>" TransformationMethod="<method>">
  <InputClaims>
    ...
  </InputClaims>
  <InputParameters>
    ...
  </InputParameters>
  <OutputClaims>
    ...
  </OutputClaims>
</ClaimsTransformation>
Élément Occurrences Description
InputClaims 0:1 Liste d’éléments InputClaim qui spécifient les types de revendications pris comme entrées de la transformation de revendication. Chacun de ces éléments contient une référence à un ClaimType déjà défini dans la section ClaimsSchema de la stratégie.
InputParameters 0:1 Liste d’éléments InputParameter qui sont fournis comme entrée de la transformation de revendication.
OutputClaims 0:1 Liste d’éléments OutputClaim qui spécifient les types de revendications générés après l’appel de la ClaimsTransformation. Chacun de ces éléments contient une référence à un ClaimType déjà défini dans la section ClaimsSchema.

InputClaims

L’élément InputClaims contient l’élément suivant :

Élément Occurrences Description
InputClaim 1:n Type de revendication d’entrée attendu.

InputClaim

L’élément InputClaim contient les attributs suivants :

Attribut Obligatoire Description
ClaimTypeReferenceId Oui Référence à un ClaimType déjà défini dans la section ClaimsSchema de la stratégie.
TransformationClaimType Oui Identificateur servant à référencer un type de transformation de revendication. Chaque transformation de revendication a ses propres valeurs. Pour obtenir la liste complète des valeurs disponibles, consultez la référence des transformations de revendications.

InputParameters

L’élément InputParameters contient l’élément suivant :

Élément Occurrences Description
InputParameter 1:n Paramètre d’entrée attendu.

InputParameter

Attribut Obligatoire Description
Id Oui Identificateur qui est une référence à un paramètre de la méthode de transformation de revendication. Chaque méthode de transformation de revendication a ses propres valeurs. Pour obtenir une liste complète des valeurs disponibles, consultez le tableau de transformations de revendications.
DataType Oui Type de données du paramètre, tel que String, Boolean, Int ou DateTime conformément à l’énumération DataType dans le schéma XML de stratégie personnalisée. Ce type est utilisé pour effectuer des opérations arithmétiques correctement. Chaque transformation de revendication a ses propres valeurs. Pour obtenir la liste complète des valeurs disponibles, consultez la référence des transformations de revendications.
Valeur Oui Valeur passée telle quelle à la transformation. Certaines valeurs sont arbitraires, et vous en sélectionnez certaines à partir de la méthode de transformation de revendication.

OutputClaims

L’élément OutputClaims contient l’élément suivant :

Élément Occurrences Description
OutputClaim 0:n Type de revendication de sortie attendu.

OutputClaim

L’élément OutputClaim contient les attributs suivants :

Attribut Obligatoire Description
ClaimTypeReferenceId Oui Référence à un ClaimType déjà défini dans la section ClaimsSchema de la stratégie.
TransformationClaimType Oui Identificateur servant à référencer un type de transformation de revendication. Chaque transformation de revendication a ses propres valeurs. Pour obtenir la liste complète des valeurs disponibles, consultez la référence des transformations de revendications.

Les revendications d’entrée et de sortie utilisées dans la transformation de revendications doivent être distinctes. La même revendication d’entrée ne peut pas être utilisée comme revendication de sortie.

Exemple

Par exemple, vous pouvez stocker la dernière version de vos conditions d’utilisation du service que l’utilisateur a acceptée. Quand vous mettez à jour les conditions d’utilisation du service, vous pouvez demander à l’utilisateur d’accepter la nouvelle version. Dans l’exemple suivant, la transformation de revendication HasTOSVersionChanged compare la valeur de la revendication TOSVersion à la valeur de la revendication LastTOSAcceptedVersion, puis retourne la revendication TOSVersionChanged booléenne.

<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>

Référence des transformations de revendications

Pour obtenir des exemples de transformations de revendications, consultez les pages de référence suivantes :