• Aucun résultat trouvé

Interprétation d’une politique de contrôle d’accès ASTD par des

6.1 Architecture du filtre de contrôle d’accès dy- dy-namique

Le filtre interprète une spécification ASTD suite aux requêtes d’autorisation re-çues du composant PDP correspondant. La figure 6.1 illustre une vue d’ensemble du filtre. La requête d’autorisation est l’événement pour lequel le filtre interprète la spé-cification. Les processus BPEL du filtre calculent le prochain état à partir de l’état courant de la politique ASTD afin de retourner une décision d’autorisation. Le filtre est constitué par un ensemble de onze processus BPEL, un processus par structure ASTD (automate, séquence, choix, fermeture de Kleene, synchronisation, garde, appel,

choix quantifié et synchronisation quantifiée) ainsi qu’un processus principal, nommé

Filter, et un processus aiguilleur, nommé ASTD. La figure 6.2 montre l’architecture du filtre.

6.1.1 Processus BPEL

Filter

Le filtre est exposé comme service Web à travers le processus Filter qui constitue le point d’entrée avec l’extérieur, nommément le composant PDP. La figure 6.3 montre l’interface FilterPT (pour Filter Port Type en anglais) exposée par ce processus et déclarée dans celui-ci par le lien de partenaire FilterPtrLnk. Elle offre quatre opérations : Init, AR, Rollback et Stop. Les opérations Init et Stop permettent

6.1. Architecture du filtre de contrôle d’accès dynamique Filter astd.xml ASTD Automaton *.xsl*.xsl*.xsl Sequence Choice ... ... Filtre de contrôle d’accès

Figure 6.2 – Architecture du filtre de contrôle d’accès dynamique

respectivement de démarrer et d’arrêter le filtre. L’opération Init calcule en plus l’état initial de la spécification ASTD et le conserve comme état courant. L’opération Stoppermet de quitter la boucle d’attente des opérations AR et Rollback et conduit le flot d’exécution de l’instance courante du processus vers une activité exit.

L’opération AR (pour Authorization Request en anglais) permet d’obtenir une dé-cision d’autorisation. Elle prend en paramètres dans la requête SOAP, entre autres, le nom de l’action concernée avec ses paramètres de contrôle d’accès et ses paramètres métiers. À la réception de la requête, le filtre calcule le prochain état de la politique de contrôle d’accès ASTD à partir de son état courant. Si le calcul échoue, c’est-à-dire qu’un nouvel état n’a pas pu être calculé, la réponse retournée par le filtre contient la valeur denied pour la décision d’autorisation. Dans le cas contraire, le nouvel état devient l’état courant et la réponse retournée au composant PDP qui a initié la requête contient la décision granted.

Dans cette implémentation, le filtre a une vue optimiste de l’exécution des actions du système d’information. Cette vue implique que les actions qui sont autorisées par le filtre seront probablement exécutées par le système d’information. Si tel n’est pas le cas, l’opération Rollback permet de revenir à l’état précédent, et ainsi annuler dans le filtre la validation de l’exécution de la dernière action pour laquelle une décision

Init AR Rollback Stop FilterPT FilterPtrLnk Execute IsFinal IS ASTDPT ASTDPTPtrLnk

Figure 6.3 – Processus Filter

d’autorisation a été positivement accordée. Elle n’est utilisée par le composant PDP que lorsque le système d’information n’a pas exécuté l’action, par exemple à cause de contraintes d’intégrité ou de règles d’affaires violées. À titre d’illustration, la décision d’autorisation peut être accordée pour l’exécution du service de retrait d’un montant dans un compte bancaire, mais le retrait ne s’effectue pas pour insuffisance de fonds. Dans cette éventualité l’appel de l’opération Rollback rétablit le filtre dans l’état précédant la décision d’autorisation positive. La requête SOAP pour cette opération n’a pas de paramètre, de même que la réponse SOAP.

La figure 6.3 montre également le lien de partenaire déclaré ASTDPtrLnk du type de lien de partenaire ASTD associé au type de port ASTDPT. Il permet aux instances du processus Filter d’utiliser les opérations Execute, IsFinal et IS associées au processus aiguilleur ASTD.

6.1.2 Processus BPEL

ASTD

Le processus ASTD agit comme aiguilleur vers les neuf autres processus associés aux structures ASTD. Son interface, montrée à la figure 6.4, comporte les opérations Execute, IsFinal et IS dont les requêtes et réponses sont aiguillées vers les neufs autres processus ASTD qui ont la même interface ASTDPT (pour ASTD Port Type en

6.1. Architecture du filtre de contrôle d’accès dynamique ParentASTDPtrLnk ASTDPT Execute IsFinal IS PtrLnkQSynchronization ASTDPT PtrLnkQChoice ASTDPT PtrLnkCall ASTDPT PtrLnkGuard ASTDPT PtrLnkSynchronization ASTDPT PtrLnkKleeneClosure ASTDPT PtrLnkChoice ASTDPT PtrLnkSequence ASTDPT PtrLnkAutomaton ASTDPT

Figure 6.4 – Processus ASTD

anglais). L’opération Execute prend en paramètres dans sa requête SOAP la spéci-fication d’une structure ASTD, l’état courant de cette spécispéci-fication, l’événement avec ses paramètres pour lequel un nouvel état doit être calculé, et enfin l’environnement courant d’exécution. La réponse SOAP de cette opération est le nouvel état calculé. L’opération IsFinal détermine si un état courant de la spécification est final. L’opé-ration IS (pour Initial State en anglais) calcule l’état initial d’une structure ASTD. Sa requête SOAP accepte en paramètres la spécification ASTD pour lequel le nouvel état doit être calculé et l’environnement courant. La réponse SOAP correspondante contient le nouvel état calculé.

Dans la figure 6.4, les interfaces WSDL exposées et requises sont schématisées. Le processus ASTD déclare plusieurs liens de partenaire, en particulier le lien de

PtrLnk

ASTDPT SubASTDPtrLnk ASTDPT

Figure 6.5 – Processus QChoice

partenaire ParentASTDPtrLnk de type ASTDPT est déclaré et exposé aux processus BPEL du filtre. Le type de port ASTDPT est inclus dans le document d’interfaces WSDL du fichier ASTD.wsdl. Le processus ASTD déclare aussi neuf autres liens de partenaire (PtrLnkAutomaton à PtrLnkQSynchronization) par lesquels il aiguille les requêtes et les réponses SOAP vers le processus BPEL qui implémente les règles sémantiques de la structure ASTD correspondante. Ces liens de partenaire sont aussi de type ASTDPT, c’est-à-dire que le processus ASTD est client de neuf services qui fournissent également les opérations Execute, IsFinal et IS.

6.1.3 Processus BPEL des structures ASTD

Le langage formel ASTD comporte neuf structures ASTD. L’interprétation d’une spécification ASTD est possible grâce à neuf processus BPEL correspondant chacun une structure ASTD et implémentant la sémantique opérationnelle du langage. Le processus QChoice correspond à la structure ASTD choix quantifié et ses interfaces (exposée et requise) sont illustrées à la figure 6.5. Tous les autres processus BPEL du filtre exposent et requièrent les mêmes interfaces à travers des liens de partenaire identiques.