Tham dự Tech Lounge

Tham dự Tech Lounge


OAuth là gì? Chuyện gì sẽ xảy ra khi bạn đăng nhập website bằng nick Facebook, Google, Twitter…?

TDNC
8/3/2013 7:20Phản hồi: 121
OAuth là gì? Chuyện gì sẽ xảy ra khi bạn đăng nhập website bằng nick Facebook, Google, Twitter…?
oauth.jpg

OAuth rất hay, nếu bạn thấy một website (hay phần mềm) nào đó cho phép đăng nhập bằng tài khoản Facebook hay Google mà không cần tạo nick mới thì rất có khả năng đó chính là OAuth. Đây là một chuẩn xác thực mở được rất nhiều các website và phần mềm sử dụng. Câu hỏi đặt ra là: Sử dụng OAuth có an toàn hay không? Tài khoản Facebook với Google có dễ bị hack nếu dùng OAuth hay không? Câu trả lời là OAuth rất an toàn, nó an toàn hơn cả việc bạn tạo một nick mới để đăng nhập một website.

Ưu điểm:
- Tiện lợi, nhanh chóng: không cần phải tạo nick mới mỗi khi đăng nhập vào một website hay phần mềm.
- An toàn: Hạn chế được tình trạng đánh cắp mật khẩu, thông tin cá nhân.

OAuth không phải là OpenID
OpenID cũng là một dạng xác thực danh tính dùng nick từ tài khoản xxx để đăng nhập vào trang yyy. Về nguyên tắc thì hai loại này giống nhau nhưng cách hoạt động của chúng thì lại khác nhau. OpenID đòi hỏi người dùng phải cung cấp thông tin cá nhân còn OAuth thì không.


Ví dụ về OAuth
Ví dụ về phần mềm Foursquare trên điện thoại, khi lần đầu mở Foursquare lên, bên cạnh việc tạo nick mới, phần mềm này sẽ cho phép bạn đăng nhập bằng tài khoản Facebook. Bạn có thể đăng nhập theo cách này mà không cần phải tạo tài khoản mới hay nhập lại thông tin đăng nhập của mình. Đó chính là bạn đang sử dụng OAuth. So với cách tạo nick mới rồi đăng nhập thì OAuth an toàn hơn vì nếu lỡ Foursquare bị hacker tấn công thì thông tin của bạn sẽ không bị đánh cắp, tài khoản Facebook cũng được an toàn.

Nếu bạn làm theo cách cũ, tức là đăng ký nick Foursuqare mới rồi đăng nhập, tức là Foursquare sẽ lưu trữ tất cả thông tin cá nhân của bạn, trong đó quan trọng nhất là email (Username) và mật khẩu. Foursquare bị hack đồng nghĩa với việc các thông tin này cũng rơi vào tay hacker. Còn khi dùng OAuth thì Foursquare sẽ không có được các thông tin cá nhân trên. Khi bạn đăng nhập bằng tài khoản Facebook thì cái mà Foursquare nhận được từ Facebook chỉ là một cái chìa khóa (token) chứa một số quyền hạn nhất định (không bao gồm quyền truy cập đến thông tin Username và Password). Cho nên nếu bị tấn công thì hacker chỉ lấy được những chìa khóa gần như vô dụng trên, còn Username và Password thì vẫn an toàn.

foursquare-facebook-oauth.jpg

OAuth hoạt động như thế nào?
Khi bạn đăng nhập bằng Facebook, Foursquare sẽ dẫn bạn đến trang (hoặc phần mềm) Facebook và liệt kê những quyền mà nó cần phải có để cho phép bạn đăng nhập và sử dụng dịch vụ. Nếu bạn đồng ý thì lúc này Facebook sẽ phát cho Foursquare một cái chìa khóa. Bên trong chìa khóa này chứa một số quyền hạn nhất định giúp cho Foursquare có thể xác minh bạn là ai cũng như giúp cho Foursquare có thể hoạt động được. Bạn cứ tưởng tượng chìa khóa này giống như chìa khóa mỗi phòng trong nhà của bạn. Nhà bạn có nhiều phòng, khi khách (Foursquare) đến thì chủ nhà chỉ phát cho khách một chiếc chìa khóa duy nhất để mở đúng một phòng nhất định, còn các phòng chứa thông tin khác thì vẫn khóa, Foursquare không có quyền truy cập vào đó. Giả sử trên đường Foursquare bị cướp (hacker) tấn công, lấy mất chìa khóa vào phòng thì bọn cướp cũng chỉ mở được có một phòng duy nhất mà thôi (bên trong chứa các quyền để Foursquare có thể hoạt động được). Do đó cách đăng nhập bằng phương thức OAuth này rất an toàn cho người dùng cuối như chúng ta.

Nếu bạn đăng nhập bằng tài khoản Google khác hay Twitter thì cũng tương tự. Nhiều bạn sẽ băn khoăn liệu đăng nhập bằng tài khoản Facebook hay Google như thế thì tài khoản Facebook/Google có an toàn không. Câu trả lời là an toàn bạn nhé. Nhắc lại là Facebook chỉ phát chìa khóa chứa một số quyền hạn nhất định, hacker có lấy được chìa khóa này từ Foursquare thì tài khoản Facebook cũng không bị mất mát gì đâu. Tuy nhiên lúc này bạn nên vào trang cài đặt của Facebook và xóa bỏ chìa khóa đó, mục đích là để xóa sổ những quyền hạn đã cấp vì hacker có thể dùng các token này để spam trên trang Facebook của bạn.

Vậy chúng ta có nên sử dụng OAuth không?
Câu trả lời là nên, và nó cũng rất dễ quản lý. Nếu website đó bị hack thì bạn chỉ cần vào lại Twitter hay Facebook rồi gỡ bỏ quyền truy cập của website đó là xong, giống như việc bạn thay đổi chìa khóa phòng vậy, token đã cấp trước kia sẽ không còn sử dụng được nữa và bạn cũng không bị mất mát thông tin gì.

Tham khảo Wikipedia

Quảng cáo

121 bình luận
Chia sẻ

Xu hướng

andy.huynh
ĐẠI BÀNG
11 năm
mình đang dùg FB để đang nhập tinh tế,, vậy có an toàn k :-S
thấy nhiều trang giờ cũng theo cái này giống tinh tế nhưng ko theo, cứ lập cái khác cho chắc ăn 😃
slbadguy
TÍCH CỰC
11 năm
Hay nhỉ, vậy mà trước giờ cứ sợ
Giải thích khá cặn kẻ
thuanott
ĐẠI BÀNG
11 năm
hay nhỉ
Hack mất facebook là mất hết
nếu hacker hack được chủ nhà thì sao 😁
đăng nhập = tài khoản VTC cho bá đạo ;))
Nhà mình có dùng phương thức này ko nhỉ? Hay là OpenID?
@Đức Khánh Mình đang dùng giao thức này trên TT đấy 😁
lập njk cho lành,từ những cái phân quyền ấy ai biết những site đó khai thác những j
vừa rồi báo đăng níck facebook bị tuồng ra. đúa con kiu mẹ nạp 10 triệu card mobifone mới tá hoả
Vậy bấy lâu nay dùng fB đăng nhập tinh tế, nếu như mà ko an toàn vậy sao tinhte vẫn còn dùng, mà sao h mới giải thích, cái này là tiền trảm hậu tấu đây 😁
Hi TDNC,
Mình là người nghiên cứu OAuth 2.0 và triển khai cho hệ thống mình, từ ngày nó là bản draft20, giờ chắc phải thành draft40 gì đó rồi. Cá nhân mình thấy bạn viết bài này sai rất nhiều điểm. Bản thân bạn không giải thích OAuth viết tắt của cụm từ nào, nó khác openId ở điểm nào. Cái sai lớn nhất của bạn là nói đăng nhập bằng tk FB, twiter, google, ... Vào các trang web khác là OAuth. Hoàn toàn sai! Đó là openID!
OAuth là cơ chế xác thực mở, hiện được dùng chủ yếu vào viêc tích hợp ứng dụng vào 1 hệ thống nào đó, thường là social network, các app trên FB, google plus khi hiện thông báo hỏi bạn cho phép chạy ứng dụng, cấp quyền nọ kia, đó chính là OAuth. Ứng dụng xác thực người dùng dựa vào cơ chế xác thực mở này của mạng xã hội.
Mình đọc tinhte hàng ngày từ nhiều năm nay rồi, nhưng giờ mới viết 1 bài vì bạn nói đúng điểm mình rất rõ và quan trọng hơn là thông tin bạn viết không đúng.
Vấn đề này rất hay, nó cho phép xây dựng những hệ thống lớn vô cùng, xây dựng ứng dụng Service Oriented.
Nếu bạn nào không đồng ý với quan điểm của mình, xin mời cho ý kiến để mình cùng thảo luận nhé.
@Giang Lợi Hại thánh nhơn xuat hien

miềng ko bao gio login = fb vì miền ko có fb để login
zesny95
TÍCH CỰC
11 năm
@tungchen theo cách hiểu của em thì OpenID chỉ dùng để đăng nhập còn OAuth thì nó có thể truy cập một số thao tác từ tài khoản của mình đúng k bác
@Giang Lợi Hại cái j mình biết thì nên phát biểu cho a e học tập bác à , đọc k mà k chia sẽ kiến thức củng là ki bo đó bác, cmt nhìu hơn nhe
@Giang Lợi Hại các bạn tự so sánh nhé:
OpenID is about authentication- sự xác nhận là đúng (ie. proving who you are), OAuth is about authorisation- sự cho phép (ie. to grant access to functionality/data/etc.. without having to deal with the original authentication).
lâu nay mình cứ tưởng là không an toàn cơ chứ 😁
đọc xong mới hiểu, trước giờ mình rất ngại đăng nhập vào một trang nào đó bằng tài khoản fb
detno29
TÍCH CỰC
11 năm
vấn đề ở chỗ nó tạo thành thói quen. Giả sử bạn vào 1 trang fishing, nó hiện cái login bằng FB hay G chẳng hạn, bạn typing vào, bạn sẽ mất acc 1 cách nhanh chóng nhất có thể.
sini132
ĐẠI BÀNG
11 năm
Vấn đề chính là người dùng chả mấy ai quan tâm đến việc bản thân họ đang cấp những quyền gì cho những ứng dụng vớ vẩn. M chỉ đơn giản tạo một ứng dụng đòi tất cả các thông tin cá nhân, thế là xong, cá đã tự chui vào rọ 😆
Tuyệt vời,giờ mới biết về cái này, một kiến thức hay😃

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019