OAuth2 là gì? Vai trò và cách hoạt động của OAuth2 | BKHOST

Hiện tại rất nhiều nền tảng khác nhau như Google, Facebook,… sử dụng OAuth. Chính sự phát triển mạnh mẽ đã thúc đẩy phần mềm OAuth cải tiến và ra mắt phiên bản mới nhất là OAuth 2.0. Vậy OAuth 2.0 là gì? Nó có vai trò như thế nào? Cách thức hoạt động ra sao? Hãy cùng BKHOST tìm hiểu ngay trong bài viết dưới đây.

OAuth 2.0 là gì ?

OAuth 2.0 la gi

OAuth 2.0 là phiên bản mới nhất của giao thức OAuth (Open Authorization), nó đã thay thế cho OAuth 1.0 vào năm 2012. OAuth 2.0 là một tiêu chuẩn được thiết kế để một website hoặc ứng dụng được phép thay mặt người dùng truy cập vào tài nguyên được lưu trữ ở ứng dụng web khác.

OAuth 2.0 cung cấp quyền truy cập để các ứng dụng chia sẻ tài nguyên với nhau mà không cần xác thực thông tin đăng nhập. Điều này không chỉ giúp bạn tiết kiệm thời gian mà còn tránh phiền toái khi phải nhớ vô số tài khoản đăng nhập ở các ứng dụng khác nhau.

Nguyên tắc của OAuth 2.0

OAuth 2.0 là một giao thức ủy quyền chứ không phải là giao thức xác nhận, thế cho nên hoàn toàn có thể xem nó như một phương tiện đi lại dùng để cấp quyền truy vấn vào tài nguyên của ứng dụng .OAuth 2.0 sử dụng mã thông tin truy vấn ( Access tokens ) để cấp quyền truy vấn vào tài nguyên cho website và ứng dụng. Mã thông tin truy vấn sẽ không được OAuth 2.0 định dạng đơn cử. Tuy nhiên ở 1 số ít trường hợp định dạng JSON Web Token ( JWT ) thường được sử dụng. Bên cạnh đó vì nguyên do bảo mật thông tin nên mã thông tin truy vấn hoàn toàn có thể có ngày hết hạn .

Vai trò của OAuth 2.0

Trong OAuth 2.0 định nghĩa 4 vai trò sau :

  • Resource Owner (chủ sở hữu tài nguyên): là người dùng hoặc hệ thống sở hữu tài nguyên có khả năng cấp quyền truy cập vào tài khoản của họ.
  • Client (máy khách): là ứng dụng muốn truy cập vào tài nguyên được bảo vệ. Muốn thực hiện được điều đó Client phải nhận được ủy quyền từ chủ sở hữu tài nguyên.
  • Authorization Server (máy chủ ủy quyền): là đối tượng quyết định việc cấp quyền truy cập dữ liệu cho Client. Authorization Server nhận yêu cầu từ Client sau đó xác minh danh tính người dùng và cấp mã access token để Client truy cập ứng dụng.
  • Resource Server (máy chủ tài nguyên): là nơi lưu trữ những tài nguyên mà người dùng chia sẻ. Server này chấp nhận và xác thực mã truy cập từ Client.

Phạm vi OAuth 2.0

Trong OAuth 2.0 khoanh vùng phạm vi là một khái niệm khá quan trọng. Chúng được sử dụng nhằm mục đích mục tiêu chỉ định đúng chuẩn nguyên do cấp quyền truy vấn vào tài nguyên. Resource Server quyết định hành động tới việc xác lập giá trị khoanh vùng phạm vi ở tài nguyên mà ứng dụng và web được phép truy vấn .

Mã ủy quyền và mã truy vấn OAuth 2.0

Nếu để lộ Access token (mã truy cập) thì nguy cơ tài nguyên bị kẻ xấu lấy cắp rất cao. Vì thế Authorization Server có thể không trực tiếp trả lại Access token sau khi Resource Owner có quyền truy cập. Để bảo mật tốt hơn, Authorization Code (mã ủy quyền) được trả lại và đổi lấy Access token.

Bên cạnh đó Authorization Server cũng phát hành Refresh token ( mã mới ). Nếu Access token thời hạn hiệu lực hiện hành chỉ tầm 2 giờ thì Refresh token hoàn toàn có thể lên tới 10 giờ. Khi Access token hết hạn client sẽ dùng Refresh token để đổi lấy Access token mới .

OAuth 2.0 hoạt động giải trí như thế nào ?

Ở Lever cơ bản nhất, trước khi dùng OAuth 2.0 Client phải được Authorization Server cấp rất đầy đủ thông tin đăng nhập riêng, client ID và client secret để nhận dạng và xác nhận chính nó khi nhu yếu Access token .Khi sử dụng OAuth 2.0, những nhu yếu truy vấn do chính client tạo ra, ví dụ điển hình như ứng dụng dành cho website, điện thoại di động, tivi mưu trí, desktop … Yêu cầu Access token, trao đổi và phản hồi thông tin tuân thủ theo những bước sau :

  • Bước 1: Client yêu cầu ủy quyền từ Authorization Server. Lúc này Authorization Server cung cấp client ID và client secret để nhận dạng đồng thời cung cấp phạm vi và một URI điểm cuối để gửi Access token hoặc Authorization Code đến.
  • Bước 2: Client được Authorization Server xác thực và xác minh các phạm vi yêu cầu được cho phép.
  • Bước 3: Resource Server tương tác với Authorization Server để cấp quyền truy cập.
  • Bước 4: Authorization Server trả về cho client bằng Authorization Code hoặc Access token, Refresh token cũng có thể được trả lại.
  • Bước 5: Với Access token, client yêu cầu quyền truy cập vào tài nguyên từ Resource Server.

Các loại Grant Type trong OAuth2

Để sử dụng OAuth2, client phải thực hiện các bước để được cấp ủy quyền truy cập tài nguyên. Tập hợp các bước đó gọi là Grant Type. Dưới đây Authorization framework cung cấp một số loại Grant Type để giải quyết các trường hợp khác nhau, cụ thể:

  • Authorization Code grant (cấp mã ủy quyền): Client được Authorization Server trả lại Authorization code sử dụng một lần sau đó đổi lấy Access token. Đây là lựa chọn hoàn hảo cho các web truyền thống để đảm bảo việc trao đổi có thể diễn ra an toàn ở Server.
  • Implicit Grant (cấp quyền ngầm): Đây là một quy trình đơn giản trong đó Access token được trả lại trực tiếp cho client. Ở quy trình ngầm định này, Access token được Authorization Server trả lại dưới dạng callback URI biểu mẫu.
  • Authorization Code Grant with Proof Key for Code Exchange (PKCE): Quy trình này tương tự như Authorization Code grant nhưng có thêm các bước bổ sung để đảm bảo an toàn cho các ứng dụng di động, các SPA và native app.
  • Resource Owner Credentials Grant Type: Grant này chỉ giới hạn cho những client đáng tin cậy bởi nó yêu cầu client cung cấp thông tin đăng nhập của Resource Owner để chuyển đến Authorization Server.
  • Client Credentials Grant Type: Grant này dùng cho các ứng dụng không có tính tương tác chẳng hạn như dịch vụ vi mô, quy trình tự động…
  • Device Authorization Flow: Grant này cho phép các ứng dụng sử dụng các thiết bị hạn chế đầu vào ví dụ như tivi thông minh.
  • Refresh Token Grant: Quy trình này liên quan tới việc trao đổi giữa Refresh Token và Access Token.

Tổng kết về OAuth 2.0

Bài viết trên chúng tôi đã tổng hợp những thông tin liên quan tới OAuth 2.0. Hy vọng với kiến thức có được bạn sẽ có đánh giá khách quan, chính xác để sử dụng phần mềm hữu ích này.

Nếu bạn bất kỳ câu hỏi nào tương quan đến OAuth 2.0 hoặc muốn khám phá thêm những thông tin khác, hãy để lại ở bên phản hồi bên dưới, BKHOST sẽ vấn đáp bạn trong thời hạn sớm nhất .

P. / s : Bạn cũng hoàn toàn có thể truy vấn vào Blog của BKHOST để đọc thêm những bài viết san sẻ kiến thức và kỹ năng về lập trình, quản trị mạng, website, domain, hosting, vps, server, email, … Chúc bạn thành công xuất sắc .