Partager via


Définir un profil technique de validation dans une stratégie personnalisée Azure Active Directory B2C

Important

À compter du 1er mai 2025, Azure AD B2C ne sera plus disponible pour les nouveaux clients. Pour plus d’informations, consultez notre FAQ.

Remarque

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.

Un profil technique de validation est un profil technique ordinaire de n'importe quel protocole, tel que Microsoft Entra ID ou une API REST. Le profil technique de validation renvoie des revendications de sortie ou renvoie le code d’état HTTP 4xx, avec les données suivantes. Pour plus d’informations, consultez Renvoi d’un message d’erreur

{
    "version": "1.0.0",
    "status": 409,
    "userMessage": "Your error message"
}

La portée des revendications de sortie d’un profil technique de validation est limitée au profil technique auto-affirmé qui invoque le profil technique de validation et à ses profils techniques de validation. Si vous souhaitez utiliser les revendications de sortie dans l’étape d’orchestration suivante, ajoutez-les au profil technique auto-affirmé qui appelle le profil technique de validation.

Les profils techniques de validation sont exécutés dans l’ordre dans lequel ils apparaissent dans l’élément ValidationTechnicalProfiles . Vous pouvez configurer dans un profil technique de validation si l’exécution des profils techniques de validation suivants doit se poursuivre si le profil technique de validation génère une erreur ou réussit.

Un profil technique de validation peut être exécuté de manière conditionnelle en fonction des conditions préalables définies dans l’élément ValidationTechnicalProfile . Par exemple, vous pouvez vérifier s’il existe une revendication spécifique ou si une revendication est égale ou non à la valeur spécifiée.

Un profil technique auto-affirmé peut définir un profil technique de validation à utiliser pour valider tout ou partie de ses déclarations de sortie. Toutes les revendications d’entrée du profil technique référencé doivent apparaître dans les revendications de sortie du profil technique de validation de référencement.

Remarque

Seuls les profils techniques autodéclarés peuvent utiliser des profils techniques de validation. Si vous devez valider les revendications de sortie à partir de profils techniques non auto-affirmés, envisagez d’utiliser une étape d’orchestration supplémentaire dans votre parcours utilisateur pour prendre en charge le profil technique en charge de la validation.

ValidationTechnicalProfiles

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

Élément Occurrences Descriptif
ValidationProfil Technique 1 :n Profil technique à utiliser pour valider tout ou partie des revendications de sortie du profil technique de référencement.

L’élément ValidationTechnicalProfile contient l’attribut suivant :

Caractéristique Obligatoire Descriptif
Identifiant de Référence Oui Identificateur d’un profil technique déjà défini dans la stratégie ou la stratégie parente.
ContinueOnError Non Indiquer si la validation des profils techniques de validation ultérieurs doit se poursuivre si ce profil technique de validation génère une erreur. Valeurs possibles : true ou false (par défaut, le traitement des profils de validation supplémentaires s’arrêtera et une erreur sera renvoyée).
ContinuerOnSuccess Non Indiquer si la validation des profils de validation suivants doit se poursuivre si ce profil technique de validation réussit. Valeurs possibles : true ou false. La valeur par défaut est true, ce qui signifie que le traitement des profils de validation ultérieurs se poursuivra.

Remarque

Actuellement, si vous définissez ContinueOnError sur false pour un profil technique de validation de type ClaimsTransformation, le profil technique ne respecte pas le paramètre. Pour résoudre ce problème, utilisez plutôt les conditions préalables.

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

Élément Occurrences Descriptif
Conditions préalables 0:1 Liste des conditions préalables qui doivent être satisfaites pour que le profil technique de validation s’exécute.

L’élément Precondition contient l’attribut suivant :

Caractéristique Obligatoire Descriptif
Type Oui Type de vérification ou de requête à effectuer pour la condition préalable. Soit ClaimsExist est spécifié pour garantir que les actions doivent être exécutées si les revendications spécifiées existent dans l’ensemble de revendications actuel de l’utilisateur, soit ClaimEquals est spécifié que les actions doivent être exécutées si la revendication spécifiée existe et que sa valeur est égale à la valeur spécifiée.
ExecuteActionsIf Oui Indique si les actions de la condition préalable doivent être effectuées si le test a la valeur true ou false.

L’élément Condition préalable contient les éléments suivants :

Élément Occurrences Descriptif
Valeur 1 :n Données utilisées par la vérification. Si le type de cette vérification est ClaimsExist, ce champ spécifie un ClaimTypeReferenceId à interroger. Si le type de vérification est ClaimEquals, ce champ spécifie un ClaimTypeReferenceId à rechercher. Alors qu’un autre élément de valeur contient la valeur à vérifier.
Action Un-à-un (1:1) Action qui doit être effectuée si la vérification de la condition préalable dans une étape d’orchestration est vraie. La valeur de l’action est définie sur SkipThisValidationTechnicalProfile. Spécifie que le profil technique de validation associé ne doit pas être exécuté.

Exemple :

L’exemple suivant utilise les profils techniques de validation suivants :

  1. Le premier profil technique de validation vérifie les informations d’identification de l’utilisateur et ne continue pas si une erreur se produit, telle qu’un nom d’utilisateur non valide ou un mot de passe incorrect.
  2. Le profil technique de validation suivant ne s’exécute pas si la revendication userType n’existe pas ou si la valeur de userType est Partner. Le profil technique de validation tente de lire le profil utilisateur à partir de la base de données client interne et de continuer si une erreur se produit, telle que le service d’API REST n’est pas disponible ou une erreur interne.
  3. Le dernier profil technique de validation ne s’exécute pas si la revendication userType n’existe pas ou si la valeur de userType est Customer. Le profil technique de validation tente de lire le profil utilisateur à partir de la base de données interne du partenaire et continue si une erreur se produit, telle qu’un service d’API REST non disponible ou une erreur interne.
<ValidationTechnicalProfiles>
  <ValidationTechnicalProfile ReferenceId="login-NonInteractive" ContinueOnError="false" />
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromCustomersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Partner</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
  <ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromPartnersDatabase" ContinueOnError="true" >
    <Preconditions>
      <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
        <Value>userType</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
      <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
        <Value>userType</Value>
        <Value>Customer</Value>
        <Action>SkipThisValidationTechnicalProfile</Action>
      </Precondition>
    </Preconditions>
  </ValidationTechnicalProfile>
</ValidationTechnicalProfiles>