ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ... ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ... Model Driven Architecture .... Role-Based Access Control .... Vi t tắt Vi Gi ĩ UML
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 3ờ
C
C 5 a C
thông tin ,
Sinh viên P
Trang 4
p
(MDS) nh mô hình thi t k h th ng cùng v i các yêu c u an ninh c
các công c t ng t o ra các ki n trúc ki m soát truy c p
t
-
Trang 5
1
2 5
2.1 5
2.2 5
2.3 Model Driven Architecture 8
2.4 Role-Based Access Control 9
2.5 10
2.5.1 Enterprise JavaBeans 10
2.5.2 Enterprise Services for Net 12
3 : 13
3.1 14
3.2 16
4 20
4.1 21
4.1.1 21
4.1.2 26
4.2 29
4.3 30
4.3.1 30
4.3.2 31
4.3.3 32
4.4 33
4.4.1 33
Trang 64.4.2 33
4.4.3 34
4.4.4 35
4.5 37
4.5.1 37
4.5.2 : 37
4.5.3 : 38
4.6 38
4.6.1 38
4.6.2 39
4.6.3 40
4.6.4 41
4.6.5 42
4.6.6 45
4.6.7 Test 56
4.7 62
63
64
65
Trang 7
Vi t tắt Vi Gi ĩ UML Unifiel Modeling Language Ngôn ng
MDA Model Driven Architecture
MDS Model Driven Security
RBAC Role-Based Access Control
EJB Enterprise JavaBeans M
trong Java OCL Object constraint language
MOF Meta-Object Facilty
Trang 8
ư 1 G ớ
Xây
Xâ Tuy nhiên, v
t
ph
-hoc
ôi ắ
ắ
-
H 3 :
-
-
-
Trang 9: (Model Driven Architecture)
(Model driven security - MDS)
2 3
(access control)
nh công khai
dialect),
truy nh
Trang 102:
Ta cho
-
2
dialects( ph )
ki
se JavaBeans (EJB) .NET
cho ĩ
Trang 11
t
Th hai, b ng cách tích h p an ninh và các mô hình thi t k h th
― ‖ ch xu t hi n tùy ch i s d ng phù h p v i các chính sách b o m c hóa
ĩ c
Trang 12
ư 2
:
Unifiled Modeling Language (ngôn
-
2.1 Đ
C
:
-
-
-
2.2 N
UML h tr các mô t v c u trúc và hành vi c a các h th ng s d ng các lo i mô hình ph n t khác nhau và các lo i bi
Trang 13
Các khía c nh c u trúc c a h th c b ng cách s d ng các l p
Các hành vi c a m t l p có th
ắ
3:
3 này cho th y c u trúc c a ng d ng l p 3 : M t cu c h p có các thu ngày bắ u (start: date) và th i gian d ki n (duration: time) Ch s h i tham gia, và v trí c a cu c h c nh b ng cách s d : :
:
Các hình ch nh i di
i di n cho quá trình chuy i Quá trình chuy i có th c dán nhãn v i tên c a các s ki n gây lên và tên c ng (
c hi n trong quá trình chuy
Trang 144 Trong ListMeetings, m i
s d ng có th duy t các cu c h p theo l ch trình và có th ắ
4:
p m t ngôn ng c t
-
3 :
Context Meeting inv: seft.participants-> includes(seft.owner)
Trang 15
―seft‖
u ― ‖
―->‖ ĩ Stereotypes
tagged values
ĩ
2.3 Model Driven Architecture xu p c nh và phát tri n nh ng ng d
ĩ
ngôn ng mô hình hóa có kh th c hóa ĩ
c kh e), các khía c nh h th ng (ch ng h o m t), ho c các công ngh c th có ba l a ch n thay th nh ngôn ng ĩ
stereotypes and tagged values -
ng
3
ĩ
Trang 16ĩ
n a, các giao di n cho truy v n và thao tác các siêu d li u gi th c a các ngôn ng c quy nh b ng cách s d ng m t c u hình UML
p nh ng l i th xây d ng các công c MDA
b ng cách tách bi t các cú pháp tr ng c a ngôn ng mô hình hóa t cú pháp c th c a trên UML, ta có th m t cách súc tích, c ti p s d xây d ng mô hình 2.4 Role-Based Access Control
:
AC Users x Permissions p (u, p) ∈ AC
Role-Based Access Control (RBAC)
2 :
user assignment - Permissions assignment -PA): UA ⊆ Users × Roles, PA ⊆ Roles × Permissions M i quan h ki m soát truy c h c a các m i quan h :
= ◦
Trang 17―◦‖
:
AC = {(u, p) ∈ Users × Permissions|∃ role ∈ Roles (u, role) ∈ UA ∧ (role, p) ∈ PA}
―≥‖
ĩ
= ◦ ≥ ◦
―≥‖
ĩ
ĩ
Vi t h th ng c p b c, gi ng phân chia các m i quan h ĩ
n hóa vi c qu n lý ki m soát truy c p khi cung c p m t thu n ti n và tr c quan tr ng
có th g ng v u t ch c th c t c a công ty 2.5 ậ hai Enterprise Services for .NET
2.5.1 Enterprise JavaBeans
Trang 18
Thông tin c n khai là nh ng tài li
3 :
M t thành ph n th c th có th n b n giao di n, có th c phân lo i theo hai chi u
n
ĩ
u khi n truy c p c c d
cung c p m cho kha m soát truy c p, các chính sách ki m soát truy c p c c tri t thành ph n EJB Các h th ng b o m t con c a máy ch ng d u trách nhi m th c thi chính sách này thay m t cho các thành ph ĩ
:
<method-permission> <role-name>Supervisor</role-name> <method> <ejb-name>Meeting</ejb-name> <method-intf>Remote</method-intf> <method-name>cancel</method-name> <method-params/> </method> </method-permission> ĩ
method-permission l role-name
Trang 19method
(ejb-name) intf method-name method-params) 2.5.2 Enterprise Services for Net Microsoft Enterprise Services for NET h tr s phát tri n c a các thành ph n phía máy ch d a trên n n t ng NET B ng cách cung c p các d ch v
qu i, và
The Enterprise Services
Supervisor
:
[SecurityRole("Supervisor")] public void cancel(){ }
Trang 20ư 3 ộ
SecureUML 5
3 :
-
-
-
5:
RBAC Information flow
Trang 21
3.1 C ư
6 ng c
supertype Subject chung 6: SecureUML metamodel
ĩ
:
i di n cho m t th c th h th ng, gi t i ho c m t Group là m t t p h
SubjectGroup
Trang 22SubjectAssignment
Permission ActionAssignment PermissionAssignment
ắ RoleHierarchy
AuthorizationConstraint là m t v ng ắn li n v i m (permisssion)
Tài nguyên (resource) là l c a t t c các y u t mô hình trong các ngôn ng
th
i ngu n tài nguyên cung c p m t ho c nhi ResourceAction (aciton subtypes) : AtomicAction và CompositeAction
ng c p th p có th c tr c ti p ánh x t ng c a
n n t ng m c l
i tác tr c ti p trên n n t ng m c tiêu c sắp x ctionHierarchy và
c s d ng c a nhóm
ĩ
n u này mang l i m ng ĩ nh các
ng c ― ‖
Trang 23
ắ atomicactions
i tài nguyên c th , nh ng c a , và h
th ng c p b t ph n c a m SecureUML
3.2
p p
: cureUML
UML metamodel type and stereotype SecureUML metamodel type
SubjectGroup «SubjectAssignment» SubjectAssignment
Trang 24B ng 1 tóm tắt c a các ánh x gi a các y u t c a metamodel SecureUML và UML
ĩ
Bây gi chúng ta minh h a cú pháp c th ng t i ví d hình 7 o m t: ch có ch s h u c a m t cu c h p có
ĩ
ĩ ĩ
ĩ >> >>
Trang 25
7
c stereotype <<Ent >>
(Permissi >>
ắ
Nh t s cho phép có th ch ng trên tài nguyên g c ho i nguyên con c
c
― ‖
i
Trang 26
u này
a trong mô hình và không nh
ắ ― ‖
ĩ thu (update) >> tên ―Meeting‖
i Hai thu nh s c p nh t (bao g m h y b ) và xóa m t cu c h p
n:
caller.name = self.owner.name
ĩ
Trang 27ư 4
+ X t, xo
ra
- :
Trang 30
:
Tên ca s d ng:
M : :
2:
:
3: 4:
Trang 33:
Trang 34Hình : c Use cas i dùng chung
3:
: : 2:
Trang 352: vi 3:
: A1:
A1:
Trang 362:
:
:
A1:
Trang 384.3.2
Hình 14: Bi u tr ng thái cho qu n lý khóa h c Trong tr ng , m i s d ng có th duy
th ắ EditCourse CreateCourse Course
Trang 394.3.3
5:
Trong tr ng m i s d ng có th và có th ắ Post Post
Trang 4322:
Trang 45:
Trang 4627:
Trang 474.6.3 ư
- :
28: chung
-
29:
-
3 :
-
Trang 494.6.5 T er
- Per
32:
- Permission cho Admin:
Trang 50
33:
: (Caller)
Trang 51- Permission cho CourseManager:
34:
:
:
- Premission cho SinhVien
35:
Trang 52
4.6.6
CourseManager
public class CourseController : Controller
Trang 544 :
:
public ActionResult Edit(int id) {
if(isOwnerCourse(id)) return View(repo.GetCourse(id)); else return View("DenyEditCourse"); }
4 :
Trang 5542:
43:
nh 44:
:
k
:
Trang 56public class AccountController : Controller
Trang 5747:
:
public ActionResult Edit( string UserID) {
if (!HttpContext.User.Identity.Name.Equals( "" )) {
int roleID = repo.GetUser(HttpContext.User.Identity.Name).RoleID; if (repo.GetRole(roleID).isEditUser()) return View(repo.GetUser(UserID)); else return View( "DenyEditUser" ); }
else return View( "DenyEditUser" ); }
48:
49:
Trang 5850:
CourseManager
:
public ActionResult createPost(int id){
if (isPost(id)) {
return View(); }
else{ TempData["Deny"] = ;
return RedirectToAction("Details/" + id); }
}
Trang 60
public ActionResult EditPost( int id)
Trang 6156:
57:
Trang 6258:
?
public ActionResult Join( int id) {
if (!User.Identity.Name.Equals( "" )&& repo.GetRole(repo.GetUser(User.Identity.Name).RoleID).JoinCourse==1) {
user currentUser = repo.GetUser(User.Identity.Name); repo.JoinCourse(currentUser.IDD, id); return RedirectToAction( "Details/" + id); }
else return View( "DenyJoin" ); }
59:
Trang 634.6.7 Test
viên :
CourseManager
viên :
thông tin
:
Trang 64
viên H :
CourseManager :
viên :
CourseManager :
viên :
:
Trang 65
CourseManager
a admin
:
viên :
n
CourseManager
Course
:
:
Trang 66
ng
:
S
:
CourseManag
Trang 67
:
Admin
:
:
CourseManager