OAuth 2.0 Luồng Ủy Quyền Ba Chân – Hiểu đúng, làm chủ bảo mật ứng dụng!
Nếu bạn đang phát triển ứng dụng tích hợp Google, Facebook, hoặc bất kỳ dịch vụ nào yêu cầu xác thực người dùng – OAuth 2.0 ba chân là một kỹ thuật không thể thiếu. Đằng sau mỗi cú click “Đăng nhập bằng…” là cả một quy trình tinh vi giúp bảo vệ dữ liệu người dùng mà không tiết lộ mật khẩu.
Và đây là bản tóm tắt đơn giản nhưng cực kỳ chi tiết – dành riêng cho anh em DevNet, DevOps và Automation Engineer.
🔐 4 BƯỚC CHÍNH TRONG QUY TRÌNH ỦY QUYỀN 3 CHÂN
Bước 1 – LẤY MÃ ỦY QUYỀN (Authorization Code – màu xanh dương)
Đây là lúc người dùng tương tác với nhà cung cấp OAuth (như Google hoặc Facebook). Các bước diễn ra như sau:
👉 Ví dụ thực tế: Khi bạn nhấp vào nút “Đăng nhập bằng Google”, chính là bước này đang diễn ra.
Bước 2 – ĐỔI MÃ ỦY QUYỀN LẤY MÃ TRUY CẬP (Access Token – màu cam)
Lúc này không còn tương tác người dùng. Ứng dụng của bạn gửi mã ủy quyền lên máy chủ OAuth cùng client_secret để lấy access_token.
POST /token grant_type=authorization_code client_id=abc123 client_secret=xyz456 code=<authorization_code> redirect_uri=https://app.vnpro.vn/callback
🔁 Phản hồi:
{ "access_token": "abc.def.ghi", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "xyz.lmn.opq" }
Bước 3 – SỬ DỤNG MÃ TRUY CẬP (Access Token – màu xanh lá)
Bây giờ bạn có thể dùng access_token để gọi API, truy cập dữ liệu của người dùng.
GET /userinfo Authorization: Bearer abc.def.ghi
🔁 Nếu hợp lệ, bạn được cấp quyền. Nếu token đã hết hạn, bạn dùng refresh_token để yêu cầu một token mới – mà không cần người dùng đăng nhập lại.
⚠️ Lưu ý:
Bước 4 – THU HỒI MÃ (Tùy chọn – màu xám)
Khi người dùng đăng xuất, hoặc bạn muốn ngắt kết nối ứng dụng, bạn nên thu hồi token:
http
POST /revoke Authorization: Bearer abc.def.ghi token=abc.def.ghi
Kết quả: HTTP 200 OK – token đã bị thu hồi, không thể sử dụng lại.
🎓 GÓC THỰC CHIẾN
📌 TÓM LẠI CHO ANH EM
Nếu bạn đang học DevNet, DevSecOps hay làm việc với API – đừng bỏ qua OAuth 2.0. Đây là must-know cho mọi kỹ sư hiện đại!
Bạn đã triển khai OAuth 2.0 trong sản phẩm nào chưa? Comment chia sẻ nhé! 👇
Nếu bạn đang phát triển ứng dụng tích hợp Google, Facebook, hoặc bất kỳ dịch vụ nào yêu cầu xác thực người dùng – OAuth 2.0 ba chân là một kỹ thuật không thể thiếu. Đằng sau mỗi cú click “Đăng nhập bằng…” là cả một quy trình tinh vi giúp bảo vệ dữ liệu người dùng mà không tiết lộ mật khẩu.
Và đây là bản tóm tắt đơn giản nhưng cực kỳ chi tiết – dành riêng cho anh em DevNet, DevOps và Automation Engineer.
🔐 4 BƯỚC CHÍNH TRONG QUY TRÌNH ỦY QUYỀN 3 CHÂN
Bước 1 – LẤY MÃ ỦY QUYỀN (Authorization Code – màu xanh dương)
Đây là lúc người dùng tương tác với nhà cung cấp OAuth (như Google hoặc Facebook). Các bước diễn ra như sau:
- Ứng dụng gợi ý người dùng đăng nhập bằng OAuth.
- Người dùng được chuyển hướng tới trang đăng nhập của nhà cung cấp.
- Hệ thống xác minh client_id của ứng dụng.
- Người dùng cấp quyền.
- OAuth redirect về ứng dụng kèm theo authorization code.
👉 Ví dụ thực tế: Khi bạn nhấp vào nút “Đăng nhập bằng Google”, chính là bước này đang diễn ra.
Bước 2 – ĐỔI MÃ ỦY QUYỀN LẤY MÃ TRUY CẬP (Access Token – màu cam)
Lúc này không còn tương tác người dùng. Ứng dụng của bạn gửi mã ủy quyền lên máy chủ OAuth cùng client_secret để lấy access_token.
POST /token grant_type=authorization_code client_id=abc123 client_secret=xyz456 code=<authorization_code> redirect_uri=https://app.vnpro.vn/callback
🔁 Phản hồi:
{ "access_token": "abc.def.ghi", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "xyz.lmn.opq" }
Bước 3 – SỬ DỤNG MÃ TRUY CẬP (Access Token – màu xanh lá)
Bây giờ bạn có thể dùng access_token để gọi API, truy cập dữ liệu của người dùng.
GET /userinfo Authorization: Bearer abc.def.ghi
🔁 Nếu hợp lệ, bạn được cấp quyền. Nếu token đã hết hạn, bạn dùng refresh_token để yêu cầu một token mới – mà không cần người dùng đăng nhập lại.
⚠️ Lưu ý:
- Token truy cập (Access Token) của Cisco mặc định sống 60 phút.
- Token làm mới (Refresh Token) có thể sống tới 60 ngày.
Bước 4 – THU HỒI MÃ (Tùy chọn – màu xám)
Khi người dùng đăng xuất, hoặc bạn muốn ngắt kết nối ứng dụng, bạn nên thu hồi token:
http
POST /revoke Authorization: Bearer abc.def.ghi token=abc.def.ghi
Kết quả: HTTP 200 OK – token đã bị thu hồi, không thể sử dụng lại.
🎓 GÓC THỰC CHIẾN
- Dùng OAuth khi bạn muốn xác thực qua bên thứ ba mà không lưu mật khẩu.
- Lưu access_token và refresh_token an toàn (không lưu trên client-side).
- Dùng HTTPS để bảo vệ quá trình giao tiếp.
- Token nên được mã hóa và lưu trữ ngắn hạn (session, memory cache).
📌 TÓM LẠI CHO ANH EM
- OAuth ba chân: mạnh mẽ, bảo mật, phổ biến cho mọi app tích hợp xác thực người dùng.
- Lưu ý bảo mật token: Token là “chìa khóa mở cửa dữ liệu”, phải được bảo vệ như mật khẩu.
- Thực hành: Sử dụng công cụ như Postman hoặc cURL để thử nghiệm từng bước trong luồng OAuth.
Nếu bạn đang học DevNet, DevSecOps hay làm việc với API – đừng bỏ qua OAuth 2.0. Đây là must-know cho mọi kỹ sư hiện đại!
Bạn đã triển khai OAuth 2.0 trong sản phẩm nào chưa? Comment chia sẻ nhé! 👇