Résolution des problèmes AD FS - Syntaxe de règle de revendications

Une revendication est une déclaration qu’un sujet fait à propos de lui-même ou d’un autre objet. Les revendications sont émises par une partie de confiance et une ou plusieurs valeurs leur sont fournies, puis elles sont empaquetées dans des jetons de sécurité émis par le serveur AD FS. Cet article traite de la syntaxe des revendications et de la création. Pour plus d’informations sur l’émission de revendications, consultez Résolution des problèmes AD FS - Émission de revendications.

Remarque

Vous pouvez utiliser ClaimsXRay sur le site d’aide AD FS pour vous aider à résoudre les problèmes liés aux revendications.

Mode de traitement des règles de revendication

Les règles de revendication sont traitées via le pipeline de revendications à l’aide du moteur de revendications. Le moteur de revendications est un composant logique du service de fédération qui examine le jeu des revendications entrantes présenté par un utilisateur, puis, en fonction de la logique de chaque règle, produit un jeu de revendications de sortie.

Création d’une règle de revendication

Les règles de revendication sont créées séparément pour chaque relation d’approbation fédérée au sein du service de fédération et ne sont pas partagées par plusieurs approbations. Vous pouvez créer une règle à partir d’un modèle de règle de revendication, démarrer à partir de rien en créant la règle à l’aide du langage de règle de revendication ou utiliser Windows PowerShell pour personnaliser une règle.

Présentation des composants du langage de règle de revendication

Le langage de règle de revendication se compose des éléments suivants, séparés par l’opérateur « = > » :

  • Une condition : utilisée dans une règle permettant de vérifier les revendications d’entrée et de déterminer si l’instruction d’émission de la règle doit être exécutée. Elle représente une expression logique qui doit être évaluée comme « true » pour que la partie du corps de la règle s’exécute.

  • Une instruction d’émission.

Exemple :

c:[type == "Name", value == "domain user"] => issue(type = "Role", value = "employee");

Cette revendication comporte les éléments suivants :

  • La condition, c:[type == "Name", value == "domain user"], évalue la revendication d’entrée indiquant si le nom du compte Windows est un utilisateur de domaine.
  • L’émission, issue(type = "Role", value = "employee"), si la condition est vraie, ajoute une nouvelle revendication à la revendication d’entrée avec le rôle d’employé.

Pour plus d’informations sur les revendications et la syntaxe, consultez Le rôle du langage de règle de revendications.

Éditeur de règle de revendications

La vérification de la syntaxe est effectuée par l’éditeur de règles de revendications une fois que vous avez terminé la revendication, puis cliquez sur OK. Par conséquent, si vous avez la syntaxe incorrecte, l’éditeur vous en informera.

Screenshot of the A D F S Management dialog box showing a message stating that the custom claim rule syntax is not valid.

Journaux d’événements

Lorsque vous cherchez à résoudre les problèmes d’une revendication à l’aide des journaux, la meilleure approche consiste à rechercher la sortie des revendications. Vous pouvez rechercher 1 000 et 1 001 événements dans le journal des événements.

Screenshot of the Event Properties dialog box showing the results of a 1000 event I D.

Création d’un exemple d’application

Vous pouvez également créer un exemple d’application pour faire écho à vos revendications. Par exemple, vous pouvez utiliser un exemple d’application et créer une partie de confiance qui a la même revendication que celle que vous essayez de résoudre et voir si l’application rencontre des problèmes avec cette revendication.

Screenshot of the sample application displayed in a browser.

Un bon exemple d’application web est disponible ici. Cette application renvoie les revendications qu’elle reçoit de la partie de confiance. Pour l’utiliser, vous devez modifier l’application web.config en procédant comme suit :

  • Passer https://app1.contoso.com/sampapp à l’URL qui sera utilisée pour héberger l’exemple d’application.
  • La modification de toutes les instances de sts.contoso.com pour pointer vers votre serveur de fédération AD FS.
  • Remplacement de l’empreinte numérique par votre empreinte numérique.

Screenshot of Visual Studio showing the web config file.

L’article de blog suivant contient d’excellentes instructions détaillées pour configurer cela.

Étapes suivantes