OAuth 2.0
Định nghĩa
OAuth 2.0 là authorization framework cho phép delegated access bằng token ngắn hạn thay vì chia sẻ password cho third-party application.
Cách hiểu bằng lời của tôi
OAuth không phải chủ yếu để “đăng nhập”; nó là cách user cho app A quyền truy cập một phần resource ở service B. Khi kết hợp với OpenID Connect, nó mới trở thành flow đăng nhập kiểu “Sign in with Google”.
Vai trò chính
- Resource owner: user sở hữu dữ liệu.
- Resource server: server giữ protected resource.
- Client: app muốn truy cập resource.
- Authorization server: nơi cấp token.
Grant cần nhớ
- Authorization code grant là mode đầy đủ và phổ biến.
- Implicit grant không còn được khuyến nghị cho frontend hiện đại.
- Client credentials grant dùng cho server-to-server.
- Authorization Code + PKCE là hướng an toàn hơn cho public clients.