Modèle générique d’un PEM
Spécification du PEM par métamodélisation La spécification du PEM présentée dans cette section est basée sur une architecture centralisée du PEM. Cette spécification décrit de manière générique le fonctionnement d’un PEM en précisant comment les informations sont échangées.
Diagrammes de séquences
Dans la description suivante des diagrammes de séquences, il est sous-entendu que les objets anonymes portent le nom de leur classe ; ils sont écrits en minuscule dans la police « sans sérif ». Les noms dans la police « machine à écrire » sont des noms de classe. Trois scénarios typiques sont présentés. La figure 4.5 illustre les échanges de messages entre un utilisateur authentifié et la plateforme, quand en particulier celui-ci accède au service E avec les paramètres métiers !→ bp.
Elle montre aussi la séquence principale de messages qui passent à travers les instances interceptor, pep et root suite à la requête au service initiée par l’utilisateur. Tel qu’indiqué par son nom, une instance de la classe Interceptor intercepte chaque requête de l’utilisateur pour y ajouter les paramètres de contrôle d’accès !→acp, tels que le rôle de l’utilisateur et son organisation. L’intercepteur envoie le message augmenté au PEP avec l’intention d’appliquer les politiques de contrôle d’accès déployées pour le service ciblé.
Ensuite, le PEP demande au PDP de plus haut niveau dans une hiérarchie de PDP une autorisation d’exécuter le service E avec les ensembles de paramètres !→acp et !→ bp (message AR(E,!→acp, !→ bp) dans la figure 4.5, AR pour « Authorization Request » en anglais). Le PDP retourne une décision d’autorisation au PEP. Si l’accès est autorisé, alors la requête originale de l’utilisateur est transmise au service destination. Sinon l’utilisateur reçoit une notification qui indique que l’exécution du service demandé n’est pas autorisée. La réponse renvoyée par le service demandée, s’il s’exécute, n’est pas retournée directement à l’utilisateur. Elle passe par le PEP, qui la redirige à l’utilisateur.