Trang chủ » OAuth2 là gì? Ưu và nhược điểm, cách thức hoạt động
OAuth2 là gì? Ưu và nhược điểm, cách thức hoạt động
- 05/10/2022
- LANIT JSC
OAuth2 là gì mà được các nền tảng mạng xã hội nổi tiếng hàng đầu thế giới như Facebook, Google, Twitter ưa chuộng sử dụng? Ưu, nhược điểm cũng như cách thức hoạt động của OAuth2 ra sao? LANIT sẽ giúp các bạn tìm ra câu trả lời trong những chia sẻ ngày hôm nay nhé!
OAuth2 là gì?
OAuth2 là tiêu chuẩn cho phép website hoặc một ứng dụng có thể truy cập vào tài nguyên lưu trữ bởi các ứng dụng web khác thay cho người dùng.
Phiên bản kế nhiệm của OAuth này cho phép người dùng chia sẻ các ứng dụng tài nguyên với nhau một cách tự động mà không cần tới username và password. Nhờ đó, người dùng có thể bảo mật được thông tin tài khoản của mình và không cần sử dụng quá nhiều tài khoản trong quá trình làm việc.
Thành phần chính của OAuth 2.0
OAuth2 được thiết kế nhằm thực hiện 4 mục đích chính. Bao gồm: Resource Owner, Client, Resource Server và Authorization Server. Trong đó,
Resource Owner – Chủ sở hữu tài nguyên
Chủ sở hữu tài nguyên là người quản trị và được phép cấp quyền truy cập cho người khác vào tài nguyên của họ. Chẳng hạn: Bạn chia sẻ các thông tin cá nhân của mình như email, giới tính, số điện thoại, ngày sinh của mình lên một địa chỉ trang web nào đó hay các trang mạng xã hội. Những thông tin mà bạn chia sẻ được gọi là Resource Owner.
Client – ứng dụng khách
Client là ứng dụng bên thứ 3 mà người dùng muốn truy cập vào. Tuy nhiên, Client cần được chia sẻ quyền truy cập và nó phải được xác thực bởi API. Client không trực tiếp nhận thông tin đăng nhập của người dùng mà nó sẽ nhận mã thông báo ủy quyền.
Resource Server – máy chủ lưu trữ tài nguyên
Tác vụ này thực hiện mục đích lưu trữ, quản lý các tài khoản mà người dùng tạo ra. Sau khi nhận được mã thông báo từ ứng dụng khách, Resource Server sẽ xác thực mã thông báo và cấp quyền truy cập vào tài nguyên. Máy chủ tài nguyên có thể là cùng máy chủ với Authorization Server hoặc là một máy chủ khác.
Authorization Server – máy chủ ủy quyền.
Nó có nhiệm vụ định danh và xác minh danh tính của người dùng để cấp mã access token thông báo truy cập đến cho ứng dụng. Trong một số trường hợp, Authorization Server có vai trò giống với Resource Server. Trong Authorization Server, token là đoạn mã được tạo ra ngẫu nhiên khi Client có yêu cầu cần xử lý. Gồm có Access token và Refresh token.
Luồng hoạt động của OAuth2
Luồng hoạt động của OAuth2 là gì? Chúng ta sẽ cùng tìm hiểu ngay bây giờ thông qua nền tảng mạng xã hội nổi bật nhất hiện nay – Facebook. Hãy để ý rằng, khi bạn truy cập vào địa chỉ trang Facebook.
Bạn sẽ được dẫn tới trang đích của Facebook hoặc Google sẽ hiển thị ra các kết quả để bạn lựa chọn. Website sẽ yêu cầu bạn đăng nhập bằng địa chỉ email, password, số điện thoại,…để truy cập vào trang và sử dụng các dịch vụ trên trang.
Khi các quyền sử dụng những thông tin trên được bạn cho phép, Facebook sẽ tạo ra một accesstoken cho các quyền đó. Và bạn có thể tương tác trên website. Đó chính là cách thức hoạt động của OAuth2 trên nền tảng Facebook. Và tương tự ở các nền tảng khác cũng như vậy.
Hãy quan sát sơ đồ luồng hoạt động của OAuth2 dưới đây để hiểu hơn về cách thức hoạt động của tiêu chuẩn này nhé!
Ưu và nhược điểm của OAuth2
Không phải ngẫu nhiên, OAuth2 được sử dụng phổ biến và rộng rãi như hiện nay. Đặc biệt, tiêu chuẩn này còn được các nền tảng lớn nhất hiện nay như Facebook, Google sử dụng. Chúng ta hãy tìm hiểu về ưu, nhược điểm của OAuth2 để nắm rõ hơn về ứng dụng này nhé!
Ưu điểm | Nhược điểm |
---|---|
OAuth2 hoạt động dựa trên chứng chỉ bảo mật SSL. Nó có thể bảo vệ quyền riêng tư giữa trình duyệt và server web. | Sử dụng hạn chế trên trình duyệt Chrome vì nó xuất hiện những lỗ hổng bảo mật tạo điều kiện cho hacker tấn công. |
Phiên bản 2.0 của OAuth có tính năng lưu token, giúp cho việc truy vấn người dùng thuận tiện và tốc độ nhanh hơn. | Khi tài khoản bị hack nó sẽ ảnh hưởng đến nhiều trang web cùng lúc. |
Với OAuth2, bạn có thể truy cập vào dữ liệu của người dùng ngay cả khi authorization token hết hạn. | Trong trường hợp có phần mở rộng mô tả hệ thống, nó sẽ phát sinh các triển khai không tương tác. Đồng nghĩa với việc người dùng phải viết riêng các mã khi truy cập vào các web. |
Cho phép chia sẻ các dữ liệu của người dùng mà không phải sử dụng đến tài khoản và pass đăng nhập. |
Lợi ích OAuth2 mang lại là gì?
OAuth 2.0 mang đến cho doanh nghiệp nhiều lợi ích khi triển khai như:
- Luồng ủy quyền đơn giản: OAuth2 sử dụng luồng ủy quyền đơn giản, dễ triển khai, dễ tiếp cận. Nó sử dụng mã thông báo truy cập để ủy quyền, nên nó có khả năng mở rộng và đạt hiệu suất cao trong các hệ thống có quy mô lớn
- Cho phép sử dụng nhiều loại mã thông báo truy cập: OAuth2 cho phép sử dụng nhiều loại mã thông báo truy cập khác nhau, cho phép triển khai cơ chế bảo mật và thời gian tồn tại của mã dựa trên yêu cầu của ứng dụng.
- Cung cấp quyền kiểm soát cho người dùng: OAuth2 cho phép người dùng kiểm soát dữ liệu của họ và mức độ truy cập đươc cấp cho các ứng dụng Client. Họ có thể chọn tài nguyên mà Client có thể truy cập và thu hồi quyền này bất cứ lúc nào, giúp tăng quyền riêng tư, sự tin tưởng cho người dùng.
- Được nhiều đơn vị lựa chọn: OAuth 2.0 đang được nhiều công ty lớn, nền tảng Social và nhà cung cấp dịch vụ sử dụng, khiến nó trở thành tiêu chuẩn của ngành để cấp phép. Nó cũng bao gồm nhiều thư viện, công cụ và khuôn khổ giúp tích hợp và triển khai dễ dàng hơn.
- Ủy quyền cho API: OAuth 2.0 được ứng dụng mạnh mẽ để bảo mật API, cho phép các nhà phát triển cấp quyền kiểm soát truy cập cho các tài nguyên đồng thời đảm bảo tính bảo mật và tuân thủ.
Song song với những lợi ích mà OAuth 2.0 mang lại nó cũng còn một số mặt hạn chế, đặt ra nhiều thách thức cho các nhà phát triển như độ phức tạp trong việc ủy quyền, việc quản lý mã thông báo, việc đảm bảo khả năng tương thích và tương tác giữa các triển khai và các nhà cung cấp khác nhau.
Các biện pháp tốt nhất để làm việc với OAuth 2.0 hiệu quả
Để triển khai OAuth2 hiệu quả, bạn cần tuân thủ các biện pháp tốt nhất dưới đây để đảm bảo bảo mật ứng dụng, bảo vệ dữ liệu người dùng:
- Sử dụng mã thông báo có thời hạn ngắn: Bạn nên giới hạn thời gian sống của mã thông báo truy cập để hạn chế rủi ro nếu chúng bị xâm phạm. Mã thông báo mới cho phép khách hàng hợp pháp có được mã mới mà không cần sự tham gia của người dùng.
- Giới hạn phạm vi mã thông báo: Mã thông báo truy cập cần phải có phạm vi nhỏ nhất cho chức năng ứng dụng cụ thể.
- Sử dụng các biện pháp bảo vệ ứng dụng: Bạn cần thực hiện các biện pháp thích hợp để giảm khả năng bị tấn công hệ thống.
- Xử lý mã thông báo truy cập an toàn: Mã thông báo truy cập cần được gửi trong tiêu đề yêu cầu khi Client yêu cầu một tài nguyên từ máy chủ tài nguyên. Chúng không được lưu dưới dạng cookie hoặc truyền qua tham số truy vấn.
- Cho phép người dùng thu hồi quyền truy cập vào dữ liệu của mình. Bạn cần cung cấp cơ chế thu hồi mã thông báo để người dùng có thể chủ động ngăn chặn quyền truy cập không mong muốn từ ai đó.
- Cung cấp tài liệu rõ ràng: Với tài liệu được cung cấp rõ ràng, chi tiết cho toàn bộ luồng OAuth, sẽ giúp đẩy nhanh quá trình tích hợp và tăng tỷ lệ áp dụng.
Trên đây là những chia sẻ từ LANIT về OAuth2 là gì. Ưu, nhược điểm cũng như cách thức hoạt động của tiêu chuẩn OAuth2. Hy vọng các bạn đã hiểu hơn về tiêu chuẩn này và có những ứng dụng thiết thực nhất. Mọi thông tin cần giải đáp thêm về OAuth2, các bạn hãy truy cập liên hệ với LANIT qua Hotline hoặc truy cập website của chúng tôi nhé!