Tải bản đầy đủ - 0 (trang)
CHƯƠNG 2. TÍCH HỢP MÔ ĐUN CHÍNH SÁCH TRUY CẬP RBAC VỚI ACTIVITI

CHƯƠNG 2. TÍCH HỢP MÔ ĐUN CHÍNH SÁCH TRUY CẬP RBAC VỚI ACTIVITI

Tải bản đầy đủ - 0trang

Hình 2.1: Metamodel của BPMN tích hợp với một số chính sách an ninh[8]

2.2. Tích hợp RBAC vào Activiti

Việc có thể tích hợp RBAC vào Activiti BPM, cần phải thực hiện một số

thay đổi trên mã nguồn của Activiti :

Mã nguồn của Activiti bao gồm ba mơ-đun chính: mơ-đun thiết kế, mơ-đun

thực thi và mơ-đun quản lý. Trong đó, mơ-đun thiết kế bao gồm tất cả các

mơ-đun con có tên bắt đầu “org.activiti.designer” được thiết kế dưới dạng

các dự án Eclipse Plug-in. Mô-đun thực thi là “activiti-engine” cung cấp tất

các chức năng cần thiết cho các mô-đun khác.

Mô-đun quản lý là “activiti-webapp-activiti2” là một ứng dụng web cho

việc triển khai quy trình sau khi mơ hình hóa.

2.2.2. Mơ hình hóa các chính sách truy nhập RBAC

Các bước để tích hợp RBAC vào mơ-đun thiết kế của Activiti bao gồm:





Bước 1: Sử dụng Eclipse EMF để mơ hình hóa mơ hình miền

metamodel của RBAC. Sau khi EMF metamodel của RBAC được xây

dựng, Eclipse EMF cho phép tự động sinh ra các lớp Java từ mơ hình

này. Bước này được thực hiện ở mơ-đun “org.activiti.designer.model”.







Bước 2: Sử dụng các lớp Java được sinh ra từ mơ hình để xây dựng các

mơ tả RBAC cho quy trình.







Bước 3: các lớp Java mơ tả RBAC của quy trình cần được export dưới

định dạng .xml cho phép triển khai trên Activiti Explorer



2.2.2.1. Xây dựng mô hình dữ liệu RBAC sử dụng Eclipse EMF





Tạo Ecore diagram : Mở mô-đun “org.activiti.designer.model”, chọn

Folder “model” trong cửa sổ Package Explore > New/Other…/ Ecore

Tools/Ecore Diagram > đặt tên cho Ecore diagram là SecureBPMN20







Kéo thả các concept (Class, attribute, reference,..) từ Palette vào Visual

Editor để xây dựng metamodel RBAC



Hình 2.2: Ecore Diagram của RBAC trong Eclipse





Mơ hình Ecore tương ứng thu được từ ecorediagram







Tạo EMF Generator Model: mã nguồn Activiti đã tạo ra file

bpmn20.genmodel nên chỉ cần Reload dữ liệu là đủ. Chuột phải

bpmn20.genmodel > Reload…> chọn Ecore model > chọn tất cả các

package xuất hiện > finish







Sinh code Java sau khi tạo được hai mơ hình .ecore và .genmodel.

Chuột phải nút gốc bpmn2 > Generate all



2.2.2.2. Xây dựng mô tả RBAC trong quy trình

Mơ-đun “activiti-engine” của Activiti thực hiện nhiệm vụ tạo các mô

tả RBAC thông qua dữ liệu của các lớp Java được sinh ra từ mơ hình. Mơ



tả RBAC được sinh ra từ việc người dùng kéo thả các component Security

trong Palette và điền thông tin trong tab Security của Properties.





Xây dựng tab Security trong Palette: Có 2 chính sách RBAC là SoD và

BoD tương ứng với 2 component sẽ được tạo trong tab Security. Các

component này cần được định nghĩa hình dạng, kích thước và chức

năng. Thơng tin về chính sách an ninh được lưu trữ trong các lớp Java

tương ứng là SeparationOfDuty và BindingOfDuty. Để biết 2

component này rằng buộc trên Activity nào của quy trình, SecurityFlow

được sử dụng. Nguồn của SecurityFlow là SoD/BoD, đích của nó là

UserTask cần bảo vệ.







Xây dựng tab Security của Properies: được khai báo trong plugin.xml.

Các thuộc tính Security sẽ được định nghĩa trong lớp

PropertyRbacSection.




category="Activiti"

id="org.activiti.designer.securityTab"

label="Security">




class="org.activiti.designer.security.property.PropertyRbacSection"

filter="org.activiti.designer.security.property.PropertyRbacFilter"

id="org.activiti.designer.securityTab.usertask"

tab="org.activiti.designer.securityTab">




class="org.activiti.designer.security.property.SodBodSection"

filter="org.activiti.designer.security.property. SodBodFilter"

id="org.activiti.designer.securityTab.sodbod"

tab="org.activiti.designer.securityTab">





2.2.2.3. Lưu mô tả RBAC dưới dạng xml

Mơ-đun “org.activiti.designer.export.bpmn20” thực hiện nhiệm vụ

lưu tồn bộ mơ tả về quy trình dưới dạng các lớp Java sang định dạng xml.

Bao gồm export các thuộc tính Security trong tab Properties và export mơ

tả hình dạng, vị trí, kích thước các component Security trong Palette.







Export các thuộc tính Security trong tab Properties được mô tả bởi các

lớp Java sinh ra từ mơ hình:





...






targetRefNode="usertask2">




roles="role_id_1" actions="action_id_1">



permissions="perm_id_1">



activityId="usertask2" permissions=" perm_id_1">



...









Export mơ tả hình dạng, vị trí, kích thước các component Security

trong Palette:






id="BPMNPlane_QuyTrinhDieuXe">

...

















...







Hàm writeBpmnElement thực hiện đọc tất cả các đối tượng trong sơ đồ

Diagram, nếu một đối tượng là thể hiện của SecurityFlowNode thì nó sẽ

được lưu các thơng tin vị trí, kích thước trong tag xml

“SecurityShape” :

2.2.3. Thực thi các chính sách truy nhập RBAC

Các bước để tích hợp RBAC vào mô-đun quản lý của Activiti phục vụ

cho việc thực thi các chính sách truy cập RBAC bao gồm:





Bước 1: “activiti-engine” phải cung cấp các chức năng khơi phục mơ tả

RBAC của quy trình từ fie xlml. Lớp BpmnParse thực hiện nhiệm

vụ này.







Bước 2: Trong q trình quy trình được chạy, các chính sách truy nhập

RBAC phải được kiểm tra. SoD và BoD được kiểm tra khi người thực

hiện UserTask được chọn để gán. Đầu tiên, hệ thống sẽ liệt kê tất cả

người dùng có quyền thực hiện task này. Sau khi lựa chọn, hệ thống sẽ

kiểm tra xem người dùng có thỏa mãn rằng buộc SoD hay BoD hay

khơng bằng cách kiểm tra người đó có nằm trong danh sách người dùng

có quyền thực hiện các task tiếp theo. Ví dụ, UserTaskA và UserTaskB

bị rằng buộc SoD, khi gán người thực hiện UserTaskA hệ thống cũng sẽ

liệt kê tất cả người có quyền thực hiện UserTaskB; nếu người được

chọn thực hiện UserTaskA cũng nằm trong danh sách thực hiện

UserTaskB thì sẽ vi phạm SoD và hệ thống hiển thị thơng báo lỗi:

khơng cho phép người dùng đó được thực Task. Hàm checkSoD

trong lớp ReassignAssigneeListener thực hiện nhiệm vụ này.



CHƯƠNG 3. CÀI ĐẶT VÀ THỰC NGHIỆM

Kết quả của luận văn được triển khai thử nghiệm tại Trung tâm Tư

vấn Thiết kế Mobifone – Chi nhánh Tổng Công ty Viễn thông Mobifone.

Hiện tại, trong trung tâm đang thực thi rất nhiều quy trình nghiệp vụ, tuy

nhiên, hầu hết các quy trình được thực hiện một cách thủ cơng và khơng

hiệu quả dẫn đến việc quản lý trở nên khó khăn, thủ tục rườm ra, gây lãng

phí tiền bạc và cơng sức. u cầu cần có một cơng cụ tự động quá quy trình

nghiệp vụ tại trung tâm. Với ưu điểm là đơn giản, triển khai nhanh chóng,

Activiti BPM là lựa chọn phù hợp. Được sự cho phép của lãnh đạo trung

tâm, tác giả đã triển khai thử nghiệm hai quy trình là quy trình điều xe và

quy trình đặt văn phòng phẩm. Trong phạm vi luận văn, tác giả xin trình

bày chi tiết việc triển khai quy trình điều xe.

Các bước thực hiện bao gồm:









Bước 1: Cài đặt Activiti BPM trên server

Bước 2: Mơ hình hóa quy trình trên Activiti Designer

Bước 3: Thực thi và giám sát quy trình trên Activiti Explorer



3.1. Mơ hình hóa quy trình trên Activiti Designer

Mơ tả quy trình điều xe đang được thực hiện như sau:













Khi nhân viên có u cầu đặt xe, nhân viên làm giấy yêu cầu xin xe có

chữ ký của người quản lý (trưởng phòng). Nếu trưởng phòng/giám đốc

có u cầu đặt xe thì khơng cần chữ ký này.

u cầu được chuyển sang nhân viên phòng tổng hợp để trình và chờ

trưởng phòng tổng hợp điều xe.

Trưởng phòng tổng hợp sẽ xem xét và chỉ định xe

Nhân viên phòng tổng hợp gọi điện cho lái xe thông báo về thời gian.



Quy trình điều xe trên sẽ được mơ hình hóa trên Activiti Designer như sau:





Chạy Activiti Desginer trên Eclipse bằng cách chuột phải vào module

“org.activiti.designer.eclipse” > Run As > Eclipse Appliction. Một giao

diện Eclipse mới được mở ra.















Tạo dự án tên “TVTK_Project” mới : File > New > Others > Activiti

Project

Tạo Diagram tên “QuyTrinhDieuXe” : chuột phải thư mục diagram

chọn File > New > Others > Activiti Diagram

Giao diện mô hình hóa quy trình nghiệp vụ bao gồm Editor, Palette và

Properties. Trong đó, Palette và Properties đã mở rộng thêm tab

“Security” cho việc định nghĩa các chính sách an ninh SoD và BoD.

Kéo thả các component trong Palette để mô hình hóa quy trình điều xe.

Các thuộc tính của từng component phải được cung cấp đầy đủ, bao

gồm id, form,.. Sử dụng SeparationOfDuty và Security Flow để rằng

buộc phân quyền đối với trưởng phòng và người quản lý điều xe.



Hình 3.11: Quy trình điều xe trên Acitivi Designer





Một Form được sử dụng để mơ tả phiếu u cầu. Để thêm/sửa/xóa các

thuộc tính cho Form, nhấn chuột vào nút New/Edit/Delete. Form được

cài đặt tại Start Event cho phép bất kỳ người dùng vào bắt đầu quy

trình sẽ nhìn thấy Form và được yêu cầu điền thông tin.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 2. TÍCH HỢP MÔ ĐUN CHÍNH SÁCH TRUY CẬP RBAC VỚI ACTIVITI

Tải bản đầy đủ ngay(0 tr)

×