Bây giờ chúng ta đã sử dụng các bộ lọc accessControl đơn giản như một nét rộng để hạn chế truy cập cho người sử dụng chứng thực, chúng ta cần để biến tập trung đểđáp ứng một số nhu cầu kiểm soát truy cập chi tiết hơn của ứng dụng. Như chúng ta đã đề cập, người dùng sẽđóng vai trò nhất định trong một dự án. Dự án sẽ có người sử dụng của chủ sở hữu loại, những người có thểđược dùng như các quản trị viên dự án. Họ sẽđược cấp tất cả các truy cập để thao tác các dự án. Dự án cũng sẽ có người sử dụng loại thành viên, những người sẽđược cấp một số chức năng dự án, nhưng một tập hợp con của những chủ sở hữu có thể thực hiện. Cuối cùng, dự án có thể có người sử dụng loại đầu đọc, những người chỉ có thể xem nội dung dự án liên quan và không làm thay đổi nó bằng bất cứ cách nào. Đểđạt được điều này loại mô hình truy cập dựa trên vai trò của một người sử dụng, chúng tôi lần lượt các tính năng RBAC của Yii.
RBAC là một cách tiếp cận được thành lập trong hệ thống an ninh máy tính để quản lý các quyền truy cập của người sử dụng chứng thực. Trong ngắn hạn, các phương pháp tiếp cận RBAC xác định vai trò trong một ứng dụng. Quyền sử dụng để thực hiện một số hoạt
động cũng được xác định và sau đó kết hợp với vai trò. Người dùng sau đó được giao cho một vai trò và thông qua các hiệp hội vai trò, có được các điều khoản quy định cho vai trò đó. Có rất nhiều tài liệu có sẵn cho người đọc tò mò về các khái niệm RBAC nói chung và phương pháp tiếp cận. Một nguồn thông tin tốt là Wikipedia:
http://en.wikipedia.org/wiki/Role-based_access_control. Chúng tôi sẽ tập trung vào các chi tiết cụ thể thực hiện Yii của RBAC.
Thực hiện Yii của RBAC
Yii thực hiện các RBAC là đơn giản, thanh lịch, và mạnh mẽ. Tại nền tảng
của RBAC trong Yii là ý tưởng của các item ủy quyền. Các item uỷ quyền chỉđơn giản là một sự cho phép làm những việc trong ứng dụng. Các điều khoản có thểđược phân loại như vai trò, nhiệm vụ, hoặc các hoạt động, và như vậy, tạo thành một hệ thống phân cấp cho phép. Vai trò có thể bao gồm các nhiệm vụ (hoặc các vai trò khác), nhiệm vụ có thể bao gồm các hoạt động (hoặc các nhiệm vụ khác) và các hoạt động là mức độ cho phép tiết nhất.
Ví dụ, trong ứng dụng TrackStar của chúng tôi, chúng ta cần một vai trò kiểu của chủ sở hữu. Vì vậy, chúng ta sẽ tạo ra một mục ủy quyền về vai trò của loại với tên chủ sở hữu. Vai trò này sau đó có thể bao gồm các nhiệm vụ như một "quản lý người dùng" và "quản lý vấn đề". Những nhiệm vụ này có thể sau đó tiếp tục bao gồm các hoạt động nguyên tử tạo nên những công việc này. Ví dụ, các nhiệm vụ quản lý người sử dụng có thể bao gồm các hoạt động tạo người dùng mới, người sử dụng chỉnh sửa, và xóa người sử dụng. Hệ thống cấp bậc này cho phép kế thừa các điều khoản như vậy đó, đưa ra ví dụ này, nếu người dùng được phân công vai trò chủ sở hữu, họ thừa hưởng được sự cho phép để thực hiện tạo, chỉnh sửa, và xóa các hoạt động người dùng.
Dịch văn bản hoặc trang web
Điển hình trong RBAC, bạn chỉđịnh một người sử dụng một hoặc nhiều vai trò và người sử dụng kế thừa các quyền đã được giao cho những vai trò. Điều này đúng cho RBAC trong Yii là tốt. Tuy nhiên, trong mô hình này, chúng tôi có thể kết hợp người dùng cho bất kỳ mục ủy quyền, không chỉ những kiểu vai trò. Điều này cho phép chúng ta sự linh hoạt để kết hợp một sự cho phép người dùng ở bất kỳ mức độ granularity. Nếu chúng ta chỉ muốn cấp các hoạt động người sử dụng xóa một người dùng cụ thể, và không cung cấp cho họ tất cả các truy cập vào một vai trò chủ sở hữu sẽ có,
chúng tôi chỉđơn giản là có thể kết hợp người sử dụng này hoạt động nguyên tử. Điều này làm cho RBAC trong Yii rất linh hoạt.