Authorization & Access Control
Lớp bảo mật này chịu trách nhiệm xác định "Bạn là ai?" (Xác thực) và "Bạn có quyền làm gì?" (Ủy quyền) trong hệ thống HieraChain.
1. Membership Service Provider (MSP)
File: hierachain/security/msp.py
MSP là thành phần cốt lõi quản lý danh tính cho toàn bộ hệ thống phân cấp.
- Quản trị thực thể: Quản lý
Entity,Role, vàPolicy. - PKI nội bộ: Cấp phát và thu hồi chứng chỉ (Certificates) cho các nút và người dùng.
- Phân cấp: Hỗ trợ mô hình MSP phân cấp phù hợp với cơ cấu tổ chức doanh nghiệp.
2. Identity Manager
File: hierachain/security/identity.py
Quản lý thông tin chi tiết về người dùng và tổ chức:
- Organization Management: Định nghĩa các tổ chức thành viên.
- User Profiles: Lưu trữ thông tin định danh, vai trò và chữ ký số Ed25519 của người dùng.
- Signature Verification: Xác thực chữ ký của người dùng trên các yêu cầu và sự kiện.
3. Policy Engine (ABAC)
File: hierachain/security/policy_engine.py
Hệ thống kiểm soát truy cập dựa trên thuộc tính (Attribute-Based Access Control):
- Quy tắc linh hoạt: Định nghĩa các quy tắc
Allow/Denydựa trên ngữ cảnh (Context) phong phú (Người dùng, Tài nguyên, Hành động, Thời gian). - Đánh giá logic: Xử lý các logic phức tạp để đưa ra quyết định truy cập cuối cùng.
4. API Key Verification
File: hierachain/security/verify/api_key_verifier.py
Lớp xác thực nhanh cho các yêu cầu qua API:
- API Key Management: Tạo, thu hồi và kiểm tra API Key.
- Middleware Tích hợp: Tự động xác thực API Key cho mọi yêu cầu HTTP vào server.
- Permission Mapping: Ánh xạ API Key với các quyền hạn cụ thể trong hệ thống.
Luồng Xác thực & Ủy quyền
graph TD
A[Request with API Key] --> B[API Key Verifier]
B -- Valid --> C[Identity Manager]
C --> D[Identify Organization & Role]
D --> E[Policy Engine]
E -- Check Rules --> F{Authorized?}
F -- Yes --> G[Execute Business Logic]
F -- No --> H[403 Forbidden]
B -- Invalid --> I[401 Unauthorized]