Chương 2 MỞ RỘNG ĐIỀU KHIỂN TRUY CẬP RBAC VỚI LUẬT
2.4 Khiển khai RBAC mở rộng với luật
2.4.3 Biểu đồ lớp
Biểu đồ lớp cho ta góc nhìn chi tiết hơn về mỗi module.Thông qua các biểu đồ này ta biết được các lớp chính trong mỗi module, quan hệ giữa các lớp trong mỗi module, các thuộc tính, phương thức của mỗi lớp.
2.4.3.1 ClaimMembershipProvider
Hình 2.3: Biểu đồ lớp ClaimMembershipProvider
Lớp/Giao diện Mô tả
IClaimMembershipProvider Định nghĩa các phương thức mà một
ClaimMembershipProvider cần có
ClaimMembershipProvider ngoài việc kế thừa từ MembershipProvider chuẩn, nó còn triển khai giao diện IClaimMembershipProvider, giao diện này định
nghĩa các phương thức đặc thù để làm việc với claim như GetRoles,
GetClaims.
2.4.3.2 Authentication
Hình 2.4: Biểu đồ lớp Authentication
Lớp/Giao diện Mô tả
IAuthenticationManager Đặc tả giao diện mà một Claims based
Authentication cần triển khai
AuthenticationManager Triển khai SignIn, SignOut sử dụng
thông tin người dùng được cung cấp bởi ClaimMembership
Bảng 2.5: Ý nghĩa các giao diện, lớp trong module Authentication
Giao diện IAuthenticationManager đặc tả hai phương thức SignIn và SignOut cho việc đang nhập và đăng xuất. Điểm đặc biệt đối AuthenticationManager khi cài đặt phương thức SignIn là:
- Khởi tạo Thread.CurrentPrincipal là một ClaimsPrincipal với các thông
tin (claim) được truy vấn từ database thông qua
IClaimMembershipProvider. Đối tượng ClaimsPrincipal chứa các thông tin phục vụ cho việc điều khiển truy cập trong module Authorization.
- Khởi tạo một SessionSecurityToken để hạn chế thông tin truyền về
Hình 2.5: Biểu đồ lớp Authorization
Lớp/Giao diện Mô tả
AuthorizationManager Lớp điều khiển truy cập theo Role, mở
rộng bởi luật
ClaimPermission Gọi ClaimsAuthorizationManager để
kiểm tra quyền truy cập
ClaimPermissionAttribute Định nghĩa một Permission Attribute
cho một phương thức, khi phương thức được gọi, một ClaimPermission được tạo ra để kiểm tra quyền truy cập.
Rule Biểu diễn cho một luật
Condition Chứa Expression Tree biểu diễn cho
phần điều kiện (condition) của Rule
RuleCollection Tập các Rule dạng từ điển (Dictionary)
để cho phép truy xuất nhanh đến một Rule theo Id
ResourceAction Lớp chứa cặp thông tin Resource và
Action
Role Lớp biểu diễn cho một vai trò (Role)
RoleCollection Lớp biểu diễn cho một tập các Role
Resources Lớp biểu diễn tập các cặp
<ResourceAction, RoleCollection>
RBACConfiguration Lớp lưu cấu hình điều khiển truy cập
AccessActionEnum Enum định nghĩa 2 action là Allow và
Deny
Bảng 2.6: Ý nghĩa các giao diện, lớp trong module Authorization
Phần lớn các lớp trong biểu đồ này là internal (phục vụ cho cài đặt bên trong module), chỉ có hai lớp public là ClaimPermissionAttribute và ClaimPermission.Hay nói cách khác, ứng dụng chỉ tương tác với module Authorization thông qua hai lớp này.