Oauth là gì? Những kiến thức hữu ích nhất về Oauth không nên bỏ qua

ITNavi 27 Oct 2021 4745

Một trong những thuật ngữ được sử dụng rộng rãi bởi các mạng xã hội lớn hiện nay như Google, Facebook, Microsoft, Amazon,... nhằm giúp người dùng có thể đăng nhập vào các ứng dụng khác một cách dễ dàng đấy chính là Oauth. Chỉ bằng một Click chuột là bạn có thể đăng nhập được vào ứng dụng khác mà không cần phải nhớ và nhập mật khẩu. Vậy chi tiết về Oauth là gì, những lợi ích khi sử dụng Oauth đối với người dùng và dữ liệu, tất cả sẽ được chúng tôi giải đáp tại bài viết bên dưới, cùng tìm hiểu nhé!

Oauth là gì?

Oauth chính là sự kết hợp của cụm từ Open Authentication được dịch là sự chứng minh/xác minh hay cũng có thể là Open Authorization - sự cho phép, cấp phép. Đó là cách hiểu theo nghĩa đen của Oauth khi được dịch sang tiếng anh.


Để xét về nghĩa của từ Oauth trong thuật ngữ chuyên ngành và vai trò của chúng trong công nghệ thông tin thì Oauth được hiểu là sự ủy quyền thông qua bên thứ ba trong việc đăng nhập.


Trong trường hợp bạn chỉ cần tìm kiếm những thông tin trên các trang web thông thường thì việc đăng nhập là không cần thiết. Tuy nhiên nếu bạn sử dụng các trang web yêu cầu đăng nhập (trang thương mại điện tử, ứng dụng web, forum,...), mỗi trang bạn sẽ cần đăng ký và nhớ tài khoản để truy cập.


Trên thực tế để giúp cách đăng ký, đăng nhập nhanh hơn cũng như bảo mật thông tin của người dùng, thay vì phải đăng ký thêm các tài khoản mới, bạn có thể sử dụng những tài khoản khác đã có sẵn để đăng nhập như Google, Facebook, gmail, Twitter,... và còn rất nhiều những cách thức khác mà bạn có thể đăng nhập vào các trang web hoặc ứng dụng.


Khi bạn đăng nhập trực tiếp hoặc đăng nhập nhờ bên thứ ba, để bảo vệ tài khoản của bạn và xác minh tài khoản này thì các web hoặc ứng dụng sẽ gửi lại cho bạn một mã xác thực gọi là Token (chữ ký điện tử dưới dạng OTP qua gmail hoặc số điện thoại) để xác minh thông tin đăng nhập.

Oauth là một giao thức ủy quyền truy cập cho bên thứ ba

Một số thuật khoán khi tìm hiểu về Oauth

Để hiểu rõ hơn về Oauth và cách hoạt động của nó, bạn không nên bỏ qua một số thuật ngữ được sử dụng trong Oauth. Những thuật ngữ này rất quan trọng trong thiết kế hoặc lập trình liên quan đến phát triển giao diện và trao đổi dữ liệu giữa các ứng dụng.

  • Authentication: Xác minh tên và mật khẩu của người dùng khi khai thác các tài nguyên web hoặc ứng dụng trên máy tính, điện thoại.

  • Authorization: Sự ủy quyền khi bạn muốn đăng nhập vào các trang web, ứng dụng khác và cần có sự xác thực hay cấp phép từ các ứng dụng, web đó thông qua các tài các tài khoản google, gmail,...

  • Token based authentication: Đây là cơ chế đăng nhập cho người dùng. Khi bạn muốn đăng nhập vào một trang web hay ứng dụng nào đó, bạn cần điền một chuỗi các ký tự để xác nhận thông tin mà máy chủ gửi đến nhằm xác thực thông tin người dùng có chính xác hay không. Tiếp sau đó, bạn có thể tiếp tục đăng nhập thông qua tài khoản của bên thứ ba.

  • Token: Là mã được tạo dưới dạng OTP (mật khẩu dùng một lần) được tạo ra một cách ngẫu nhiên cho mỗi lần đăng nhập. Token cũng có thể được hiểu dưới dạng mật khẩu hay chữ ký xác nhận dưới dạng online.

  • Access Token: Nghĩa là truy cập cho người dùng để đăng nhập bằng tài khoản được tạo trước đó truy cập và khai thác sử dụng tài nguyên của một web, ứng dụng khác.

Authentication là sự xác minh tên và mật khẩu của người dùng khi truy cập web/ứng dụng

Oauth được vận hành như thế nào?

Khi bạn cần tìm một thông tin nào đó ở trang web hay ứng dụng người ta gọi đó máy khách - client. Tuy nhiên máy khách lại yêu cầu bạn phải đăng nhập mới có thể khai thác được những tài nguyên của ứng dụng hoặc trang web. Tuy nhiên, bạn lại không muốn đăng nhập bằng cách nhập thông tin mà sử dụng tài khoản Google hoặc Facebook để đăng nhập thì Oauth được vận hành theo quy trình sau:

  • Sau khi người dùng có nhu cầu đăng nhập bằng hình thức ủy quyền này, các trang web hoặc ứng dụng của bên thứ ba sẽ gửi yêu cầu đến nguồn tài nguyên của máy chủ như: Google, Gmail, Facebook,...

  • Ứng dụng, trang web được ủy quyền sẽ nhận được thông tin về mã ủy quyền từ phía người dùng. Đây là một chuỗi ký tự đã được mã mã.

  • Những thông tin này của người dùng bao gồm cả mã định danh đến sự chấp nhận ủy quyền của người dùng sẽ được ứng dụng, trang web gửi đến máy chủ.

  • Máy chủ ủy quyền sẽ thực hiện cấp mã truy cập cho trang web, ứng dụng của bên thứ ba kia nếu thông tin về mã định danh này và yêu cầu sự ủy quyền đó là hợp lệ.

  • Mã truy cập được cung cấp trước đó sẽ sử dụng trong trường hợp người dùng muốn khai thác tài nguyên của máy chủ thì phải thông qua trang web, ứng dụng bằng cách đưa ra các mã truy cập hợp lệ được cung cấp trước đó. Người dùng hoàn toàn có thể xác thực và thực hiện việc khai thác tài nguyên của máy chủ thông qua trang web, ứng dụng.


Trên đây là toàn bộ quy trình vận hành của một Oauth. Sự ủy quyền truy cập này được sử dụng khi người dùng muốn khai thác các thông tin, dữ liệu từ nhiều nguồn khác nhau, giúp người dùng hạn chế cung cấp thông tin cá nhân của mình trên nhiều trang web, ứng dụng.


Nếu đứng trên góc độ của một IT, Oauth chính là một trong những việc họ cần làm để có thể thiết kế nên một giao diện làm sao cho web, ứng dụng có thể dễ dàng trao đổi các dữ liệu với nhau, hay nói một cách chính xác là thiết kế giao diện cho ứng dụng API.

Oauth được sử dụng khi người dùng muốn khai thác thông tin từ nhiều nguồn khác nhau

Những thuận lợi khi sử dụng Oauth đối với người dùng

Tại sao Oauth lại được các nhà phát triển sản phẩm sử dụng rộng rãi cho người dùng đến vậy? Mục đích chính để các lập trình viên khi tạo ra giao thức ủy quyền truy cập này là gì?


Giả sử không có sự ủy quyền đăng nhập từ bên thứ ba, mỗi khi bạn truy cập vào một trang web, ứng dụng nào đó, bạn cần phải thực hiện lặp đi lặp lại các thao tác đăng ký, điền thông tin vào các trang web, ứng dụng trước khi sử dụng và khai thác tài nguyên từ máy chủ.


Nếu bạn cần truy cập vào nhiều trang web hoặc ứng dụng khác nhau thì việc bạn phải mất rất nhiều thao tác và thời gian cho công đoạn này. Không những thế, những thông tin cá nhân và dữ liệu của người dùng cũng không có tính bảo mật cao khi chia sẻ nhiều trên mạng xã hội. Chính vì những lý do này mà Oauth đã được ra đời với mục đích giải quyết các vấn đề trên. Khi người dùng sử dụng ủy quyền truy cập cho bên thứ ba, bạn có thể nhận lại được những thuận lợi nhất định như:

  • Tiết kiệm thời gian cá nhân, không phải thao tác quá nhiều, thông tin cá nhân và dữ liệu người dùng được bảo mật cao.

  • Người dùng vẫn có thể truy cập được các trang web, ứng dụng để khai thác nguồn tài nguyên mà không cần phải cung cấp thông tin cá nhân.

  • Hạn chế được các rủi ro khi trang web, ứng dụng đó bị hack các thông tin cá nhân của người dùng sẽ không bị đánh cắp.

Với những điểm thuận lợi này khi sử dụng giao thức ủy quyền truy cập Oauth, người dùng có thể thoải mái truy cập các trang web, ứng dụng khác nhau một cách thuận tiện mà không lo đến vấn đề bảo mật thông tin. Đây chính là lý do tại sao hiện nay lại có rất nhiều ứng dụng, trang web sử dụng Oauth đến vậy.


Trên đây là những kiến thức chia sẻ về Oauth, một giao thức ủy quyền truy cập. Hy vọng qua bài viết các bạn đã hiểu hơn về Oauth là gì. Khi sử dụng Oauth không chỉ giúp quản lý dữ liệu từ phía máy chủ mà những thao tác của người dùng cũng được tối ưu nhất có thể. Với những lý do này, là một nhà lập trình, tại sao bạn chưa cài đặt ngay giao thức này cho trang web, ứng dụng của mình ngay nhỉ?

ITNavi - Nền tảng kết nối việc làm IT

Nguồn: Oauth là gì? Những kiến thức hữu ích nhất về Oauth không nên bỏ qua

Bài viết liên quan

NEWSLETTER

Nhập địa chỉ email của bạn dưới đây để đăng ký nhận tin mới nhất

KẾT NỐI VÀ THEO DÕI