Index: topia-service/doc/taas.rst diff -u /dev/null topia-service/doc/taas.rst:1.1 --- /dev/null Tue Dec 4 16:42:55 2007 +++ topia-service/doc/taas.rst Tue Dec 4 16:42:50 2007 @@ -0,0 +1,43 @@ +TAAS (TOPiA Authentication and Authorization Service) +===================================================== + +La sécurité comporte seulement des permissions de type entité, c'est à dire +il est possible de définir des actions sur une entité particulière. Pour pouvoir +exprimer des besoins du type une entité à la même permission qu'un autre, il suffit +de définir ce lien dans le DAO de l'entité dans la méthode getRequestPermission, +en renvoyant les permissions de l'autre entité. + +Exemple : + +A -> B +ADAO.getRequestPermission(a) = permission(b) + +La sécurité peut être définit sous forme de tag value, qui représente le chemin de +délegation des permissions entre entité. Elle est générée automatiquement dans les DAOs +des entités. + +Exemple dans le sens de l'association : + +A -> B +A.tagvalue.security=A.attribute.b + +Exemple dans le sens contraire de l'association : + +A <- B +A.tagvalue.security=B.attribute.a + +Exemple multiple associations : + +A -> B -> C +A.tagvalue.security=A.attribute.b +B.tagvalue.security=B.attribute.c + +Exemple de bifurcation d'associations : + +A -> B +A -> C +A.tagvalue.security=A.attribute.b:A.attribute.c + +TODO : +- Définition de la sécurité sous forme de dépendance dans le modèle. +- Optimisation de la sécurité en générant la requête HSQL direct sans utiliser la récursivité dans la méthode getRequestPermission.