Authorization pattern

Authorization pattern
Authorization (ủy quyền) là quá trình xác định người dùng có quyền truy cập vào tài nguyên hoặc thực hiện một hành động cụ thể hay không. Trong mô hình microservices, authorization pattern giúp quản lý quyền truy cập trên nhiều dịch vụ phân tán.
Cơ chế hoạt động
Trong các hệ thống thì authentication và authorization thường được kết hợp với nhau và cơ chế hoạt động như sau:
1. Authentication:
Người dùng gửi thông tin đăng nhập.
Hệ thống xác thực danh tính và cấp token (JWT, OAuth2 access token...).
2. Authorization
Người dùng gửi request với token đã cấp.
Hệ thống kiểm tra token hợp lệ không (authentication check).
Xác định quyền truy cập dựa trên vai trò hoặc chính sách.
Nếu hợp lệ, request được chuyển đến microservice đích.
Trường hợp sử dụng
Bảo vệ API: Giới hạn quyền truy cập API chỉ cho các vai trò phù hợp.
Phân quyền theo vai trò (RBAC - Role-Based Access Control): Chỉ admin mới có quyền chỉnh sửa hoặc xóa dữ liệu.
Phân quyền theo thuộc tính (ABAC - Attribute-Based Access Control): Người dùng chỉ có thể truy cập dữ liệu nếu thỏa mãn một số điều kiện (ví dụ: chỉ xem được đơn hàng của chính mình).
Multi-Tenancy: Xác định quyền truy cập giữa các tổ chức hoặc nhóm khác nhau.
Cách triển khai
Một số cách triển khai
1. Role-Based Access Control (RBAC)
Gán quyền theo vai trò (Admin, User, Editor...).
Mỗi API hoặc tài nguyên kiểm tra vai trò của người dùng trước khi cho phép truy cập.
Thường dùng trong hệ thống có quyền truy cập cố định, ít thay đổi.
2. Attribute-Based Access Control (ABAC)
Quyền được quyết định dựa trên thuộc tính (người dùng, tài nguyên, môi trường...).
Cho phép kiểm soát truy cập linh hoạt hơn so với RBAC.
Subscribe to my newsletter
Read articles from Dương Tiến directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
