Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
cnam:nfe114:secureuml [2024/06/04 19:03] – créée jcheron | cnam:nfe114:secureuml [2024/06/05 01:31] (Version actuelle) – [Exemples] jcheron | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Secure-UML est une extension UML dont l' | Secure-UML est une extension UML dont l' | ||
Cette extension permet de définir des politiques de sécurité et des règles d' | Cette extension permet de définir des politiques de sécurité et des règles d' | ||
+ | |||
+ | ===== Principes ===== | ||
+ | |||
+ | ==== Role-Based Access Control ==== | ||
+ | Contrôle d' | ||
+ | |||
+ | Secure-UML utilise le modèle RBAC pour définir les permissions et les rôles des utilisateurs dans le système. | ||
+ | |||
+ | Le modèle RBAC associe les permissions aux rôles plutôt qu'aux individus, simplifiant la gestion des droits d' | ||
+ | |||
+ | === Rôles === | ||
+ | |||
+ | Regroupent les permissions en fonction des responsabilités des utilisateurs. | ||
+ | === Permissions === | ||
+ | Actions autorisées que les rôles peuvent effectuer sur les objets du système (ressources). | ||
+ | |||
+ | ==== Diagrammes de Secure-UML ==== | ||
+ | Secure-UML étend les diagrammes standard d'UML pour inclure des informations de sécurité. | ||
+ | |||
+ | === Diagrammes de Classes Sécurisés === | ||
+ | Incluent des annotations pour spécifier les permissions et les rôles associés aux classes et aux opérations. | ||
+ | === Diagrammes de Cas d' | ||
+ | Identifient les rôles et les permissions nécessaires pour chaque cas d' | ||
+ | |||
+ | ===== Éléments Clés de Secure-UML ===== | ||
+ | |||
+ | ==== Annotations de Sécurité ==== | ||
+ | Utilisées pour enrichir les éléments UML avec des informations de sécurité. | ||
+ | |||
+ | === Stereotypes === | ||
+ | Ajoutent des informations de sécurité aux éléments UML. | ||
+ | |||
+ | Par exemple, un stéréotype << role >> peut être utilisé pour annoter une classe comme représentant un rôle dans le modèle RBAC. | ||
+ | |||
+ | === Constraints === | ||
+ | Règles qui spécifient les conditions de sécurité. | ||
+ | |||
+ | Par exemple, une contrainte peut définir que seulement certains rôles peuvent accéder à une méthode particulière. | ||
+ | |||
+ | ==== Modélisation des Politiques de Sécurité ==== | ||
+ | Les politiques de sécurité sont définies en termes de permissions (opérations autorisées) et de rôles (regroupements de permissions). | ||
+ | |||
+ | === Définition des Rôles === | ||
+ | Les rôles sont définis en fonction des responsabilités dans l' | ||
+ | === Assignation des Permissions === | ||
+ | Les permissions sont associées aux rôles plutôt qu'aux utilisateurs individuels. | ||
+ | |||
+ | ==== Exemples ==== | ||
+ | Gestion d'une bibliothèque : | ||
+ | |||
+ | === Rôles : === | ||
+ | |||
+ | |||
+ | * Bibliothécaire : Un utilisateur avec le rôle de Bibliothécaire. | ||
+ | * Membre : Un utilisateur avec le rôle de Membre. | ||
+ | |||
+ | === Permissions : === | ||
+ | * Lecture : Inclut les actions de lire, emprunter et retourner des livres. | ||
+ | * Modification : Inclut les actions d' | ||
+ | * Administration : Inclut l' | ||
+ | === Cas d' | ||
+ | * Lecture : Lire un livre, emprunter un livre, retourner un livre. | ||
+ | * Modification : Ajouter un livre, modifier les informations sur un livre, supprimer un livre. | ||
+ | * Administration : Gérer les emprunts. | ||
+ | |||
+ | Dans ce diagramme, les rôles " | ||
+ | |||
+ | Les permissions sont ensuite reliées aux cas d' | ||
+ | === Secure Use case diagram === | ||
+ | < | ||
+ | <uml> | ||
+ | @startuml | ||
+ | |||
+ | !define ROLE Actor | ||
+ | !define PERMISSION Actor/ # | ||
+ | |||
+ | ' Définition des rôles | ||
+ | ROLE Bibliothécaire | ||
+ | ROLE Membre | ||
+ | |||
+ | ' Définition des permissions | ||
+ | PERMISSION Lecture | ||
+ | PERMISSION Modification | ||
+ | PERMISSION Administration | ||
+ | |||
+ | ' Acteurs (rôles) et leurs permissions | ||
+ | Bibliothécaire -down-> Lecture : << | ||
+ | Bibliothécaire -down-> Modification : << | ||
+ | Bibliothécaire -down-> Administration : << | ||
+ | |||
+ | Membre -down-> Lecture : << | ||
+ | |||
+ | ' Cas d' | ||
+ | Lecture --> (Lire un livre) : << | ||
+ | Lecture --> (Emprunter un livre) : << | ||
+ | Lecture --> (Retourner un livre) : << | ||
+ | Modification --> (Ajouter un livre) : << | ||
+ | Modification --> (Modifier les informations sur un livre) : << | ||
+ | Modification --> (Supprimer un livre) : << | ||
+ | Administration --> (Gérer les emprunts) : << | ||
+ | |||
+ | @enduml | ||
+ | |||
+ | </ | ||
+ | < | ||
+ | == Source == | ||
+ | |||
+ | <sxh ; | ||
+ | @startuml | ||
+ | |||
+ | !define ROLE Actor | ||
+ | !define PERMISSION Actor/ # | ||
+ | |||
+ | ' Définition des rôles | ||
+ | ROLE Bibliothécaire | ||
+ | ROLE Membre | ||
+ | |||
+ | ' Définition des permissions | ||
+ | PERMISSION Lecture | ||
+ | PERMISSION Modification | ||
+ | PERMISSION Administration | ||
+ | |||
+ | ' Acteurs (rôles) et leurs permissions | ||
+ | Bibliothécaire -down-> Lecture : << | ||
+ | Bibliothécaire -down-> Modification : << | ||
+ | Bibliothécaire -down-> Administration : << | ||
+ | |||
+ | Membre -down-> Lecture : << | ||
+ | |||
+ | ' Cas d' | ||
+ | Lecture --> (Lire un livre) : << | ||
+ | Lecture --> (Emprunter un livre) : << | ||
+ | Lecture --> (Retourner un livre) : << | ||
+ | Modification --> (Ajouter un livre) : << | ||
+ | Modification --> (Modifier les informations sur un livre) : << | ||
+ | Modification --> (Supprimer un livre) : << | ||
+ | Administration --> (Gérer les emprunts) : << | ||
+ | |||
+ | @enduml | ||
+ | </ | ||
+ | |||
+ | === Secure Class Diagram === | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | !define ROLE Class | ||
+ | !define PERMISSION Class | ||
+ | |||
+ | note "<< | ||
+ | |||
+ | ' Définition des classes pour les rôles | ||
+ | ROLE Bibliothécaire << | ||
+ | ROLE Membre << | ||
+ | |||
+ | ' Définition des permissions | ||
+ | PERMISSION Lecture << | ||
+ | + read(unLivre): | ||
+ | + return(unLivre): | ||
+ | + borrow(unLivre): | ||
+ | } | ||
+ | PERMISSION Modification << | ||
+ | + add(): | ||
+ | + modify(): | ||
+ | + delete(): | ||
+ | } | ||
+ | PERMISSION Administration << | ||
+ | + manage(): | ||
+ | } | ||
+ | |||
+ | ' Association des rôles avec les permissions | ||
+ | Bibliothécaire -down-> Lecture : << | ||
+ | Bibliothécaire -down-> Modification : << | ||
+ | Bibliothécaire -down-> Administration : << | ||
+ | |||
+ | Membre -down-> Lecture : << | ||
+ | |||
+ | ' Classes du système | ||
+ | class Livre << | ||
+ | +title: String | ||
+ | +author: String | ||
+ | +ISBN: String | ||
+ | +getDetails(): | ||
+ | } | ||
+ | |||
+ | class Emprunt << | ||
+ | +startDate: Date | ||
+ | +endDate: Date | ||
+ | +isOverdue(): | ||
+ | } | ||
+ | |||
+ | class Bibliothèque << | ||
+ | +add(Livre): | ||
+ | +modify(Livre): | ||
+ | +delete(Livre): | ||
+ | +borrow(livre: | ||
+ | +return(emprunt: | ||
+ | +manage(List< | ||
+ | } | ||
+ | |||
+ | ' Permissions pour les méthodes de la classe Bibliothèque | ||
+ | Lecture --> Livre : << | ||
+ | Lecture --> Bibliothèque:: | ||
+ | Lecture --> Bibliothèque:: | ||
+ | |||
+ | Modification --> Bibliothèque:: | ||
+ | Modification --> Bibliothèque:: | ||
+ | Modification --> Bibliothèque:: | ||
+ | Modification --> Livre : << | ||
+ | |||
+ | Administration --> Bibliothèque:: | ||
+ | Administration --> Emprunt : << | ||
+ | Lecture .. N1 | ||
+ | @enduml | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | == Source == | ||
+ | |||
+ | <sxh ; | ||
+ | @startuml | ||
+ | |||
+ | !define ROLE Class | ||
+ | !define PERMISSION Class | ||
+ | |||
+ | ' Définition des classes pour les rôles | ||
+ | ROLE Bibliothécaire << | ||
+ | ROLE Membre << | ||
+ | |||
+ | ' Définition des permissions | ||
+ | PERMISSION Lecture << | ||
+ | + read(): execute | ||
+ | + return(): execute | ||
+ | + borrow(): | ||
+ | } | ||
+ | PERMISSION Modification << | ||
+ | + add(): | ||
+ | + modify(): | ||
+ | + delete(): | ||
+ | } | ||
+ | PERMISSION Administration << | ||
+ | + manage(): | ||
+ | } | ||
+ | |||
+ | ' Association des rôles avec les permissions | ||
+ | Bibliothécaire -down-> Lecture : << | ||
+ | Bibliothécaire -down-> Modification : << | ||
+ | Bibliothécaire -down-> Administration : << | ||
+ | |||
+ | Membre -down-> Lecture : << | ||
+ | |||
+ | ' Classes du système | ||
+ | class Livre << | ||
+ | +title: String | ||
+ | +author: String | ||
+ | +ISBN: String | ||
+ | +getDetails(): | ||
+ | } | ||
+ | |||
+ | class Emprunt << | ||
+ | +startDate: Date | ||
+ | +endDate: Date | ||
+ | +isOverdue(): | ||
+ | } | ||
+ | |||
+ | class Bibliothèque << | ||
+ | +add(Livre): | ||
+ | +modify(Livre): | ||
+ | +delete(Livre): | ||
+ | +borrow(livre: | ||
+ | +return(emprunt: | ||
+ | +manage(List< | ||
+ | } | ||
+ | |||
+ | ' Permissions pour les méthodes de la classe Bibliothèque | ||
+ | Lecture --> Livre : << | ||
+ | Lecture --> Bibliothèque:: | ||
+ | Lecture --> Bibliothèque:: | ||
+ | |||
+ | Modification --> Bibliothèque:: | ||
+ | Modification --> Bibliothèque:: | ||
+ | Modification --> Bibliothèque:: | ||
+ | Modification --> Livre : << | ||
+ | |||
+ | Administration --> Bibliothèque:: | ||
+ | Administration --> Emprunt : << | ||
+ | |||
+ | @enduml | ||
+ | </ | ||
+ | |||