Triển khai tổ chức đơn lẻ; kiểm tra quyền dựa trên vai trò
Doanh nghiệp MSP
HierarchicalMSP
Liên minh đa tổ chức; phân cấp chứng chỉ X.509 với CertificateAuthority
Mỗi thực thể phải được đăng ký và xác thực danh tính trước khi được phép gọi PolicyEngine (Thực thi Chính sách) hoặc gửi sự kiện (Gửi Sự kiện).
Sơ đồ Luồng — Đăng ký Thực thể (Doanh nghiệp MSP)
sequenceDiagram
autonumber
participant Admin as 🏢 Quản trị viên Doanh nghiệp
participant MSP as 🏛️ HierarchicalMSP
participant CA as 📜 CertificateAuthority
participant PE as ⚖️ PolicyEngine (Thực thi Chính sách)
rect rgb(0, 0, 0, 0)
Note over Admin: Giai đoạn 1 — Định nghĩa vai trò
Admin->>MSP: define_role(role_name, permissions, policy_ids)
MSP->>MSP: OrganizationPolicies.assign_role_permissions(role, perms)
end
rect rgb(0, 0, 0, 0)
Note over Admin: Giai đoạn 2 — Đăng ký thực thể
Admin->>MSP: register_entity(entity_id, credentials, role, attributes)
MSP->>CA: issue_certificate(entity_id, public_key, attributes, valid_days)
CA->>CA: _generate_cert_id(entity_id, public_key)
CA->>CA: _sign_certificate(cert_id, subject, public_key, ca_key)
CA-->>MSP: Certificate { cert_id, valid_until, status=ACTIVE }
MSP->>MSP: entities[entity_id] = { certificate, role, status: active }
MSP-->>Admin: True ✅
end
Sơ đồ Luồng — Xác thực Quyền lúc Khởi chạy
sequenceDiagram
autonumber
participant Caller as 🖥️ API Client
participant MSP as 🏛️ HierarchicalMSP
participant CA as 📜 CertificateAuthority
participant PE as ⚖️ PolicyEngine (Thực thi Chính sách)
rect rgb(0, 0, 0, 0)
Note over Caller,CA: Giai đoạn 1 — Xác thực Danh tính
Caller->>MSP: validate_identity(entity_id, credentials)
MSP->>CA: verify_certificate(cert_id)
CA->>CA: Kiểm tra: chứng chỉ chưa bị thu hồi VÀ is_valid() (trong thời hạn)
CA-->>MSP: True / False
MSP->>MSP: So khớp credentials.public_key với chứng chỉ đã lưu trữ
MSP-->>Caller: True ✅ (xác nhận danh tính)
end
rect rgb(0, 0, 0, 0)
Note over Caller,PE: Giai đoạn 2 — Cấp quyền Hành động
Caller->>MSP: authorize_action(entity_id, action, resource)
MSP->>MSP: check_permission(role, action)
MSP->>MSP: evaluate_policy(policy_id, context) cho mỗi chính sách vai trò
MSP-->>Caller: True / False
end
alt Hành động được cấp quyền
Caller->>PE: evaluate_policy(policy_id, context_with_role)
Note right of PE: Luồng Thực thi Chính sách tiếp tục tại đây
end
Sơ đồ Luồng — Thu hồi Chứng chỉ
sequenceDiagram
autonumber
participant Admin as 🏢 Quản trị viên Doanh nghiệp
participant MSP as 🏛️ HierarchicalMSP
participant CA as 📜 CertificateAuthority
Admin->>MSP: revoke_entity(entity_id, reason)
MSP->>CA: revoke_certificate(cert_id, reason)
CA->>CA: revoked_certificates.add(cert_id)
CA->>CA: cert.status = REVOKED
MSP->>MSP: entity[status] = revoked
MSP-->>Admin: True ✅
Note over CA: Tất cả các yêu cầu validate_identity() sau này của thực thể này<br/>sẽ thất bại tại CA.verify_certificate()