OAuth2 là gì? Tìm hiểu về OAuth2

OAuth2 là gì?

OAuth2 là gì? – Đó là viết tắt của Open với Authentication hoặc Authorization. OAuth ra đời nhằm giải quyết vấn đề trên và xa hơn nữa, đây là một phương thức xác thực giúp các ứng dụng có thể chia sẻ tài nguyên với nhau mà không cần chia sẻ thông tin tên đăng nhập và mật khẩu.

Ứng dụng

  • Authentication: xác thực người dùng.
  • Authorization: người dùng ủy quyền cho ứng dụng truy cập tài nguyên của họ.

Nếu bạn thấy một website (hay phần mềm) nào đó cho phép đăng nhập bằng tài khoản Facebook hay Google mà không cần tạo tài khoản mới thì đó chính là OAuth.

Thực tế, mỗi người trong chúng ta đã từng có hàng vài chục tài khoản ở các website khác nhau đến nỗi phải đặt các tài khoản này giống nhau.

Quá trình phát triển

  • Năm 2006, Twitter đưa ra chuẩn OAuth đầu tiên có tên là OpenID, điểm yếu đó là yêu cầu người dùng phải cung cấp thông tin cá nhân (tên đăng nhập + mật khẩu).
  • Năm 2010, phát hành phiên bản chính thức đầu tiên của OAuth 1.0 (RFC 5849).
  • Sau đó lỗi bảo mật nghiêm trọng được phát hiện với tên gọi Session Fixation cho phép Hacker chiếm quyền truy cập vào tài nguyên của người dùng.
  • Năm 2012, OAuth2 ra đời, tuy vẫn còn những lỗi bảo mật như dùng Chrome để Hack Facebook nhưng hiện vẫn đang được sử dụng khá rộng rãi.

OAuth2 hoạt động như thế nào?

Khi bạn đăng nhập bằng Facebook hay Gmail, website sẽ dẫn bạn đến trang (hoặc phần mềm) Facebook và liệt kê những quyền mà nó cần phải có để cho phép bạn đăng nhập và sử dụng dịch vụ.

Nếu bạn đồng ý, lúc này Facebook sẽ phát cho website một cái token. Token này chứa một số quyền hạn nhất định giúp cho website có thể xác minh bạn là ai cũng như giúp cho website có thể hoạt động được.

Nếu website này bị hacker tấn công thì nó chỉ lấy được thông tin hoạt động của bạn trên website đó mà không ảnh hưởng đến những website khác mà bạn đang sử dụng.

Do đó cách đăng nhập bằng phương thức OAuth này rất an toàn cho người dùng cuối như chúng ta.

Sơ đồ luồng hoạt động của OAuth2

  1. Ứng dụng (website hoặc mobile app) yêu cầu ủy quyền để truy cập vào Resource Server (Gmail, Facebook, Twitter hay Github…) thông qua User
  2. Nếu User ủy quyền cho yêu cầu trên, Ứng dụng sẽ nhận được ủy quyền từ phía User (dưới dạng một chuỗi token)
  3. Ứng dụng gửi thông tin định danh (ID) của mình kèm theo ủy quyền của User tới Authorization Server
  4. Nếu thông tin định danh được xác thực và ủy quyền hợp lệ, Authorization Server sẽ trả về cho Ứng dụng access_token. Đến đây, quá trình ủy quyền hoàn tất.
  5. Để truy cập vào tài nguyên (resource) từ Resource Server và lấy thông tin, Ứng dụng sẽ phải đưa ra access_token để xác thực.
  6. Nếu access_token hợp lệ, Resource Server sẽ trả về dữ liệu của tài nguyên đã được yêu cầu cho Ứng dụng.

oauth2 là gì

Tổng kết OAuth2 là gì

Luồng hoạt động thực tế có thể sẽ khác nhau tùy thuộc vào việc ứng dụng sử dụng loại ủy quyền (authorization grant type) nào, trên đây chỉ là ý tưởng chung để thực hiện.

Bài viết sẽ không đi sâu vào vấn đề làm thế nào để bạn có thể triển khai hệ thống OAuth trên Server của bạn mà chỉ giới thiệu thêm về luồng hoạt động của OAuth cũng như những việc cần làm khi ứng dụng của bạn phải triển khai chức năng.

Để thực hiện chi tiết, bạn tìm kiếm thêm trên Google để xem cách triển khai cho từng framework hay ngôn ngữ mà sản phẩm của mình đang làm nhé.

Có thể bạn muốn xem thêm:

  • Phân biệt sự khác nhau giữa Authentication và Authorization
  • Xác thực và phân quyền trong Microservices
  • Tìm hiểu các phương thức Authentication với REST API

Xem thêm tuyển dụng ngành CNTT hấp dẫn tại HEFC!

Edited by: HEFC

Related Posts

Xét nghiệm Giải phẫu bệnh – Dẫn đường cho việc điều trị

Xét nghiệm giải phẫu bệnh được thực hiện trên những mẫu bệnh phẩm tế bào, bệnh phẩm mô từ các cơ quan trong cơ thể được sinh…

Phương pháp điều trị tủy răng tại nha khoa hiện nay

Viêm tủy răng là một trong những vấn đề về sức khỏe răng miệng nghiêm trọng. Người mắc viêm tủy răng không chỉ phải chịu đựng những…

Mỹ thuật ứng dụng là gì? (cập nhật 2023)

Khi những giá trị thẩm mỹ ngày càng được chú trọng thì các phẩm mỹ thuật ứng dụng ngày càng đi sâu vào đời sống của mọi…

Bát quái đồ là gì? Ý nghĩa và vai trò của bát quái trong phong thủy

Bát quái đồ là vật phẩm phong thủy được sử dụng khá rộng rãi và phổ biến trong văn hoá phương Đông, nhằm mang lại những niềm…

Du học ngành khoa học ứng dụng và cơ bản

>> Du học ngành khoa học đại cương >> Các trường có đào tạo ngành Khoa học ứng dụng và cơ bản Khoa học Ứng dụng và…

Trồng răng implant là gì? Những điều cần phải biết trước khi chọn trồng răng implant

Trồng răng implant là phương pháp trồng răng cấy trụ kim loại vào xương hàm để thay thế cho răng đã mất. Chính vì vậy trụ implant…