Authorization API

Một phần của tài liệu Nghiên cứu về điều khiển truy cập sử dụng mô hình RBAC mở rộng (Trang 40)

Như đã đề cập trong mục 2.4.3.3, Authorization module chỉ có 2 lớp public là: ClaimPermissionAttribute và ClaimPermission. Vì thế, ứng dụng chỉ tương tác với module này thông qua 2 lớp này.

2.4.5.1 ClaimPermissionAttribute

Lớp này được sử dụng khi muốn điều khiển truy cập theo kiểu declarative. Nói cách khác nó là một thuộc tính của phương thức.Thuộc tính này chỉ định rằng phương thức cần được kiểm tra quyền truy cập trước khi thực thi.Có hai giá trị cần chỉ định khi khai báo, đó là Resource và Operation tương ứng với tài nguyên, và phép toán thao tác trên tài nguyên.

[ClaimPermission(Resource="User", Operation= "List")]

publicList<ListUserViewModel>ListUser() {

}

Chú ý:trong C# khi ta viết [ClaimPermission(Resource="User", Operation= "List")]thì nó chính là cách viết ngắn gọn của

[ClaimPermissionAttribute(Resource="User", Operation= "List")]mà thôi.

Để dành quyền điều khiển (kiểm tra quyền truy xuất) trước khi thực thi

phương thức.Lớp ClaimPermissionAttribute được xây dựng bằng cách kế

thừa từ lớp CodeAccessSecurityAttribute và ghi đè phương thức

CreatePermission để trả về một đối tượng ClaimPermission.

2.4.5.2 ClaimPermission

ClaimPermission triển khai giao diện IPermission

IUnrestrictedPermission.Điểm mấu chốt trong ClaimPermission là phương

thức Demand.Phương thức này được thực thi trước mỗi phương thức được

gắn thuộc tính ClaimPermissionAttribute để kiểm tra quyền truy xuất.Nếu

không được phép truy xuất thì phương thức Demand sẽ ném ra một

SecurityException.

Ngoài ra lớp ClaimPermission còn cung cấp 2 phương thức tĩnh:

publicstaticboolCheckAccess(string resource, string operation) {...}

39

Hai phương thức này được sử dụng trong theo cách thức imperative. Sự khác

nhau giữa hai phương thức này là CheckAccess trả về giá trị false khi người

dùng không có quyền truy xuất, trong khi Demand sẽ ném ra một

SecurityException.

2.4.5.3 Logic điều khiển truy cập

Để thấy được logic điều khiển truy cập và sự tương tác giữa

ClaimPermissionAttributeClaimPermission. Ta xét biểu đồ trình tự:

Hình 2.6: Logic điều khiển truy cập

- Khi ta gắn một ClaimPermissionAttributevới một phương thức sẽ khiến

.Net Framework gọi phương thức CreatePermission để lấy về một

40

- Trước khi thực thi phương thức, .Net Framework gọi phương thức

Demand để kiểm tra quyền truy cập, nếu người dùng hiện tại không có

41

Chương 3. ỨNG DỤNG

Để minh hoạ việc ứng dụng ExtensibilityRBAC framework trong thực tế.Chúng tôi thử nghiệm với ứng dụng chia sẻ tệp số liệu trong ngân hàng.

Một phần của tài liệu Nghiên cứu về điều khiển truy cập sử dụng mô hình RBAC mở rộng (Trang 40)

Tải bản đầy đủ (PDF)

(61 trang)