Rôle du moteur de revendications

À son niveau le plus élevé, le moteur de revendications dans AD FS est un moteur fonctionnant d’après des règles, qui est dédié au service et au traitement des demandes de revendication du service de fédération. Le moteur de revendications est la seule entité du service de fédération qui est chargée de l’exécution de chacun des ensembles de règles sur toutes les relations d’approbation fédérée que vous avez configurées, ainsi que de la transmission du résultat de sortie au pipeline de revendications.

Tandis que le pipeline de revendications est davantage un concept logique du processus intégral de la circulation des revendications, les règles de revendication sont un élément d’administration réel que vous pouvez utiliser pour personnaliser le flux des revendications pendant le processus d’exécution des règles de revendication. Pour plus d’informations sur le processus du pipeline, consultez la page The Role of the Claims Pipeline.

Comme indiqué dans l’illustration suivante, les actes d’acceptation des revendications entrantes (règles d’acceptation), d’autorisation des demandeurs de revendications (règles d’autorisation) et d’émission des revendications sortantes (règles d’émission) sont effectués par le moteur de revendications, parmi toutes les relations d’approbation fédérée de votre organisation, via les règles de revendication.

Illustration that shows the processes performed by the claims engine.

Processus d’exécution des règles de revendication

Lorsque vous configurez une approbation de fournisseur de revendications ou une approbation d’une partie de confiance dans votre organisation avec les règles de revendication, le ou les ensembles de règles de revendication pour cette approbation agissent comme un opérateur de contrôle pour les revendications entrantes. En effet, ils demandent au moteur de revendications d’appliquer la logique nécessaire dans les règles de revendication afin de déterminer s’il faut émettre des revendications et si oui, lesquelles.

La section suivante décrit chacune des étapes qui se produisent au niveau du moteur pendant le flux des revendications lors du processus d’exécution des règles de revendication. Chacune des étapes décrites ci-dessous se produit pour chaque phase décrite dans le processus du pipeline de revendications. Ces étapes sont les suivantes :

  • Étape 1 : initialisation

  • Étape 2 : exécution

  • Étape 3 : résultat de l’exécution

Pour plus d’informations sur le processus du pipeline, consultez la page The Role of the Claims Pipeline.

Étape 1 : initialisation

Dans la première étape du processus d’exécution des règles de revendication, le moteur de revendications accepte les revendications entrantes en les ajoutant d’abord au jeu des revendications d’entrée. Un jeu de revendications d’entrée est similaire à un cache en mémoire, qui est utilisé pour stocker temporairement des données tant qu’un processus requis a besoin que ces données soient mises à disposition pour la récupération. Les données du jeu de revendications d’entrée sont supprimées une fois que l’exécution de la règle est terminée.

Ajout d’une revendication au jeu de revendications d’entrée pour un ensemble de règles

Le jeu de revendications d’entrée est créé par le moteur de revendications lorsqu’il a besoin de stocker temporairement des données de revendication dans la mémoire pendant qu’il traite la logique associée à un ensemble de règles de revendication. Le moteur de revendications copie toutes les revendications entrantes dans le jeu de revendications d’entrée où elles peuvent être récupérées par la première règle de l’ensemble de règles.

Par exemple, dans l’illustration ci-dessous, le moteur de revendications lit les revendications A et B dans les revendications entrantes et les copie dans le jeu de revendications d’entrée. Une fois que les réclamations A et B se trouvent dans le jeu de revendications d’entrée, le moteur de revendications les récupère et les traite comme entrée pour la logique dans la première règle du jeu de règles de revendication.

Illustration that shows that the claims engine reads the claims of A and B from the incoming claims and copies them to the input claim set.

Toutes les règles d’un ensemble de règles de revendication partagent le même jeu de revendications d’entrée. Chaque règle de ce jeu peut être ajoutée au jeu de revendications d’entrée partagé, affectant ainsi toutes les règles suivantes du jeu.

Étape 2 : exécution

Dans cette étape du processus de règles de revendication, les règles de revendication sont traitées lorsque le moteur de revendications parcourt une par une et dans l’ordre chronologique toutes les règles d’un ensemble de règles spécifique. Chaque règle d’un ensemble de règles est exécutée une seule fois. Les règles sont exécutées dans l’ordre (de haut en bas) dans lequel elles apparaissent dans la boîte de dialogue Modifier les règles de revendication dans le composant logiciel enfichable de gestion AD FS. La règle de revendication située au début de l’ensemble de règles est traitée en premier, puis les règles suivantes, jusqu’à ce que toutes les règles soient exécutées.

Comme défini dans le langage de règle de revendication, une règle de revendication se compose de deux parties : une condition et une instruction d’émission. Le moteur de revendications traite tout d’abord la partie conditions à l’aide des données du jeu de revendications d’entrée afin de déterminer si la condition spécifiée dans la règle s’applique aux revendications contenues dans le jeu de revendications d’entrée (les revendications qui correspondent à la condition de la règle sont appelées revendications correspondantes). Si des revendications correspondantes sont trouvées, le moteur de revendications exécute l’instruction d’émission de la règle pour chaque jeu des revendications correspondantes. L’instruction d’émission de la règle peut effectuer l’une des tâches suivantes avec les revendications correspondantes :

  1. Copier une revendication correspondante dans le jeu de revendications de sortie.

  2. Transformer les champs de revendication et créer une nouvelle revendication dans le jeu de revendications d’entrée uniquement ou dans les jeux de revendications d’évaluation et de sortie.

  3. Utiliser la ou les revendications correspondantes comme clé pour rechercher plus d’informations à partir d’un magasin d’attributs afin de créer de nouvelles revendications dans le jeu de revendications d’entrée uniquement ou dans les jeux de revendications d’entrée et de sortie.

Ajout d’une revendication dans le jeu de revendications de sortie pour un ensemble de règles

Le jeu de revendications de sortie est un emplacement de la mémoire qui est vide à l’origine. Il est cependant important, car le moteur de revendications renvoie uniquement les revendications présentes dans ce jeu de revendications de sortie lorsque le processus d’exécution est terminé. Cela signifie que toutes les revendications uniquement présentes dans le jeu de revendications d’entrée, et pas dans celui de sortie, sont ignorées lors du calcul du jeu final des revendications de sortie.

Ajout d’une revendication dans les deux jeux de revendications pour un ensemble de règles

Lorsqu’une règle est traitée, les revendications sont ajoutées soit dans le jeu de revendications d’entrée, soit dans les jeux de revendications d’entrée et de sortie, selon l’instruction d’émission utilisée dans la règle. Le langage de règle de revendication fait référence à ces deux instructions sous les noms add et issue.

Si l’instruction add est utilisée, les revendications sont uniquement ajoutées au jeu de revendications d’entrée. Les revendications existent alors uniquement dans le cadre de l’exécution et cessent d’exister une fois l’exécution terminée. Si l’instruction issue est utilisée, les revendications sont ajoutées au jeu de revendications d’entrée, ainsi qu’au jeu de revendications de sortie. Les revendications sont retournées au jeu de revendications de sortie une fois l’exécution terminée. Pour plus d’informations sur ces instructions, consultez la page The Role of the Claim Rule Language.

Si la partie conditions d’une règle au sein d’un ensemble de règles ne correspond à aucune revendication du jeu de revendications d’entrée, la partie instruction d’émission de la règle est ignorée. Par conséquent, aucune revendication n’est ajoutée au jeu de revendications de sortie ou au jeu de revendications d’entrée. L’illustration suivante et les étapes correspondantes représentent le déroulement de la procédure lorsque le moteur de revendications exécute une règle de transformation :

Illustration that shows what happens when the claims engine executes a transform rule.

  1. Des revendications entrantes sont ajoutées au jeu de revendications d’entrée par le moteur de revendications.

  2. Lorsque la première règle s’exécute, elle détecte les revendications A et B qui, à ce moment précis, sont les seules revendications présentes dans le jeu de revendications d’entrée. La règle traite alors la partie conditions de la logique de la règle dans la règle 1.

  3. Dans la mesure où la revendication A est présente dans le jeu de revendications d’entrée, la condition de la règle est déterminée comme étant vraie (« true », c’est-à-dire correspondant à la revendication A) et une nouvelle revendication C est ajoutée aux jeux de revendications d’entrée et de sortie.

  4. La règle 2 peut désormais utiliser les revendications A, B et C (toutes les revendications présentes dans le jeu de revendications d’entrée) comme entrée pour traiter sa logique.

Pour plus d’informations sur la transformation des revendications, consultez la page When to Use a Transform Claim Rule.

Étape 3 : résultat de l’exécution

La dernière étape de l’exécution de l’ensemble de règles de revendication commence une fois que toutes les règles ont été exécutées au sein d’un ensemble de règles spécifique et que le jeu final de revendications est présent dans le jeu de revendications de sortie. Le moteur de revendications renvoie alors le contenu du jeu de revendications de sortie comme résultat de l’exécution de l’ensemble de règles. À ce stade, le pipeline de revendications prend le relais et déplace ce résultat final vers l’étape suivante de son processus.

Envoi de la sortie de l’exécution au pipeline de revendications

Lorsque le moteur de revendications traite un ensemble de règles, cet ensemble possède ses propres emplacements dans la mémoire, dédiés à ses jeux de réclamations d’entrée et de sortie. Cela signifie que les jeux de réclamation d’entrée et de sortie utilisés par un ensemble de règles sont distincts de ceux utilisés par un autre ensemble de règles.

Une fois le processus intégralement exécuté pour un ensemble de règles donné (étapes 1, 2 et 3), les revendications de sortie nouvellement émises (contenu du jeu de revendications de sortie) sont utilisées comme entrée pour l’ensemble de règles suivant dans le pipeline de revendications. Cela permet aux revendications de circuler de la sortie d’un ensemble de règles à l’entrée d’un autre ensemble de règles, comme indiqué dans l’illustration suivante.

AD FS roles

Note

Bien que l’ensemble de règles d’émission soit également une étape essentielle dans le pipeline, l’illustration ci-dessus n’en tient pas compte afin de simplifier le schéma. Pour consulter une illustration représentant l’ensemble de règles d’émission et la manière dont il s’intègre dans le pipeline de revendications, consultez la page The Role of the Claims Pipeline.

Dans ce cas, la sortie des règles d’acceptation est utilisée par le pipeline pour faire circuler le jeu final de revendications produit par les règles d’acceptation vers la deuxième étape du pipeline, c’est-à-dire le traitement des règles d’autorisation. À ce stade, l’intégralité du processus d’exécution des règles de revendication (étapes 1, 2 et 3 ci-dessus) s’exécute de nouveau pour l’ensemble de règles d’autorisation. Ce cycle se poursuit jusqu’à ce que l’ensemble de règles d’émission (la dernière étape du pipeline) soit terminé.

Une fois que les revendications sortantes finalisées ont été retournées par le moteur pour l’ensemble de règles d’émission, elles sont rassemblées en un paquet dans un jeton SAML qui est envoyé au client par le service de fédération.

Traitement des règles d’autorisation

Si l’ensemble de règles de revendication en cours d’exécution à l’étape 2 du processus d’exécution des règles de revendication se compose de règles d’autorisation (qui possèdent des jeux de revendications d’entrée et de sortie différents des jeux d’acceptation ou d’émission), celles-ci sont exécutées afin de déterminer si un demandeur de jeton est autorisé à obtenir un jeton de sécurité, délivré par le service de fédération, pour une partie de confiance donnée, d’après les revendications du demandeur.

L’objectif des règles d’autorisation est d’émettre une revendication d’autorisation ou de refus selon que l’utilisateur est autorisé ou non à obtenir un jeton pour la partie de confiance donnée. Comme indiqué dans l’illustration suivante, la sortie de l’exécution de l’autorisation est utilisée par le pipeline pour déterminer si l’ensemble de règles d’émission est exécuté ou non, en fonction de la présence ou de l’absence de la revendication d’autorisation et/ou de refus. Cependant, la sortie de l’exécution de l’autorisation elle-même n’est pas utilisée comme entrée pour l’ensemble de règles de revendication.

Illustration that shows the output of the authorization execution is used by the pipeline to determine whether the issuance rule set is executed or not.

Pour plus d’informations à propos de l’autorisation des revendications, consultez la page When to Use an Authorization Claim Rule.