Xác định các luật ràng buộc trên metamodel

Một phần của tài liệu Ngôn ngữ mô hình hóa cho các yêu cầu bảo mật (Trang 38)

Các ràng buộc trên metamodel RBAC được xác định như sau:

- Luật 1 : Trong một mô hình không có hai Role trùng tên nhau. context Map

inv: self.RootRole->forAll(r1:Roles,r2:Roles|r1<>r2 implies r1.name<>r2.name)

- Luật 2: Trong một mô hình không có hai Permission trùng tên nhau. context Map

inv: self.RootPermission->forAll(p1:Permission,p2:Permission|p1<>p2 implies p1.Name<>p2.Name).

- Luật 3: Trong một mô hình không có hai Resource giống nhau (trùng tên, trùng kiểu). context Map

inv: self.RootSource->forAll(r1:Resource, r2:Resource| (r1.name=r2.name)and(r1.Type=r2.Type) implies r1=r2)

- Luật 4: Trong cây kế thừa vai trò không có một vai trò kế thừa tới chính nó. context Roles inv: self<>oppositeEnd

- Luật 5: Trong mô hình không có vai trò có quyền thấp kế thừa vai trò quyền cao. context Map

inv: self.RootRole->forAll(r:Roles|if (r.name=RoleName::User) then r.SubRole->size()=0 else if (r.name=RoleName::PowerUser) then r.SubRole ->forAll(i:Roles|i.name=RoleName::User) else if (r.name=RoleName::Owner)

then r.SubRole ->forAll(i:Roles|i.name=RoleName::User or i.name=RoleName::PowerUser) else if (r.name=RoleName::Administrator) then r.SubRole ->forAll(i:Roles|i.name=RoleName::User or i.name=RoleName::PowerUser or i.name=RoleName::Owner)

else true endif endif endif endif)

39 context Map

inv: self.RootRole->forAll(r1:Roles, r2:Roles|(r1<>r2)and(r1.SubRole

->exists(i:Roles|i=r2)) implies (r2.SubRole->forAll(j:Roles|j<>r1)))

- Luật 7: Trong một Permission không có hai Action giống nhau. context Permisson

inv: self.PermissionAccessAction->forAll(r1:Action,r2:Action |r1<>r2 implies r1.name<>r2.name)

Tóm lại trong chương này chúng tôi đã trình bày được về miền bảo mật theo mô hình RBAC, trên cơ sở nghiên cứu về miền chúng tôi đã xây dựng được metamodel biểu diễn cho DSML thuộc miền, cũng như xây dựng các luật ràng buộc bằng OCL cho metamodel.

40

CHƢƠNG 3. XÂY DỰNG NGÔN NGỮ CHUYÊN BIỆT MIỀN RBAC TRÊN ELIPSE

Trong Eclipse có hỗ trợ dự án EMF và GMF cho phát triển cú pháp trừu tượng và cú pháp cụ thể để xây dựng DSML, và dự án GMT cho xây dựng bộ sinh mã nguồn tự động cho ngôn ngữ DSML. Trong chương này chúng tôi trình bày về kết quả cài đặt hai dự án EMF và GMF cho DSML RBAC trong Eclipse.

Một phần của tài liệu Ngôn ngữ mô hình hóa cho các yêu cầu bảo mật (Trang 38)