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

Thảo luận trong 'Đám mây, Dịch vụ trực tuyến' bắt đầu bởi TDNC, 8/3/13. Trả lời: 115, Xem: 38609.

  1. TDNC

    TDNC Loving Rider

    oauth.

    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.

    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
     
  2. andy.huynh

    andy.huynh Thành viên

    mình đang dùg FB để đang nhập tinh tế,, vậy có an toàn k :-S
     
    nguyennamha, kunzarcx, ngoctuan22_104 người khác thích nội dung này.
  3. hoanloc

    hoanloc Thành viên

    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 :)
     
    The Viperdat19887 thích nội dung này.
  4. slbadguy

    slbadguy Thành viên

    Hay nhỉ, vậy mà trước giờ cứ sợ
     
  5. finalrun2005

    finalrun2005 Thành viên

    Giải thích khá cặn kẻ
     
  6. thuanott

    thuanott Thành viên

    hay nhỉ
     
  7. kieuminhtien994

    kieuminhtien994 Thành viên

    Hack mất facebook là mất hết
     
    alex0511, Thichthanhbinhnguyenvietlam thích nội dung này.
  8. 8800 Carbon Arte

    8800 Carbon Arte Thành viên

    Umh :D
     
  9. vicktorbui

    vicktorbui Thành viên

    nếu hacker hack được chủ nhà thì sao :D
     
  10. sihieu93

    sihieu93 Thành viên

    đăng nhập = tài khoản VTC cho bá đạo ;))
     
  11. Đức Khánh

    Đức Khánh Thành viên

    Nhà mình có dùng phương thức này ko nhỉ? Hay là OpenID?
     
  12. tamthangia

    tamthangia Thành viên

    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
     
    Seiryucattuong19 thích nội dung này.
  13. Net0925345000

    Net0925345000 Thành viên

    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ả
     
  14. virusday_123

    virusday_123 Thành viên

    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 :D
     
  15. Giang Lợi Hại

    Giang Lợi Hại Thành viên

    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é.
     
    lunixgear, mckplez, nguyennamha55 người khác thích nội dung này.
  16. vocano9191

    vocano9191 Thành viên

    lâu nay mình cứ tưởng là không an toàn cơ chứ :D
     
  17. conanmyfriend

    conanmyfriend Thành viên

    mình có cái nguồn thui

    http://en.wikipedia.org/wiki/OAuth
     
  18. Ddeath

    Ddeath Thành viên

    đọ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
     
  19. phuongdien24

    phuongdien24 Thành viên

    Wiki ko phải là 1 nguồn tài liệu tham khảo chính thống nên các bạn nên xem xét kĩ khi dùng tài liệu từ wiki nhé.... :)
     
    mckplezhaimap87 thích nội dung này.
  20. detno29

    detno29 Thành viên

    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ể.
     
    Seiryu, bluefire153, minhlaga2 người khác thích nội dung này.