OAuth là gì?
Tìm hiểu khái niệm của OAuth và cách sử dụng OAuth để cấp quyền truy nhập giữa các ứng dụng và dịch vụ mà không ảnh hưởng đến thông tin nhạy cảm.
Giải thích về OAuth
OAuth là một tiêu chuẩn công nghệ cho phép bạn cấp quyền để ứng dụng hoặc dịch vụ đăng nhập vào một ứng dụng hoặc dịch vụ khác mà không tiết lộ thông tin riêng tư, như mật khẩu. Nếu bạn đã từng nhận được một tin nhắn, kiểu như “Đăng nhập bằng Facebook?” hoặc "Cho phép ứng dụng này truy nhập vào tài khoản của bạn?", tức là bạn đã thấy OAuth hoạt động rồi đó.
OAuth là từ viết tắt của Open Authorization chứ không phải xác thực, như đôi khi được giả định. Xác thực là quy trình xác minh danh tính của bạn. OAuth có liên quan đến danh tính nhưng mục đích của OAuth là cấp quyền kết nối liền mạch với bạn bằng các ứng dụng và dịch vụ khác nhau mà không cần bạn tạo tài khoản mới. OAuth mang lại trải nghiệm đơn giản nhờ việc cung cấp cho bạn tùy chọn cho phép hai ứng dụng chia sẻ một số dữ liệu của bạn mà không tiết lộ thông tin xác thực. Giao thức này tạo sự cân bằng giữa thuận tiện và bảo mật.
OAuth được thiết kế để hoạt động với Giao thức Truyền Siêu văn bản (HTTP). Giao thức sử dụng mã thông báo truy nhập để chứng minh danh tính và cho phép danh tính đó tương tác với một dịch vụ khác thay mặt bạn. Trong trường hợp dịch vụ thứ hai này bị rò rỉ dữ liệu, thông tin xác thực trên dịch vụ đầu tiên sẽ vẫn an toàn. OAuth là giao thức tiêu chuẩn mở được áp dụng rộng rãi, hầu hết các nhà phát triển trang web và ứng dụng đều sử dụng giao thức này.
Quan trọng là OAuth không cấp quyền truy nhập không giới hạn vào dữ liệu của bạn cho ứng dụng hoặc dịch vụ bên thứ ba. Một chức năng của giao thức là chỉ định dữ liệu nào mà bên thứ ba được phép truy nhập và những gì bên này có thể làm với dữ liệu đó. Việc đặt ra những hạn chế như vậy và bảo vệ danh tính nói chung là đặc biệt quan trọng trong các tình huống kinh doanh mà nhiều người có quyền truy nhập vào vô số thông tin nhạy cảm và độc quyền.
OAuth hoạt động như thế nào?
Mã thông báo truy nhập là yếu tố khiến OAuth an toàn. Mã thông báo truy nhập là một phần dữ liệu chứa thông tin về người dùng cùng tài nguyên mà mã thông báo chứa đựng. Mã thông báo cũng sẽ chứa quy tắc cụ thể về việc chia sẻ dữ liệu.
Ví dụ: bạn có thể muốn chia sẻ ảnh từ hồ sơ mạng xã hội của mình bằng ứng dụng chỉnh sửa ảnh, nhưng bạn chỉ muốn ứng dụng có quyền truy nhập vào một số ảnh. Ứng dụng đó cũng không cần truy nhập vào tin nhắn trực tiếp hoặc danh sách bạn bè. Mã thông báo chỉ cho phép truy nhập vào dữ liệu bạn chấp thuận. Cũng có thể còn các quy tắc chi phối thời điểm ứng dụng có thể sử dụng mã thông báo đó – có thể là cho một lần sử dụng hoặc sử dụng định kỳ – và ngày hết hạn mã thông báo.
Quy trình OAuth chủ yếu là tương tác giữa máy với máy, trong đó chỉ có một vài điểm tiếp xúc từ phía người dùng. Trong một số trường hợp, bạn có thể không cần phê duyệt vì phần mềm đang xử lý ngầm trong nền. Hai ví dụ về tính năng OAuth trong trường hợp này sẽ thuộc kịch bản hoạt động của doanh nghiệp, trong đó nền tảng danh tính xử lý những kết nối giữa các tài nguyên để giảm bớt trở ngại về mặt CNTT cho một số lượng lớn người dùng hoặc tương tác giữa một số thiết bị thông minh.
Ví dụ về công nghệ OAuth
Giống như nhiều công nghệ đơn giản hóa công việc tẻ nhạt nào đó – trong trường hợp này là việc tạo tài khoản theo cách thủ công trong nhiều ứng dụng – OAuth gần như được các nhà phát triển ứng dụng áp dụng rộng rãi. Sản phẩm này có rất nhiều trường hợp sử dụng dành cho mọi người và doanh nghiệp.
Một ví dụ về OAuth: giả sử bạn đang sử dụng Microsoft Teams làm công cụ cộng tác và muốn truy nhập thêm thông tin về những người bạn đang làm việc cùng, cả bên trong và bên ngoài tổ chức. Bạn quyết định bật phần tích hợp LinkedIn để có thể tìm hiểu thêm về mọi người khi bạn tương tác với họ mà không cần rời khỏi Teams. Sau đó, Microsoft và LinkedIn sẽ sử dụng OAuth để cho phép liên kết tài khoản của bạn với danh tính Microsoft của bạn.
Một tình huống khác cần sử dụng OAuth là khi bạn tải xuống một ứng dụng lập ngân sách để giúp theo dõi chi tiêu của mình bằng các cảnh báo và công cụ hỗ trợ trực quan, chẳng hạn như đồ thị. Để thực hiện công việc, ứng dụng cần truy nhập vào một số dữ liệu ngân hàng. Bạn có thể khởi tạo yêu cầu liên kết tài khoản ngân hàng với ứng dụng, chỉ cho phép quyền truy nhập vào số dư tài khoản và giao dịch. Ứng dụng và ngân hàng sẽ sử dụng OAuth thực hiện việc trao đổi thông tin này thay mặt bạn mà không tiết lộ thông tin xác thực đăng nhập ngân hàng cho ứng dụng.
Một ví dụ khác về OAuth là nếu bạn là nhà phát triển sử dụng GitHub và bạn biết rằng có một ứng dụng của bên thứ ba có thể tích hợp với tài khoản để thực hiện đánh giá mã tự động. Bạn truy cập GitHub Marketplace và tải xuống ứng dụng. Khi đó, ứng dụng đánh giá sẽ yêu cầu bạn cho phép kết nối với ứng dụng qua danh tính GitHub của bạn, một quy trình sẽ được xử lý bằng OAuth. Sau đó, ứng dụng đánh giá có thể truy nhập mã của bạn mà không cần phải đăng nhập vào cả hai dịch vụ mỗi lần.
Có gì khác biệt giữa OAuth 1.0 và OAuth 2.0?
OAuth 1.0 gốc chỉ được phát triển cho các website. Ngày nay, phiên bản này không được sử dụng rộng rãi vì OAuth 2.0 được thiết kế cho cả ứng dụng và trang web, cộng với việc phiên bản 2.0 nhanh và dễ triển khai hơn. OAuth 1.0 không điều chỉnh quy mô như OAuth 2.0 và chỉ có thể thực hiện ba quy trình cấp quyền so với sáu quy trình ở OAuth 2.0.
Nếu bạn định sử dụng OAuth, tốt nhất bạn nên sử dụng phiên bản 2.0 từ đầu. Rất tiếc là không thể nâng cấp OAuth 1.0 lên OAuth 2.0. OAuth 2.0 được thiết kế lại triệt để so với OAuth 1.0 và một số công ty công nghệ lớn đã đóng góp ý kiến phản hồi về thiết kế của OAuth 2.0. Một website có thể hỗ trợ cả OAuth 1.0 và OAuth 2.0 nhưng những người tạo ra phiên bản 2.0 đã thay thế hoàn toàn 1.0.
OAuth so với OIDC
OAuth và Open ID Connect (OIDC) là các giao thức có liên quan chặt chẽ. Các giao thức này tương tự nhau ở chỗ cả hai đều có vai trò trong việc thay mặt người dùng cung cấp cho một ứng dụng quyền truy nhập vào tài nguyên của một ứng dụng khác. Điểm khác biệt là trong khi OAuth được sử dụng để cho phép truy nhập tài nguyên, OIDC được sử dụng để xác thực danh tính của một người. Cả hai đều có vai trò trong việc cho phép hai ứng dụng không liên quan chia sẻ thông tin mà không làm ảnh hưởng đến dữ liệu người dùng.
IdP thường sử dụng kết hợp OAuth 2.0 và OIDC. Chức năng cụ thể của OIDC là tăng cường khả năng của OAuth 2.0 bằng cách thêm một lớp danh tính vào giao thức này. Vì được xây dựng trên OAuth 2.0 nên OIDC không tương thích ngược với OAuth 1.0.
Bắt đầu với OAuth
Việc bạn triển khai OAuth 2.0 cho các website và ứng dụng có thể cải thiện đáng kể trải nghiệm cho người dùng hoặc nhân viên khi đơn giản hóa quy trình xác thực danh tính. Để bắt đầu, hãy đầu tư vào giải pháp IdP như Microsoft Entra để bảo vệ người dùng và dữ liệu bằng tính năng bảo mật tích hợp sẵn
Microsoft Entra ID (trước đây là Azure Active Directory) hỗ trợ mọi quy trình OAuth 2.0. Các nhà phát triển ứng dụng có thể sử dụng ID làm nhà cung cấp xác thực dựa trên tiêu chuẩn để giúp họ tích hợp các chức năng danh tính hiện đại, có quy mô doanh nghiệp vào ứng dụng. Người quản trị CNTT có thể sử dụng dịch vụ này để kiểm soát quyền truy nhập.
Tìm hiểu thêm về Microsoft Security
-
Khám phá Microsoft Entra
Bảo vệ danh tính và bảo mật quyền truy nhập trên đám mây qua một nhóm giải pháp tổng thể.
-
Microsoft Entra ID (trước đây là Azure Active Directory)
Bảo vệ quyền truy nhập vào tài nguyên và dữ liệu bằng cách sử dụng tính năng xác thực mạnh mẽ và truy nhập thích ứng dựa trên rủi ro.
-
Xây dựng sự tin cậy cho ứng dụng của bạn
Triển khai SSO để nhân viên có thể truy nhập mọi tài nguyên họ cần qua một thông tin xác thực.
-
Trải nghiệm đăng nhập được hợp lý hóa
Triển khai SSO để nhân viên có thể truy nhập mọi tài nguyên họ cần qua một thông tin xác thực.
-
Bảo vệ trước các cuộc tấn công
Sử dụng tính năng xác thực đa yếu tố để cải thiện khả năng bảo vệ cho tài nguyên của tổ chức bạn.
-
Sử dụng OAuth để đơn giản hóa quyền truy nhập vào dữ liệu email
Tìm hiểu cách xác thực kết nối với ứng dụng bằng cách sử dụng giao thức thừa tự.
Câu hỏi thường gặp
-
OAuth có nghĩa là Open Authorization, là một tiêu chuẩn công nghệ cho phép bạn cấp quyền cho một ứng dụng hoặc dịch vụ đăng nhập vào một ứng dụng hoặc dịch vụ khác mà không tiết lộ thông tin riêng tư, chẳng hạn như mật khẩu. Khi một ứng dụng yêu cầu bạn cho phép xem thông tin hồ sơ, ứng dụng đó sử dụng OAuth.
-
OAuth hoạt động bằng cách trao đổi mã thông báo truy nhập – một phần dữ liệu chứa thông tin về người dùng cùng tài nguyên mà mã thông báo chứa đựng. Một ứng dụng hoặc website trao đổi thông tin được mã hóa với một ứng dụng hoặc website khác về người dùng và bao gồm các quy tắc cụ thể để chia sẻ dữ liệu. Cũng có thể có các quy tắc chi phối thời điểm ứng dụng có thể sử dụng mã thông báo đó và ngày hết hạn mã thông báo. Quy trình OAuth chủ yếu là tương tác giữa máy và máy với chỉ một vài điểm tiếp xúc cho người dùng, nếu có
-
Nhiều công ty sử dụng OAuth để đơn giản hóa việc truy nhập vào các ứng dụng và website của bên thứ ba mà không tiết lộ mật khẩu của người dùng hoặc dữ liệu nhạy cảm. Google, Amazon, Microsoft, Facebook và Twitter đều sử dụng giao thức này để chia sẻ thông tin về tài khoản cho nhiều mục đích khác nhau, bao gồm đơn giản hóa trải nghiệm mua hàng. Nền tảng định danh Microsoft sử dụng OAuth để cấp quyền cho tài khoản cơ quan và trường học, tài khoản cá nhân, tài khoản xã hội và tài khoản chơi trò chơi.
-
OAuth và Open ID Connect (OIDC) là các giao thức có liên quan chặt chẽ. Các giao thức này tương tự nhau ở chỗ cả hai đều có vai trò trong việc thay mặt người dùng cung cấp cho một ứng dụng quyền truy nhập vào tài nguyên của một ứng dụng khác. Tuy nhiên, điểm khác biệt là trong khi OAuth được sử dụng để cho phép truy nhập tài nguyên, OIDC được sử dụng để xác thực danh tính của một người. Cả hai đều có vai trò trong việc cho phép hai ứng dụng không liên quan chia sẻ thông tin mà không làm ảnh hưởng đến dữ liệu người dùng.
-
Có nhiều khác biệt giữa OAuth 1.0 và OAuth 2.0 vì OAuth 2.0 được thiết kế lại triệt để so với OAuth 1.0, khiến OAuth 1.0 gần như lỗi thời. OAuth 1.0 chỉ được phát triển cho các website, trong khi OAuth 2.0 được thiết kế cho cả ứng dụng và website. OAuth 2.0 nhanh và dễ triển khai hơn, có thể điều chỉnh quy mô và có thể thực hiện sáu quy trình cấp quyền so với ba quy trình của OAuth 1.0.
Theo dõi Microsoft 365