Open hoangquochung1110 opened 1 month ago
The 4 Grant Types:
Authorization Code + PKCE
Client Credentials
Resource Owner Password (Legacy)
Implicit Flow (Deprecated)
Lựa chọn chính dựa trên user involvement. Mọi consideration khác (security, performance, etc.) là phụ
✅ App hoạt động THAY MẶT user
✅ KHÔNG thay mặt user nào cả
⚠️ Ngoài ra còn phụ thuộc vào nhà cung cấp dịch vụ (Authorization Server), ko phải đơn vị nào cũng hỗ trợ đầy đủ grant types
Hiểu về Xác Thực (Authentication) và Uỷ Quyền (Authorization) trong OAuth 2.0
Định nghĩa
Hãy xem OAuth 2.0 như một framework chuẩn hóa để ủy quyền. Nhiệm vụ chính của nó là cho phép một Application có được một 'giấy phép truy cập' tạm thời cụ thể (Access Token) cho phép nó tương tác với tài nguyên được bảo vệ của User, được lưu trữ bởi một Resource Server.
OAuth 2.0 và Xác thực
Sự khác biệt quan trọng cần nắm là: Bản thân OAuth 2.0 không thực hiện hành động cơ bản xác minh User là ai. Quá trình đó, authentication, là trách nhiệm duy nhất của một thành phần riêng biệt gọi là Authorization Server.
Quy trình OAuth 2.0
User Authentication (Nằm ngoài Phạm vi Trực tiếp của OAuth 2.0):
User Consent:
Authorization Grant & Token Issuance (Vai trò của OAuth 2.0):
Tại sao Sự tách biệt này Quan trọng
Specialization
Authorization Server có thể chuyên về User authentication mạnh mẽ, sử dụng các phương thức bảo mật tốt nhất và hiện đại nhất, mà không làm phức tạp đặc tả của OAuth 2.0.
Flexibility
Các dịch vụ khác nhau có thể có cách authentication User khác nhau (ví dụ: simple passwords, complex enterprise single sign-on, hardware tokens). OAuth 2.0 có thể làm việc với bất kỳ phương thức nào trong số đó vì nó không áp đặt các quy tắc authentication riêng.
Security Boundaries
Application muốn truy cập không bao giờ thấy hoặc xử lý thông tin đăng nhập chính của User. User chỉ cung cấp thông tin đăng nhập của họ trực tiếp cho trusted Authorization Server.