Overview of user administration, groups, privileges, and security configurations in AEM 6.5.
User Administration and Security
Users and Groups
- User: tài khoản đăng nhập AEM, giữ thông tin cơ bản và các privilege được gán.
- Group: tập hợp user hoặc group khác. Thay đổi trên group áp dụng cho toàn bộ member — dùng group để quản lý permission thay vì gán thẳng cho từng user.
Built-in Users and Groups
AEM cài sẵn một số user/group mặc định. Đổi tất cả default password ngay sau cài đặt.
Permissions trong AEM
AEM dùng ACL (Access Control List) để xác định user/group được phép làm gì và ở path nào.
Các Action trên resource
AEM tự tạo user group cho role-assignment (Owner, Editor, Viewer) trong Collections. Không nên thêm ACL thủ công cho các group này vì có thể tạo ra lỗ hổng bảo mật.
Cách ACL được đánh giá
ACL được xây dựng theo cây phân cấp trang, quét từ dưới lên (bottom-up) cho đến khi tìm thấy permission phù hợp đầu tiên.
Để xem ACL mẫu, mở CRXDE > tab Access Control tại:
/etc/cloudservices/home/users/we-retail
Permission States
Nếu không có permission nào được định nghĩa cho một trang, tất cả actions đều bị deny.
Ký hiệu trên checkbox khi permission không kế thừa từ node cha:
*(asterisk): có ít nhất một local entry (effective hoặc ineffective) — wildcard ACL định nghĩa trong CRX.!(exclamation): có ít nhất một entry hiện không có hiệu lực.
Khuyến nghị quản lý ACL:
- Không gán permission trực tiếp cho user, chỉ gán cho group.
- Nếu user chỉ cần sửa trang: chỉ gán Modify + Read, không gán Create/Delete.
- Ưu tiên dùng Allow, hạn chế dùng Deny. Deny từ nhiều group có thể triệt tiêu nhau và gây kết quả ngoài ý muốn.
Xem chi tiết Permission
Trong tab Permissions, duyệt theo path bằng cách expand/collapse node để theo dõi kế thừa permission. Click Details để xem chi tiết:
- Phần trên: hiển thị lại thông tin từ tree grid — không có icon (chưa khai báo), tick (allow), dấu trừ (deny).
- Phần dưới: danh sách user/group khai báo entry cho path đó.
Impersonate User
Tính năng Impersonate cho phép user-B thực hiện thao tác với đầy đủ quyền của user-A. Dùng khi nghỉ phép, debug, hoặc chia sẻ tải tạm thời.
User không phải admin cần có quyền READ trên /home/users mới dùng được tính năng này.
Khi đang impersonate, audit log ghi lại thời điểm bắt đầu/kết thúc, nhưng access log chỉ thấy tên user được impersonate (user-A), không thấy user thực sự thao tác (user-B). Ngoài ra, page bị lock khi impersonate chỉ unlock được bởi user bị impersonate hoặc admin.
Best Practices
Quản lý Users và Groups
Truy cập Security Console tại https://<server>:<port>/useradmin (đăng nhập bằng admin).
Các tab trong Security Console:
Lọc và ẩn Users/Groups
- Filter: nhập từ khóa vào ô lọc rồi click kính lúp. Click x để xóa filter.
- Hide Users / Hide Groups: toggle để ẩn user hoặc group (không thể ẩn cả hai cùng lúc). Click lại để hiện.
Tạo User và Group
- Click Edit > Create User hoặc Create Group.
- Nhập thông tin:
- User: Login ID, tên, email, password. AEM tự tạo path dựa trên chữ cái đầu của last name.
- Group: Group ID và mô tả (tùy chọn).
- Click Create.
Xóa User và Group
- Chọn user/group (Shift+click hoặc Ctrl+click để chọn nhiều).
- Click Edit > Delete > OK.
Sửa Properties
Double-click user/group > tab Properties > sửa > Save.
Path của user hiển thị ở cuối Properties và không thể sửa.
Đổi Password
Không dùng Security Console để đổi password của tài khoản admin. Dùng Granite Operations > Users Console. Với AEM Forms on JEE, dùng Admin Console (/adminui).
- Double-click user > tab Properties > click Set Password.
- Nhập password mới hai lần > click Set.
Thêm User/Group vào Group
Có 3 cách:
Qua tab Groups (từ phía user/group con):
- Double-click account cần gán > tab Groups.
- Kéo tên group từ tree sang pane Groups > Save.
Qua tab Members (từ phía group cha):
- Double-click group cần thêm member > tab Members.
- Kéo tên member từ tree sang pane Members > Save.
Qua tab Permissions:
- Double-click user/group > tab Permissions > điều hướng đến path > click Details.
- Tick checkbox cột Member cho member cần gán quyền > OK.
Xóa User/Group khỏi Group
Qua tab Groups: Double-click account > tab Groups > chọn group > click Remove > Save.
Qua tab Members: Double-click group > tab Members > chọn member > click Remove > Save.
Qua tab Permissions: Double-click user/group > tab Permissions > điều hướng đến path > click Details > bỏ tick checkbox cột Member > OK.
User Synchronization
Khi deploy theo mô hình publish farm (TarMK), user và group phải được đồng bộ giữa các publish node. Xem thêm: User Synchronization.
Quản lý Permissions
AEM cung cấp Touch UI Principal View để quản lý permission. Xem: Principal View for Permissions Management.
Gán Permissions
- Double-click user/group trong Security Console.
- Tab Permissions > tick/bỏ tick checkbox tương ứng với action và path.
- Click Save.
Gán Replication Privilege
Replication privilege là quyền publish content. Thứ tự ưu tiên: user > group, Allow > Deny.
- Double-click user/group > tab Permissions.
- Điều hướng đến path cần cấu hình.
- Tick/bỏ tick cột Replicate > Save.
Tìm kiếm Node
- Path search: chuỗi bắt đầu bằng
/— tìm subnode trực tiếp của path đó.- Mũi tên phải: chọn subnode trong kết quả.
- Mũi tên xuống: tìm lại.
- Enter: chọn subnode và load vào tree grid.
- Fulltext search: chuỗi không bắt đầu bằng
/— tìm toàn văn trong tất cả node bên dưới/content.
Cấu hình Impersonators
Cho phép user khác impersonate tài khoản hiện tại:
- Double-click user cần được impersonate > tab Impersonators.
- Kéo user (người sẽ impersonate) từ tree vào pane Impersonate.
- Click Save.
Cài đặt Preferences
Chọn user/group (Ctrl+click hoặc Shift+click cho nhiều) > tab Preferences > sửa cài đặt ngôn ngữ, toolbar > Save.
Cấp quyền quản lý User cho User khác
- Thêm user vào group
administrators> Save. - Trong tab Permissions của user đó, điều hướng đến
/> tick cột Replicate > Save.
User này có thể activate, deactivate, xóa và tạo user mới.
Mở rộng Privilege ở Project Level
Privilege phân cấp (hierarchy-modification) được tổ hợp từ các jcr-privilege. Replication privilege có tên crx:replicate, lưu trữ và đánh giá cùng các privilege khác trong JCR repository nhưng không được enforce ở JCR level.
Định nghĩa và đăng ký custom privilege là một phần của Jackrabbit API từ phiên bản 2.4 (xem JCR-2887). Cơ chế đăng ký privilege hiển thị trong UI tại Repository Configuration.
Việc đăng ký privilege mới được bảo vệ bởi một built-in privilege ở repository level. Mặc định, admin và các member của administrators có quyền này.
Tuy implementation đảm bảo validate và evaluate custom privilege, nhưng không thể enforce chúng trừ khi chúng là tổ hợp của built-in privileges.