Hướng dẫn phân quyền trong Dspace

Discussion in 'Huớng dẫn, tài liệu Dspace' started by Tran huu Trung, Mar 15, 2017.

  1. Phân quyền Authorization trong Dspace là một dạng phân quyền tương đối phức tạp vì có những quy định ràng buộc không rõ ràng. Lúc chúng ta phân quyền thế này thì hiển thị được tài liệu, lần sau làm lại thì khồng được. Bài này sẽ trình bày về nguyên tắc phân quyền trong Dspace, một số tip trong quá trình phân quyền để sửa chữa lỗi.

    1. Các đối tượng của Dspace quản lý quyền:
    Community -> Collection -> item -> bundle -> bitstream theo mô hình container. Điều này hàm ý rằng 1 Community có thể có nhiều Colletion, 1 Collection có nhiều item, 1 Item có nhiều bundle, 1 bundle có nhiều bitstream . Lưu ý thứ 1 ở đây là duy nhất có Community có thể chứa Community (Sub), ngoài ra các đối tượng khác chỉ có thể chứa đối tượng dưới nó. Lưu ý 2 là có 1 đối tượng là bundle không có handle cụ thể (nhưng vẫn phân quyền theo bundle được).
    2. Các đối tượng cấp quyền:
    Eperson và Group. Thực chất Dspace không phân quyền cho Eperson mà chỉ phân quyền cho Group. Group có quyền gì thì Eperson nào thuộc group đó có quyền tương ứng (Đơn giản đi được 1 chút). Có 2 group mặc định là Aminnistrator và Anonymous. Điểm chú ý ở đây là tất cả các Eperson(user) đều thuộc Anonymous, hay nói 1 cách khác, muốn phân quyền cho tất cả mọi người như thế nào, kể cả những người chưa đăng nhập thì cấp quyền cho Anonymous như thế ấy. Quyền mặc định của Anonymous nên là Read (Communitiy, Colection, item), cho phép chúng ta nhìn thấy metadata của tài liệu.
    3. Các quyền có thể cấp
    4 quyền READ, ADD, WRITE, REMOVE. Riêng với bitstream chỉ có READ và WRITE.
    4. Trạng thái (STATE) của item
    Bao gồm 4 trạng thái Workplace, Workflow, Private, Withdrawn, Achived (Public) và Embargoed. - Quá linh tinh. Ý nghĩa của các trạng thái cụ thể như sau:
    Workplace item - dành cho 1 nhóm nghiên cứu đang cùng làm trên 1 item, nó sẽ không thể nhìn thấy được ngoại trừ nhóm đó. (ít dùng)
    Workflow item - đang xử lý - đây là khi tài liệu mới được đưa lên chưa hoàn thành công đoạn submission - cũng không thể nhìn thấy được trừ những người có quyền can thiệp vào quá trình xử lý item đó.
    Private item - Riêng tư - cũng không thể nhìn thấy được trừ Admin/owner của item. Dùng trong trường hợp item chuẩn bị phải sửa đổi, dữ liệu không chính xác, không muốn bên ngoài nhìn thấy.
    Withdrawn item - Bỏ sọt rác - dùng khi chuẩn bị xóa đí. Các item này sẽ chính thức bị xóa sau khi chạy dspace cleanup
    Archived item/ Public item - tài liệu đã được lưu giữ ->
    Embargoed item - Loại tài liệu sẽ được công khai sau ngày ..... Dành cho bằng phát minh, sáng chế bị giới hạn bản quyền, cấp quyền truy cập sau 1 ngày nhất định ở tương lai.
    Last edited: Mar 15, 2017
    Phạm Quang Quyền likes this.
     
  2. Phân quyền trong Dspace (tiếp) - kỹ thuật
    Khi tạo 1 Community, chúng ta chỉ cần phân quyền READ cho community đó là đủ.
    Khi tạo 1 Collection cần chú ý đến các giá trị default của collection đó: Chính điều này hay làm người phân quyền rối trí, vì ai có thể nhớ chính xác đã phân default là gì sau bao nhiêu năm dùng? Các giá trị default này có ý nghĩa lâu dài, gồm có :
    1. Các item mới được đưa vào bộ sưu tập này mặc nhiên sẽ là công khai (có thể download được)
    2. Người dùng có thể có được quyền submit vào bộ sưu tập này.
    3. Sẽ áp dụng quá trình chấp thuận/ từ chối đối với bộ sưu tập này (dành cho làm các tạp chí thì quá ổn)
    4. Sẽ áp dụng quá trình chấp thuận/từ chối/ biên mục lại đối với bộ sưu tập này.
    5. Sẽ áp dụng quá trình biên mục lại đối với bộ sưu tập này.
    6. Bộ sưu tập này thuộc Admin
    7. Cho phép biên mục với một số trường hỗ trợ điền sẵn.

    collection.png
    Phần này lý giải cho việc khi thêm item vào bộ sưu tập, nếu bộ sưu tập đó có quyền default là 1 thì item đó sẽ hiển thị Public, chúng ta nhìn thấy ngay. Nhưng nếu bộ sưu tập đó khi tạo không có default là 1 thì chịu, chẳng nhìn thấy đâu cả, phải đăng nhập admin mới thấy. Muốn người dùng Anonymous có thể thấy những tài liệu này, chúng ta phải sử dụng phân quyền item tức là phân quyền mức tài liệu.

    Tóm lại khi phân quyền 1 colletion chúng ta nên phân quyền cho Collection có các quyền sau: (Default bitstream read dành cho các bộ sưu tập mở)

    IDActionGroup
    DEFAULT_BITSTREAM_READ Anonymous [Edit]
    READ Anonymous [Edit]
    DEFAULT_ITEM_READ Anonymous [Edit]
    Last edited: Mar 15, 2017
  3. Phân quyền Dspace (tiếp)

    Dspace đã hỗ trợ tạo các nhóm theo kiểu COLLECTION_28_WORKFLOW_STEP_2 Mặc dù tên của nhóm khá là xấu xí, nhưng đã được cấp quyền theo đúng các cách thức workplace mà Dspace tuân thủ. Khuyến cáo là chúng ta nên sử dụng các nhóm kiểu như thế này dành cho các thao tác nghiệp vụ. Chúng ta cũng có thể hình dung được chính xác hơn quyền của 1 eperson khi đọc danh sách các nhóm mà 1 eperson là thành viên.
    Ví dụ:
    Eperson sinh_vien_ma_so_0123456 thuộc :Anonymous, COLLECTION_28_WORKFLOW_STEP_2, COLLECTION_31_WORKFLOW_STEP_1 có nghĩa là có quyền submit/edit vào colletion 28 và có quyền submit đối với COLLECTION 31. Ngoài ra chỉ có quyền như Anounymous đối với các COLLECTION khác

    Phân quyền đối với item:
    Đối với item sau khi được submit vào hệ thống, sẽ nhận được các phân quyền của Collection (quyền thừa kế- inherit). Tương tự với Collection đối với item có 4 quyền. Khi phân quyền cho Item trừ trường hợp đặc biệt, ta thường dùng item wildcard policy admin tool đẻ phân quyền cùng lúc cho nhiều item trong 1 Collection. Lưu ý ở đây là việc Dspace không trả ra là đã add thành công cho bao nhiêu item?, không add được bao nhiêu item? và tiếc nhất là ngay cả trong file log cũng chẳng có thông tin gì. Phải kiểm tra lại xem Dspace chạy có đúng mong muốn của chúng ta không?

    Xung đột quyền: Dspace hoạt động theo nguyên tắc mặc định từ chối, tức là nếu thiếu phân quyền ở cấp nào thì mặc định sẽ trở thành từ chối.
    Phạm Quang Quyền likes this.
  4. Thông thường đối với 1 thư viện số chúng ta nên chia thành:
    1. Các bộ sưu tập mở - Open Access - Phân quyền cho các bộ sưu tập này nên là:
    - Anonymuos có quyền Read
    - Anonymous có quyền Default_item_read
    - Anonymous có quyền Default_bitstream_read
    2. Các bộ sưu tập đóng (cần user đăng nhập) - Phân quyền cho các bộ sưu tập này nên là:
    - Anonymuos có quyền Read
    - Anonymous có quyền Default_item_read
    - Collection_group_workflow nên tạo theo mặc định (khi tạo mới các collection) phù hợp với cách thức/quy trình chúng ta định đưa tài liệu vào bộ sưu tập. Nếu số lượng người tham gia biên mục, đưa tài liệu không nhiều, không cần định rõ quyền hạn của từng người thì không nên tạo các Collection _group_workflow.

    Một số lỗi thường gặp:

    Bộ Collection vẫn đang chạy bình thường, nhưng một số các tài liệu mới được đưa lên không thể hiển thị được cho Anonymous, phải đăng nhập mới thấy các tài liệu đó:
    Lý do:
    1. Bộ Collection này không có DEFAULT_ITEM_READ nên khi đưa các các tài liệu mới, các tài liệu này không được thừa kế quyền được xem metadata.
    2. Các item này vẫn đang thuộc trạng thái Workflow, chưa được sang trạng thái Achive.
    Fix lỗi 1, trực tiếp vào các item, set quyền READ và DEFAULT_ITEM_READ cho từng quyển, sau đó cấp COLLECTION quyền DEFAULT_ITEM_READ cho Anonymous. Một giải pháp nữa của @Ho Ngoc Duy là xóa toàn bộ phân quyền của thư mục cho anonymous rồi tiến hành đặt lại từ đầu.
    Fix lỗi 2, hoàn tất quá trình submission.

    Dùng wild card trong phân quyền cho item không chạy. Các item không thấy thay đổi gì cả về quyền.
    Lý do: Collection đó thuộc về 1 nhóm nào đó (Submit/Edit/Admin/..). Khi đó việc phân quyền cho item sẽ xung đột với quyền của nhóm đang sở hữu Collection.
    Collection không quyền Read với item hoặc Default_item_read.
    Fix lỗi 1 : Xóa nhóm hoặc dùng chính user thuộc các nhóm đó hoàn tất quy trình (Workflow) cho item rồi tiếp tục phân quyền cho item

    Thumbnail không hiển thị trong khi item được phân quyền read
    Lý do 1: Bundle thumbnail có thể chưa được phân quyền.
    Lý do 2: Dùng nhiều bản Media-filter khác nhau nên quyền vào các kho chứa thumnail chưa được set (quyền truy cập thư mục của hệ điều hành)

    Đối với các giao diện jspui dùng browse search lucene thì ít chịu ảnh hưởng của việc xung đột về quyền hơn là các giao diện XMLUI dùng SOLR và discovery. Nói một cách khác XMLUI nhạy cảm với việc phân quyền hơn.
    Last edited: Mar 17, 2017
    .::Jin_IT::. and nguyenquocuy like this.
  5. nguyenquocuy

    nguyenquocuy Administrator Staff Member

    Cám ơn anh ạ. Bài viết rất đầy đủ. Sẽ có ích cho nhiều người quan tâm đến Dspace về sau ạ.

Share This Page