Bỏ qua để đến nội dung

Module Quản lý Người dùng và Vai trò (ABP Identity)

Module Quản lý Người dùng và Vai trò cung cấp giải pháp toàn diện để quản lý người dùng, vai trò và phân quyền trong hệ thống EMOS. Module này được xây dựng trên ABP Framework Identity module, tích hợp với các dịch vụ khác để đảm bảo bảo mật và quản lý truy cập hiệu quả.

  • Định nghĩa: Tài khoản người dùng trong hệ thống
  • Mục đích: Xác thực và phân quyền người dùng
  • Thuộc tính: Tên đăng nhập, Email, Mật khẩu, Thông tin cá nhân
  • Định nghĩa: Nhóm quyền được gán cho người dùng
  • Mục đích: Quản lý quyền truy cập theo nhóm
  • Đặc điểm: Public role, Default role
  • Định nghĩa: Quyền hạn cụ thể để thực hiện hành động
  • Mục đích: Kiểm soát chi tiết quyền truy cập
  • Cấu trúc: Có thể được nhóm lại thành vai trò
  • Định nghĩa: Cấu trúc tổ chức dạng cây
  • Mục đích: Phân cấp quản lý người dùng và vai trò
  • Đặc điểm: Có thể gán người dùng và vai trò vào đơn vị
  • Định nghĩa: Mở rộng Organization Unit để hỗ trợ Multi-Branch
  • Mục đích: Phân quyền và cô lập dữ liệu theo chi nhánh
  • Đặc điểm: Người dùng có thể thuộc nhiều chi nhánh

Điều hướng: Menu Identity Management → Users

Mục đích: Tạo và quản lý tài khoản người dùng

Chức năng chính:

  • Tạo Người dùng: Tạo tài khoản người dùng mới
  • Chỉnh sửa: Cập nhật thông tin người dùng
  • Xóa: Xóa tài khoản người dùng
  • Khóa/Mở khóa: Khóa hoặc mở khóa tài khoản
  • Đặt lại Mật khẩu: Đặt lại mật khẩu cho người dùng
  • Gán Vai trò: Gán vai trò cho người dùng
  • Gán Chi nhánh: Gán người dùng vào chi nhánh

Các bước Tạo người dùng:

  1. Nhấp “Thêm” → “New User”
  2. Nhập thông tin cơ bản:
    • Tên đăng nhập (bắt buộc)
    • Email (bắt buộc)
    • Số điện thoại
    • Họ và tên
  3. Thiết lập mật khẩu:
    • Nhập mật khẩu mới
    • Xác nhận mật khẩu
  4. Gán vai trò (nếu cần)
  5. Gán chi nhánh (nếu cần)
  6. Lưu

Thông tin Người dùng:

  • Thông tin cá nhân: Tên, Họ, Email, Số điện thoại
  • Tài khoản: Tên đăng nhập, Trạng thái, Khóa/Mở khóa
  • Xác thực: Xác thực hai yếu tố, Mật khẩu
  • Vai trò: Danh sách vai trò được gán
  • Chi nhánh: Chi nhánh thuộc về

Lưu ý quan trọng:

  • Không thể xóa tài khoản của chính mình
  • Email phải là duy nhất trong hệ thống
  • Mật khẩu phải đáp ứng yêu cầu bảo mật

Điều hướng: Menu Identity Management → Roles

Mục đích: Tạo và quản lý vai trò trong hệ thống

Chức năng chính:

  • Tạo Vai trò: Tạo vai trò mới
  • Chỉnh sửa: Cập nhật thông tin vai trò
  • Xóa: Xóa vai trò
  • Quản lý Quyền: Gán quyền cho vai trò
  • Public Role: Đặt vai trò là public để mọi người có thể thấy

Các bước Tạo vai trò:

  1. Nhấp “Thêm” → “New Role”
  2. Nhập thông tin:
    • Tên vai trò (bắt buộc)
    • Mô tả
  3. Thiết lập Quyền:
    • Chọn các quyền cho vai trò
    • Quyền được tổ chức theo nhóm
  4. Thiết lập Public Role (nếu cần)
  5. Lưu

Các Vai trò mặc định:

  • Admin: Quản trị viên với tất cả quyền
  • User: Người dùng thông thường
  • Support: Nhân viên hỗ trợ
  • Technician: Kỹ thuật viên

Quản lý Quyền:

  • Quyền được tổ chức theo nhóm module
  • Có thể gán nhiều quyền cho một vai trò
  • Quyền có thể được kế thừa từ vai trò khác

3. Quản lý Đơn vị Tổ chức (Organization Unit Management)

Phần tiêu đề “3. Quản lý Đơn vị Tổ chức (Organization Unit Management)”

Điều hướng: Menu Organization Units

Mục đích: Tạo cấu trúc tổ chức và gán người dùng/vai trò

Chức năng chính:

  • Tạo Đơn vị: Tạo đơn vị tổ chức mới
  • Cấu trúc Cây: Tổ chức dạng cây phân cấp
  • Gán Người dùng: Gán người dùng vào đơn vị
  • Gán Vai trò: Gán vai trò vào đơn vị
  • Quản lý Cây: Xem và chỉnh sửa cấu trúc cây

Cấu trúc Cây:

Tổng Công ty
├── Phòng Kỹ thuật
│ ├── Nhóm Máy Tính
│ └── Nhóm Mạng
├── Phòng Kinh doanh
│ ├── Nhóm Bán hàng
│ └── Nhóm Marketing
└── Phòng Hành chính

Các bước Tạo đơn vị:

  1. Nhấp “Thêm” → “New Organization Unit”
  2. Nhập tên đơn vị
  3. Chọn đơn vị cha (nếu là đơn vị con)
  4. Lưu
  5. Gán người dùng hoặc vai trò vào đơn vị

Điều hướng: Menu Branches

Mục đích: Quản lý chi nhánh và phân quyền theo chi nhánh

Chức năng chính:

  • Tạo Chi nhánh: Tạo chi nhánh mới
  • Thông tin Chi nhánh: Quản lý thông tin chi nhánh
  • Gán Người dùng: Gán người dùng vào chi nhánh
  • Gán Vai trò: Gán vai trò vào chi nhánh
  • Truy cập Mặc định: Thiết lập chi nhánh mặc định

Thông tin Chi nhánh:

  • : Mã chi nhánh
  • Tên: Tên chi nhánh
  • Địa chỉ: Địa chỉ chi nhánh
  • Thông tin liên hệ: Điện thoại, Email
  • URL Mặc định: URL mặc định của chi nhánh
  • Vai trò Mặc định: Vai trò mặc định cho chi nhánh

Multi-Branch Support:

  • Người dùng có thể thuộc nhiều chi nhánh
  • Quyền có thể được phân biệt theo chi nhánh
  • Dữ liệu được cô lập theo chi nhánh
  • Có thể chuyển đổi giữa các chi nhánh

Điều hướng: Menu Identity Management → Roles → Chọn vai trò → Permissions

Mục đích: Quản lý quyền truy cập chi tiết

Chức năng chính:

  • Xem Quyền: Xem tất cả quyền trong hệ thống
  • Gán Quyền: Gán quyền cho vai trò
  • Nhóm Quyền: Quyền được tổ chức theo nhóm module
  • Quyền Nâng cao: Quyền có thể được kế thừa

Cấu trúc Quyền:

Group: ModuleName
├── Permission: View
├── Permission: Create
├── Permission: Edit
├── Permission: Delete
└── Permission: Process

Các loại Quyền:

  • Quyền Cơ bản: Xem, Tạo, Sửa, Xóa
  • Quyền Nâng cao: Xử lý, Duyệt, Xuất
  • Quyền Đặc biệt: Impersonation, Audit Log

Điều hướng: Menu Users → Chọn người dùng → Impersonate

Mục đích: Đăng nhập như người dùng khác để hỗ trợ

Chức năng chính:

  • Giả mạo: Đăng nhập như người dùng khác
  • Hỗ trợ: Giúp giải quyết vấn đề của người dùng
  • Quay lại: Quay lại tài khoản của mình

Lưu ý quan trọng:

  • Chỉ Admin mới có quyền impersonation
  • Mọi hành động được ghi lại trong audit log
  • Người dùng biết khi được impersonate

Điều hướng: Menu Security Logs

Mục đích: Theo dõi các hoạt động bảo mật

Chức năng chính:

  • Đăng nhập: Theo dõi lịch sử đăng nhập
  • Thất bại: Theo dõi các lần đăng nhập thất bại
  • Thay đổi: Theo dõi thay đổi mật khẩu
  • Khóa: Theo dõi khóa tài khoản

Thông tin Nhật ký:

  • Người dùng
  • Thời gian
  • Hành động
  • Kết quả (Thành công/Thất bại)
  • Địa chỉ IP
  • User Agent
  • Quản lý settings
  • Audit logging
  • Language management
  • Multi-tenancy support
  • Tenant management
  • Quyền được định nghĩa trong từng module
  • Tích hợp với Branch management
  1. Quản lý Mật khẩu: Yêu cầu mật khẩu mạnh
  2. Phân quyền: Áp dụng nguyên tắc least privilege
  3. Audit Log: Theo dõi tất cả thay đổi
  4. Multi-Factor: Bật xác thực hai yếu tố cho Admin
  5. Khóa Tài khoản: Tự động khóa sau nhiều lần đăng nhập sai
  6. Đặt lại Mật khẩu: Định kỳ yêu cầu đặt lại mật khẩu
  7. Impersonation: Chỉ sử dụng khi cần thiết
  1. Nhấp “Add” → “New User”
  2. Nhập thông tin cơ bản
  3. Thiết lập mật khẩu
  4. Gán vai trò phù hợp
  5. Gán chi nhánh
  6. Lưu và gửi thông tin đăng nhập
  1. Chọn vai trò cần chỉnh sửa
  2. Mở mục Permissions
  3. Chọn hoặc bỏ chọn quyền
  4. Lưu thay đổi
  5. Thay đổi có hiệu lực ngay lập tức
  1. Tìm người dùng cần khóa
  2. Nhấp “Lock”
  3. Xác nhận khóa
  4. Người dùng không thể đăng nhập
  5. Nhấp “Unlock” để mở khóa
  1. Chọn người dùng
  2. Nhấp “Reset Password”
  3. Nhập mật khẩu mới
  4. Xác nhận mật khẩu
  5. Gửi thông tin cho người dùng
  • Tổng số người dùng
  • Người dùng theo vai trò
  • Người dùng theo chi nhánh
  • Trạng thái tài khoản
  • Lịch sử đăng nhập
  • Thất bại đăng nhập
  • Thay đổi mật khẩu
  • Khóa tài khoản
  • Administration Service: Settings, audit logging
  • Saas Service: Multi-tenancy
  • Tất cả Modules: Sử dụng Identity để phân quyền
  • Xem: IdentityManagement.View - Xem người dùng và vai trò
  • Tạo: IdentityManagement.Create - Tạo người dùng và vai trò
  • Chỉnh sửa: IdentityManagement.Edit - Sửa đổi người dùng và vai trò
  • Xóa: IdentityManagement.Delete - Xóa người dùng và vai trò
  • Thay đổi Quyền: ChangePermissions - Thay đổi quyền
  • Impersonation: Impersonation - Giả mạo người dùng
  • Security Logs: SecurityLogs - Xem nhật ký bảo mật

Vấn đề: Không thể đăng nhập

  • Giải pháp: Kiểm tra tài khoản có bị khóa không, kiểm tra mật khẩu

Vấn đề: Không có quyền truy cập

  • Giải pháp: Kiểm tra vai trò và quyền được gán

Vấn đề: Không thể tạo người dùng

  • Giải pháp: Kiểm tra quyền và email có trùng không

Vấn đề: Impersonation không hoạt động

  • Giải pháp: Kiểm tra quyền impersonation