Oauth là gì? Kiến thức hữu ích nhất cho dân công nghệ

Mục lục

1. Giải nghĩa Oauth là gì?

Oauth được định nghĩa trong tiếng anh như thế nào? Oauth chính là sự kết hợp của tập hợp các từ trong tiếng anh đó chính là Open Authentication - sự chứng minh/xác thực hoặc từ Authorization - sự cấp phép, cho phép. Đó là cách hiểu theo nghĩa đen khi được dịch ra từ tiếng anh. 

Còn khi hiểu theo ngôn ngữ chuyên ngành và vai trò của Oauth trong công nghệ thông tin thì Oauth được hiểu như là sự ủy quyền trong việc đăng nhập thông qua bên thứ ba. Lấy một ví dụ để bạn có thể hiểu rõ được vấn đề này: Bạn là người dùng mạng xã hội, bạn cần tìm kiếm thông tin thông qua các trang web hoặc các ứng dụng với những nội dung khác nhau. 

Trong trường hợp nếu bạn chỉ cần tìm kiếm thông tin thông thường thì việc đăng nhập là không cần thiết, tuy nhiên khi bạn muốn sử dụng nhiều hơn các tính năng trong các tính năng của các ứng dụng, web đó thì chắc chắn bạn phải đăng nhập vào các ứng dụng và web đó. Điều này có nghĩa bạn sẽ lại phải đăng ký thêm tài khoản để có thể đăng nhập được vào và sử dụng các tính năng trong các ứng dụng web đó. 

Trong thực tế để có thể tiết kiệm thời gian và đảm bảo được các thông tin cá nhân của bạn một cách an toàn nhất, thay vì đăng ký thêm các tài khoản mới bạn có thể đăng nhập thông qua các mạng xã hội như facebook, google, gmail, witter,...và rất nhiều các phương thức khác mà bạn có thể đăng nhập vào các web hoặc ứng dụng bằng các phương thức đó.

Khi bạn đăng nhập vào các ứng dụng hoặc web bằng với sự ủy quyền và cấp phép trên để bảo vệ quyền riêng tư của bạn thì các web hoặc ứng dụng đó sẽ gửi lại cho bạn để nhập mã xác thực được gọi là Token - dạng chữ ký điện tử được gửi dưới dạng mã OTP về địa chỉ gmail hoặc số điện thoại của bạn để bạn có thể xác minh thông đăng nhập. 

2. Google Oauth là gì?

Google Oauth là một phương thức phổ biến mà google sử dụng để cho phép người dùng có thể khai thác tài nguyên từ các bên thứ 3 thông qua việc cho phép người dùng có thể đăng nhập bằng Google và sử dụng các tính năng trong web hoặc ứng dụng đó với điều kiện các web và ứng dụng đó phả cho phép người dùng đăng nhập bằng phương thức đó. 

Google Oauth là một tính năng được tích hợp mà google sử dụng để giúp người dùng có thể dễ dàng đăng nhập vào các ứng dụng và web khác, khai thác thông tin từ chính các web và ứng dụng đó. Điều này giúp bảo vệ người dùng về sự bảo mật trong quyền truy cập, hạn chế được việc cung cấp thông tin cá nhân đến quá nhiều địa chỉ web hoặc ứng dụng khác nhau trên mạng xã hội. 

3. Giải nghĩa một số thuật ngữ liên quan đến Oauth

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

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

Token based authentication: có nghĩa là cơ chế để đăng nhập dành cho người dùng, khi bạn muốn đăng nhập vào một ứng dụng hay một website thì sẽ bạn cần điền thực hiện việc điền một chuỗi các chữ ký để xác nhận thông tin mà máy chủ gửi đến máy khách nhằm xác thực thông tin người dùng có chính xác hay không. Tiếp đến bạn có thể tiếp tục đăng nhập bằng bằng tên người dùng và mật khẩu bằng bên thứ 3. 

Token: chính là mã được tạo ra 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 để có thể xác nhận cho mỗi lần đăng nhập. Token cũng có thể được hiểu là dạng mật khẩu - chữ ký xác nhận dưới dạng online dành cho bạn. 

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

Bên cạnh các thuật ngữ trên thì server - máy chủ, client  - máy khách cũng là một trong những từ được sử dụng rất nhiều trong chủ đề này. 

Đó là một số những thuật ngữ mà bạn cần hiểu trong quá trình làm việc thiết kế hoặc lập trình các thông tin cơ bản có liên quan đến việc phát triển giao diện và sự trao đổi các dữ liệu giữa các ứng dụng với nhau. 

4. Các phiên bản của Oauth -  Cập nhật thông tin mới nhất

Theo dòng thời gian Oauth đã có một quá trình phát triển từ năm 2006 cho đến 2012 với các phiên bản khác nhau trong đó có Twitter đã cho ra phiên bản đầu tiên với cái tên OpenID vào năm 2006, phiên bản 1.0 vào năm 2010 sau đó và cuối cùng là phiên bản Oauth2 ra đời năm 2012. 

Mỗi phiên bản lại có những điểm mạnh và điểm yếu riêng, vẫn còn tồn đọng những yếu điểm, cụ thể quyền truy cập của người dùng vẫn có thể bị hack và vì thế mà tài nguyên người dùng cũng vì thế mà bị ảnh hưởng trong khi sử dụng Oauth phiên bản 1.0. 

Đối với phiên bản Oauth2 người dùng cũng gặp phải những trường hợp tương tự, sự an toàn về quyền truy cập của người dùng chưa thực sự được bảo mật một cách chặt chẽ, khi mà các hacker vẫn có thể lợi dụng việc sử dụng chrome để hack các tài khoản facebook. Tuy nhiên so với các phiên bản trước đó thì Oauth2 vẫn có được những tính năng vượt trội hơn so với các phiên bản trước đó, vì vậy mà được sử dụng rộng rãi hơn. 

5. Quy trình vận hành của Oauth như thế nào?

Sau khi đã hiểu được khái niệm Oauth là gì? Và các thuật ngữ có liên quan đến Oauth. Vậy để hiểu được Oauth được vận hành như thế nào? Ứng dụng Oauth trong thực tế thao tác người dùng ra sao thì bạn có thể theo dõi nội dung trong đó ngay sau đây. 

Bạn cần đang tìm kiếm thông tin ở một trang web hay một ứng dụng nào đó - hay còn gọi đó là client - máy khách. Tuy nhiên client này lại yêu cầu bạn phải đăng nhập thì mới có thể khai thác được thông tin - tài nguyên tại ứng dụng hoặc web đó mà bạn lại muốn đăng nhập bằng google hoặc facebook thì Oauth sẽ được vận hành theo một quy trình như sau:

- Ứng dụng hoặc web do bên thứ 3 sẽ gửi yêu cầu đến nguồn tài nguyên của máy chủ ví dụ như: Gmail, Facebook,...sau khi ma người dùng muốn đăng nhập bằng hình thức ủy quyền này. 

- Ứng dụng nhận được thông tin về mã ủy quyền này từ phía người dùng dưới dạng một chuỗi các ký tự đã được mã hóa. 

- Ứng dụng/web sẽ gửi đến thông tin của người dùng bao gồm các thông tin như mã định danh và cả sự chấp nhận yêu cầu ủy quyền của người dùng trước đó đến máy chủ. 

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

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

Đó là toàn bộ quá trình vận hành của một Oauth - sự ủy quyền truy cập khi người dùng muốn khai thác tài nguyên từ nhiều nguồn khác nhau, hạn chế cung cấp thông tin cá nhân mà vẫn thì cách làm này vô cùng hữu ích cho người dùng. 

Còn đối với dân IT thì Oauth chính là một trong những công việc để họ cần làm để có thể thiết kế giao diện web/ ứng dụng làm sao cho chúng có thể dễ dàng trao đổi dữ liệu với nhau, mà cụ thể chính là việc đi tìm hiểu và thiết kế giao diện cho ứng dụng API. 

6. Các điểm thuận lợi khi sử dụng Oauth đối với người dùng

Tại sao Oauth lại được sử dụng rộng rãi cho người dùng? Mục đích của việc tạo ra  giao thức ủy quyền truy cập này được áp dụng trong giao diện lập trình ứng dụng là gì? Dựa vào những thông tin đã được trình bày trong bài như trên chúng ta có thể suy ra được một kết luận về các điểm thuận lợi khi sử dụng Oauth như sau: 

Trong trường hợp người dùng không có sự ủy quyền truy cập từ bên thứ ba, điều này có nghĩa để khai thác và sử dụng tài nguyên của máy chủ thì họ lại phải lặp lại tất cả các quy trình bằng việc đăng ký tài khoản bằng cách điền các thông tin cá nhân vào các trang web hoặc ứng dụng đó trước khi khai thác và sử dụng tài nguyên từ máy chủ. 

Việc làm này sẽ bạn sẽ phải thực hiện nhiều thao tác, mất nhiều thời gian, thông tin cá nhân và dữ liệu người dùng không có tính bảo mật cao. Chính vì vậy mà Oauth đã ra đời để có thể giải quyết được tất cả các vấn đề trên. Người dùng sẽ có được những thuận lợi nhất định khi sử dụng giao thức này cụ thể: 

- Tiết kiệm thời gian, thông tin cá nhân và dữ liệu người dùng có tính bảo mật cao. 

- Người dùng vẫn có thể khai thác được các dữ liệu từ máy chủ thông qua các ứng dụng/web mà không cần phải cung cấp các thông tin cá nhân. 

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

Với những điểm thuận lợi trong việc sử dụng giao thức ủy quyền truy cập như trên người dùng có thể đăng nhập vào nhiều ứng dụng khác nhau và không phải lo lắng về vấn đề bảo mật thông tin cá nhân mà vẫn có thể khai thác dữ liệu, chia sẻ dữ liệu một cách dễ dàng. 

Kết luận, Oauth - sự ủy quyền về quyền truy cập này không chỉ giúp cho việc quản lý dữ liệu từ phía máy chủ được bảo mật và an toàn mà còn đối với cả thông tin và thao tác người dùng cũng được tối ưu hóa nhất có thể. 

Vậy, sau khi đọc xong bài viết các bạn đã hiểu được Oauth là gì? Cùng tác dụng của Oauth với người dùng hay chưa? Với các nội dung như quá trình vận hành của Oauth, những điểm thuận lợi của Oauth đến người dùng, cùng các thông tin có liên quan hy vọng các bạn có được những câu trả lời cho riêng mình để có thể áp dụng vào chính công việc mà bạn đang thực hiện hay thông tin mà bạn đang nghiên cứu.

Đăng ngày 20/11/2020, 7 lượt xem