Phát triển ứng dụng kết nối Facebook trên cơ sở giao thức Oauth (open authentication)

  • Số trang: 75 |
  • Loại file: PDF |
  • Lượt xem: 36 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN VĂN LỄ ĐỀ TÀI PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK TRÊN CƠ SỞ GIAO THỨC OAUTH (OPEN AUTHENTICATION) LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hải Phòng – 2012 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN VĂN LỄ ĐỀ TÀI PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK TRÊN CƠ SỞ GIAO THỨC OAUTH (OPEN AUTHENTICATION) Ngành : Công nghệ thông tin Chuyên ngành : Hệ thống thông tin Mã số : 60 48 05 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN HẢI CHÂU Hải Phòng – 2012 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN VĂN LỄ ĐỀ TÀI PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK TRÊN CƠ SỞ GIAO THỨC OAUTH (OPEN AUTHENTICATION) LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hải Phòng – 2012 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN VĂN LỄ ĐỀ TÀI PHÁT TRIỂN ỨNG DỤNG KẾT NỐI FACEBOOK TRÊN CƠ SỞ GIAO THỨC OAUTH (OPEN AUTHENTICATION) Ngành : Công nghệ thông tin Chuyên ngành : Hệ thống thông tin Mã số : 60 48 05 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN HẢI CHÂU Hải Phòng – 2012 3 Mục lục Trang Lời cam đoan Mục lục Danh mục các ký hiệu và chữ viết tắt Danh mục các hình vẽ, đồ thị MỞ ĐẦU CHƢƠNG 1. Mạng xã hội FaceBook 1.1. Tổng quan về mạng xã hội ảo 1.1.1. Lịch sử phát triển của mạng xã hội 1.1.2. Tình hình phát triển của mạng xã hội trên thế giới 1.1.3. Các thể loại mạng xã hội phổ biến 1.1.4. Chọn mạng xã hội nào? 1.2. Mạng xã hội Facebook 1.2.1. Lịch sử phát triển 1.2.2. Cơ chế hoạt động của Facebook 1.2.3. Cách thức làm việc 1.2.4. Các dạng ứng dụng trên Facebook hiện nay 1.2.5. Điểm mạnh và yếu của mạng Facebook 1.3. Ứng dụng trên Facebook CHƢƠNG 2. Xác thực và xác thực bằng OAuth 2.1. Tổng quan về xác thực 2.1.1. Định nghĩa xác thực 2.1.2. Vấn đề xác thực người dùng và tầm quan trọng của nó 2.1.3. Các dạng xác thực 2.1.4. Các giao thức xác thực 2.1.5. Các phương thức về xác thực 2.2. Giao thức xác thực OAuth 2.2.1. Một số khái niêm liên quan 2.2.2. OAuth - phương thức xác thực mở 2.2.3. Cách hoạt động của OAuth 2.2.4. Phân biệt OAuth và OpenID CHƢƠNG 3. Xây dựng ứng dụng kết nối Facebook (OAuth.F.B.) 3.1. Giới thiệu về Facebook Platform 3.2. Các đối tƣợng nền tảng của Facebook 3.2.1. Facebook API 3.2.2. Các phương thức của API 3.2.3. Data Store API 3.2.4. Thư viện khách 2 3 5 6 7 8 8 8 10 10 11 13 13 14 15 16 17 17 18 18 18 18 19 19 22 23 23 24 25 27 28 28 28 28 29 36 36 4 3.2.5. Ngôn ngữ đánh dấu Facebook - FBML 3.2.6. CSS 3.2.7. Ngôn ngữ truy vấn – FQL 3.2.8. Ngôn ngữ tạo script – FBJS 3.3. Xây dựng ứng dụng OAuth.F.B. 3.3.1. Mô tả môi trường thực nghiệm 3.3.2. Thiết kế OAuth.F.B. 3.3.3. Cơ sở dữ liệu của OAuth.F.B. 3.3.4. Sơ đồ hoạt động của ứng dụng OAuth.F.B. 3.3.5. Một số hàm sử dụng trong OAuth.F.B. 3.4. Sử dụng OAuth.F.B. 3.4.1. Đăng ký sử dụng 3.4.2. Sử dụng ứng dụng 3.4.3. Tính hợp ứng dụng OAuth.F.B. KẾT LUẬN TÀI LIỆU THAM KHẢO 36 49 49 52 53 53 54 54 56 58 66 66 69 71 72 73 5 Danh mục các ký hiệu và chữ viết tắt OAuth Open Authentication OA Open Authentication WebApp Web Application CSDL Cơ sở dữ liệu OAuth.F.B. OAuth FaceBook FBML Facebook Markup Language FQL Facebook Query Language LAMP Linux+Apache+MySql+PHP CAS Central Authentication Service SAML Secure Assertion Markup Language WebSSO Web Single Sign On 6 Danh mục các hình vẽ, đồ thị Trang Hình 1.1: Sơ đồ mạng xã hội 9 Hình 1.2: Các mạng xã hội. 12 Hình 1.3: Mô hình web thông thường 14 Hình 1.4: Mô hình web Facebook 14 Hình 1.5: Mô hình web Facebook sử dụng cache 15 Hình 1.6: Cách thức làm việc của Facebook 15 Hình 2.1: Mô hình quá trình xác thực người dùng 20 Hình 2.2: Hệ thống xác thực người dùng của Gmail và Yahoo 21 Hình 3.1: Cách thức làm việc của Facebook API 29 Hình 3.2: Dòng chảy thông tin từ máy chủ ứng dụng đến trình duyệt của người dùng37 Hình 3.3: Sơ đồ hoạt động của OAuth.F.B. 56 Hình 3.4: Sơ đồ đăng ký sử dụng OAuth.F.B. 56 Hình 3.5: Sơ đồ xác nhận đăng ký sử dụng OAuth.F.B. 57 Hình 3.6: Sơ đồ chi tiết hoạt động của OAuth.F.B. 57 Hình 3.7: Trang nền của ứng dụng OAuth. Facebook 66 Hình 3.8: Trang yêu cầu đăng ký sử dụng dịch vụ OAuth. Facebook 67 Hình 3.9: Cập nhật điện thoại để đăng ký sử dụng dịch vụ thành công 67 Hình 3.10: Xác nhận số điện thoại thành công 68 Hình 3.11: Đã hoàn tất đăng ký 68 Hình 3.12: Demo sử dụng chức năngOAuth. FaceBook 69 Hình 3.13: Demo đọc tin mới, sử dụng OAuth.F.B. trên SSH 70 Hình 3.14: Tích hợp OAuth.F.B. lên website bán hàng 71 7 MỞ ĐẦU Ngày nay, công nghệ thông tin phát triển, các mạng xã hội phát triển, việc trao đổi thông tin trên mạng xã hội trở lên phổ biến. Bài toán đặt ra là cần có hệ thống có thể cập nhật thông tin từ một hệ thống bán hàng, hay từ một hệ thống quản lý nội dùng nào đó gửi nên mạng xã hội nhanh chóng. Hệ thống phải có thể dễ dàng tích hợp trên nhiều website khác nhau. Luận văn gồm các nội dụng nhƣ sau: Mở đầu: Giới thiệu về đề tài luận văn, ý nghĩa và tính khả thi của đề tài. Chương 1. Mạng xã hội Facebook và cách phát triển ứng dụng Facebook: Trình bày về mạng xã hội Facebook và các mạng xã hội phổ biến hiện này. Chương 2. Xác thực và xác thực bằng OAuth: Trình bày về vấn đề xác thực trong mạng xã hội và trình bày về xác thực mở Open Authentication. Chương 3. Xây dựng ứng dụng trên Facebook: Trình bày các vấn đề liên quan đến việc cài đặt và triển khai hệ thống. Kết quả đạt đƣợc khi chạy thử hệ thống. Kết luận: Trình bày tóm tắt các kết quả đạt đƣợc. Hƣớng mở rộng, phát triển hệ thống. 8 CHƯƠNG 1. Mạng xã hội FaceBook 1.1. Tổng quan về mạng xã hội ảo 1.1.1. Lịch sử phát triển của mạng xã hội Mạng xã hội xuất hiện lần đầu tiên năm 1995 với sự ra đời của trang Classmate với mục đích kết nối bạn học, tiếp theo là sự xuất hiện của SixDegrees vào năm 1997 với mục đích giao lƣu kết bạn dựa theo sở thích. Năm 2002, Friendster trở thành một trào lƣu mới tại Hoa Kỳ với hàng triệu thành viên ghi danh, tuy nhiên sự phát triển quá nhanh này cũng là con dao hai lƣỡi: server của Friendster thƣờng bị quá tải mỗi ngày, gây bất bình cho rất nhiều thành viên. Năm 2004, MySpace ra đời với các tính năng nhƣ phim ảnh (embedded video) và nhanh chóng thu hút hàng chục ngàn thành viên mới mỗi ngày, các thành viên cũ của Friendster cũng lũ lƣợt chuyển qua MySpace và trong vòng một năm, MySpace trở thành mạng xã hội đầu tiên có nhiều lƣợt xem hơn cả Google và đƣợc tập đoàn News Corporation mua lại với giá 580 triệu USD. Năm 2006, sự ra đời của Facebook đánh dấu bƣớc ngoặt mới cho hệ thống mạng xã hội trực tuyến với nền tảng lập trình "Facebook Platform" cho phép thành viên tạo ra những công cụ (apps) mới cho cá nhân mình cũng nhƣ các thành viên khác dùng. Facebook Platform nhanh chóng gặt hái đƣợc thành công vƣợc bực, mang lại hàng trăm tính năng mới cho Facebook và đóng góp không nhỏ cho con số trung bình 19 phút mà các thành viên bỏ ra trên trang này mỗi ngày. *) Cấu thành Nút (node): Là một thực thể trong mạng. Thực thể này có thể là một cá nhân, một doanh nghiệp hoặc một tổ chức bất kỳ nào đó Liên kết (tie): là mối quan hệ giữa các thực thể đó. Trong mạng có thể có nhiều kiểu liên kết. Ở dạng đơn giản nhất, mạng xã hội là một đơn đồ thị vô hƣớng các mối liên kết phù hợp giữa các nút. Ta có thể biểu diễn mạng liên kết này bằng một biểu đồ mà các nút đƣợc biểu diễn bởi các điểm còn các liên kết đƣợc biểu diễn bởi các đoạn thẳng. 9 Hình 1.1: Sơ đồ mạng xã hội Ví dụ lan truyền tin: Mạng có 1.000.000 thành viên liên thông, mỗi thành viên thuộc ít nhất 1 nhóm trung bình khoảng 100 cá thể. Một bản tin A đƣợc đăng lên bởi thành viên nào đó, lần thứ nhất tin A lan truyền đến 100 thành viên trong nhóm. Lần thứ 2, mỗi thành viên lại lan truyền tiếp cho các thành viên thuộc nhóm khác, số thành viên biết A có thể là 100 x 100 = 10.000. Lần thứ 3, lại lan truyền nhƣ trên, số thành viên biết A có thể là 100 x 10.000 = 1.000.000. Nhƣ vậy chỉ sau 3 lần lan tin một triệu thành viên có thể biết tin A. Tuy nhiên thời gian loan tin còn phụ thuộc vào việc các thành viên có online hay không? Nếu mọi ngƣời đều online thì tin A ngay lập tức tin đƣợc lan toàn mạng. *) Mục tiêu Tạo ra một hệ thống trên nền Internet cho phép ngƣời dùng giao lƣu và chia sẻ thông tin một cách có hiệu quả, vƣợt ra ngoài những giới hạn về địa lý và thời gian. Xây dựng lên một mẫu định danh trực tuyến nhằm phục vụ những yêu cầu công cộng chung và những giá trị của cộng đồng. Nâng cao vai trò của mỗi công dân trong việc tạo lập quan hệ và tự tổ chức xoay quanh những mối quan tâm chung trong những cộng đồng thúc đẩy sự liên kết các tổ chức xã hội. 10 1.1.2. Tình hình phát triển của mạng xã hội trên thế giới MySpace: Phù hợp với mọi lứa tuổi, nhƣng chủ yếu dành cho lứa tuổi thanh thiếu niên, tuy nhiên một số ca sĩ cũng chọn nơi đây là nơi chia sẽ và lăng xê tên tuổi. Facebook: Phù hợp với mọi lứa tuổi, nhƣng chủ yếu dành tầng lớp trí thức (bao gồm sinh viên, các học sinh trung học và các công dân lớn tuổi khác). Yahoo! 360: Phục vụ cho nhu cầu viết blog nhiều hơn là để giao lƣu. Ngoài ra còn có: Flickr, Flixster, Fotolog, Friendster, Hi5, imeem, Orkut, PerfSpot, SS Free, Tagged.com, Windows Live Spaces.... Mạng xã hội là món ăn tinh thần với ngƣời dân trên toàn thế giới, đặc biệt với các thanh thiếu niên. Trƣớc sự ảnh hƣởng mạnh mẽ của mạng xã hội đối với các bạn trẻ, một nghiên cứu mang tên “Pew/Internet & American Life” đã ra đời, theo đó mối quan hệ giữa “teen” và mạng xã hội đã cho thấy những kết quả thú vị. Pew Internet & American Life là một dự án nghiên cứu về sự ảnh hƣởng của mạng Internet đối với mọi mặt của cuộc sống ngƣời dân trên toàn thế giới nhƣ gia đình, giáo dục, sứ khỏe, chính trị…Nghiên cứu này đƣợc thực hiện bởi 4 nhà xã hội học ngƣời Mỹ là Amanda Lenhart, Mary Madden, Alexandra Rankin Macgill và Aaron Smith. 1.1.3. Các thể loại mạng xã hội phổ biến Ego centric. Là mạng xã hội lấy cá nhân làm trung tâm. Các hoạt động xã hội sẽ xoay quanh bản thân mình, vì thế ngƣời ta gọi loại này là Ego centric. Điển hình cho dạng này là MySpace, VietSpace và phần nào là Mash của Yahoo, Y360 cũng có một chút. Đặc điểm là trang chủ càng dễ tùy biến càng tốt, càng nhiều thứ để trƣng bày càng tốt, nhiều ngƣời lập trình Widget giúp mình trƣng bày càng tốt. Lựa chọn tốt là MySpace, Mash. Relationship centric. Mạng xã hội loại này lấy mối quan hệ giữa cá nhân ngƣời dùng và bạn bè làm trung tâm. Nó giúp chúng ta biết đƣợc bạn mình đang làm gì, nhóm bạn mình đang làm gì, cũng nhƣ giúp những ngƣời quan tâm tới ta biết ta đang làm gì. Điển hình cho dạng này là FaceBook, Twitter, Y360, Mash. Việt nam có một số mạng xã hội loại này đã ra mắt. Đặc điểm của mạng này là mối quan hệ càng thật, càng thắt chặt càng tốt, các tính năng phải hỗ trợ tối đa các nhu cầu này. Content centric. Đặc điểm chung của mạng loại này là nhằm trƣng bày content do mình hoặc nhóm của mình tạo ra cho bạn bè và công chúng (Bài viết, ảnh, audio/video, v.v...). Opera (phổ biến ở VN) , LiveSpace (phổ biến ở châu Âu), Y360 (phần My Page). Loại này giúp dàn trang dễ dàng, có các tính năng cần thiết giúp chúng ta công khai mọi loại nội dung, một chút kết nối bạn bè và giao tiếp. Có thể nói nó gần nhƣ phần My Page của Y360, nhƣng linh hoạt hơn, tùy biến cao hơn. Ning, v.v... Loại này thiên về nội dung nhóm, tạo điều kiện cho một nhóm cùng công khai, chia sẻ nội dung. Ý tƣởng vậy, nhƣng thực tế các mạng này rất yếu ớt. 11 YouTube, MetaCafe, Clipvn của Việt nam, flickers, ... Các nhóm này gọi là mạng xã hội có thể là không chính xác, có thể gọi nhóm này là hệ thống chia sẻ nội dung có tính năng mạng xã hội. Wordpress, Blogger, TypePad, Y360 blog, Opera Blog, Live Spaces Blog. Nhóm này có thể gọi là mạng xã hội nhƣng xếp nhóm này vào loại blogging platform thì chính xác hơn. Nhƣng nhiều ngƣời Việt nam thực chất đang sử dụng blog mà nghĩ là đang sử dụng mạng xã hội. Các mạng kết hợp 3 dạng mạng trên chỉ là dạng cơ bản, còn rất nhiều loại mạng xã hội khác là sự pha trộn giữa các loại này, cũng nhƣ nhắm các mạng chuyên biệt cho từng mảng nội dung, công nghệ, .... 1.1.4. Chọn mạng xã hội nào? *) Yahoo 360. Không thể không nhắc tới Yahoo 360 vì đây là hệ thống thống trị thị trƣờng mạng xã hội Việt nam, đặc biệt là thống trị trên cả 3 phƣơng diện: Ego, Relationship và content. Tuy vậy trên thế giới Y360 lại gần nhƣ không có địa vị. Lý do đơn giản, trên internet khi anh cố là mọi thứ anh sẽ không là ai. Và trên từng phƣơng diện Ego, Relationship hay content, Y360 lại rất yếu ớt, kém hẳn các nền tảng mạng xác hội khác. Tuy vậy, đặc điểm thị trƣờng Việt nam là ngƣời dùng chƣa khó tính, cộng với nỗi lo ngại về mất độc giả, mất bạn bè nên Y360 vẫn còn vị trí. Tuy vậy, xu hƣớng ngƣời dùng chuyển sang Wordpress, Blogger, Opera, Mash và FaceBook bắt đầu nhận thấy rõ. Yahoo rời bỏ Y360 là điều không thể tránh khỏi, nhƣng có thể yên tâm rằng Yahoo đã đảm bảo cho tất cả ngƣời dùng chuyển đổi hoàn hảo, có trách nhiệm. *) Wordpress. Đây là lựa chọn lý tƣởng cho blogger chuyên nghiệp. Những ai đặt mối quan tâm hàng đầu vào nội dung viết cho độc giả diện rộng chứ không chỉ giới hạn cho gia đình, bạn bè. Tự tin rằng nội dung của mình sẽ đƣợc mọi ngƣời theo dõi mà không cần tới danh sách bạn bè (friendlist) trên Y360. Cần một nền tảng blogging tạo điều kiện cho việc viết, tƣơng tác với độc giả, tƣơng tác với blogger cùng mối quan tâm khác thông qua các tính năng tuyệt vời về: comment, tagging, trackback, blog roll, RSS, social media sharing, và hàng ngàn addon khác phục vụ content blogging. Tự hosting hoặc host miễn phí trên wordpress. Khả năng xây dựng nhóm blogger liên quan cùng viết. 5 xu cũng nhƣ một số ngƣời hay viết khác nên ngay lập tức vứt bỏ Y360 và chuyển sang hệ thống này. *) Opera, Live Space. Những ai quan tâm nhiều tới viết cho gia đình, bè bạn, nhật ký cá nhân, album ảnh - có thể cân nhắc việc chuyển sang Opera, LiveSpace. Hai nền tảng này linh hoạt và dễ cấu hình hơn Y360. Tuy vậy việc chuyển đổi chƣa hẳn là cần thiết, vì giá trị nhận đƣợc sẽ không lớn bằng việc đánh mất các quan hệ xã hội đang có. Trừ trƣờng hợp đa số bạn bè của mình đã chuyển sang Opera hoặc LiveSpace. 12 Nguyên tắc chung: Trừ trƣờng hợp blogger chuyên nghiệp, nguyên tắc căn bản của việc lựa chọn mạng xã hội là bạn ở đâu thì mình ở đấy. Cũng không nên ngần ngại việc duy trì song song cùng một lúc 2 hệ thống mạng xã hội, cuối cùng thì tất cả mọi ngƣời sẽ chạy về nơi phù hợp với mình nhất, vì thế cũng nên thử các loại mạng xã hội trƣớc khi chọn một loại phù hợp nhất cho riêng mình. Hình 1.2: Các mạng xã hội. *) Facebook là một dịch vụ mạng xã hội trực tuyến phổ biến, nó là một sáng tạo độc đáo dành cho sinh viên và mở ra cho bất cứ ai có thƣ điện tử. Facebook cho ngƣời dùng một khoảng không gian để tạo profile và kết nối với bạn bè. Facebook có những tiện ích nhƣ chat, chia sẻ hình ảnh, liên kết, nhóm ƣa thích, status messages và tin thời sự (feed). Facebook là một bƣớc tiến lớn của mạng xã hội, ban đầu đƣợc Zuckerberg lập trình để tạo ra một mạng kết nối hấp dẫn cho bạn bè, sản phẩm này đƣợc sử dụng nội bộ cho sinh viên ĐH harvard và sau này nhân rộng ra khắp thế giới với hơn 49 triệu thành viên đang hoạt động. Nó là một nền tảng phát triển giúp cho ngƣời sử dụng có thể tạo ra những ứng dụng của riêng mình. Ngƣời dùng có thể thêm vào bất kì những ứng dụng nào mà họ muốn, sau đó tổng hợp và sắp xếp lại trong hồ sơ cá nhân. 13 1.2. Mạng xã hội Facebook 1.2.1. Lịch sử phát triển Facebook là một website mạng xã hội truy cập miễn phí do công ty Facebook Inc điều hành và sở hữu tƣ nhân. Ngƣời dùng có thể tham gia các mạng lƣới đƣợc tổ chức theo thành phố, nơi làm việc, trƣờng học và khu vực để liên kết và giao tiếp với ngƣời khác. Mọi ngƣời cũng có thể kết bạn và gửi tin nhắn cho họ, và cập nhật trang hồ sơ cá nhân của mình để thông báo cho bạn bè biết về chúng. Tên của website nhắc tới những cuốn sổ lƣu niệm dùng để ghi tên những thành viên của cộng đồng campus mà một số trƣờng đại học và cao đẳng tại Mỹ đƣa cho các sinh viên mới vào trƣờng, phòng ban, và nhân viên để có thể làm quen với nhau tại khuôn viên trƣờng. Facebook mở đầu là một phiên bản Hot or Not của đại học Harvard với tên gọi Facemash. Mark Zuckerberg, khi đang học năm thứ hai tại Harvard, đã dựng nên Facemash vào ngày 28 tháng 10 năm 2003. Ngày 4 tháng 2 năm 2004, Zuckerman thành lập “The Facebook”, ban đầu đặt tại thefacebook.com. Việc đăng ký thành viên ban đầu giới hạn trong những sinh viên của đại học Harvard, và trong vòng một tháng đầu tiên, hơn một nửa số sinh viên tại Harvard đã đăng ký dịch vụ này. Eduardo Saverin (lĩnh vực kinh doanh), Dustin Moskovitz (lập trình viên), Andrew McCollum (nghệ sĩ đồ họa), và Chris Hughes nhanh chóng tham gia cùng với Zuckerberg để giúp quảng bá website. Vào tháng 3 năm 2004, Facebook mở rộng sang Stanford, Columbia, và Yale. Việc mở rộng tiếp tục khi nó mở cửa cho tất cả các trƣờng thuộc Ivy League và khu vực Boston, rồi nhanh chóng đến hầu hết đại học ở Canada và Hoa Kỳ. Tháng 6 năm 2004, Facebook chuyển cơ sở điều hành đến Palo Alto, California. Công ty đã bỏ chữ The ra khỏi tên sau khi mua đƣợc tên miền facebook.com vào năm 2005. Tới tháng 9 năm 2005, Facebook ra mắt phiên bản trung, Zuckerberg gọi nó là một bƣớc logic tiếp theo. Vào thời gian đó, các mạng của trƣờng trung học bắt buộc phải đƣợc mời mới đƣợc gia nhập. Facebook sau đó mở rộng quyền đăng ký thành viên cho nhân viên của một vài công ty, trong đó có Apple Inc và Microsoft. Tiếp đó vào ngày 26 tháng 9 năm 2006, Facebook mở cửa cho mọi ngƣời trên 13 tuổi với một địa chỉ email hợp lệ. Vào tháng 10 năm 2008, Facebook tuyên bố nó đã thiết lập một trụ sở quốc tế tại Dublin, Ireland. 14 1.2.2. Cơ chế hoạt động của Facebook *) Mô hình ứng dụng web thông thường Hình 1.3: Mô hình web thông thường Ứng dụng và cơ sở dữ liệu đƣợc đặt trên một máy chủ Web. Ứng dụng sẽ chạy trên server và ngƣời dùng thực thi ứng dụng bằng cách sử dụng giao thức HTTP thông qua trình duyệt. Mô hình này sẽ làm việc hiệu quả nếu nhƣ server và client có 1 kết nối Internet ổn định. *) Mô hình ứng dụng web Facebook Hình 1.4: Mô hình web Facebook Ngƣời dùng truy cập Facebook.com và ứng dụng thông qua trình duyệt Internet. Tuy nhiên ứng dụng không đƣợc đặt tại máy chủ của Facebook mà đƣợc lƣu trên máy chủ của chính ngƣời tạo ra ứng dụng đó. Facebook Platform cũng cung cấp một giao diện cho ngƣời viết ứng dụng. Với một máy chủ web bình thƣờng trung bình chỉ chịu đƣợc từ 100 tới 500 truy vấn cùng một lúc. Tuy nhiên với Facebook trung bình mỗi giây phải hiện 600 nghìn hình ảnh cùng một lúc. Vấn đề đặt ra ở đây là làm thế nào để mỗi giây Facebook hiện đƣợc 600 ngàn hình ảnh ? Để giải quyết vấn đề này Facebook đã sử dụng vùng lƣu trữ đệm (cache) và đây cũng chính là trái tim của hệ thống. 15 Hình 1.5: Mô hình web Facebook sử dụng cache Facebook đã phát triển Haystack – một hệ thống quản lý các tập tin hình ảnh trung gian để cải tiến sự truy vấn. Trƣớc đây, Facebook đã sử dụng hệ thống 2 tầng: một tầng chuyên cho việc upload hình ảnh và lƣu trữ vào server. Tầng kia có nhiệm vụ tìm và lấy hình ảnh từ server để trả lời các truy vấn. Tuy vậy việc xử lý theo cách cổ điển này là không phù hợp với nhu cầu tăng rất nhanh số lƣợng ngƣời dùng của Facebook dẫn tới tình trạng nghẽn mạch Input / Output. Haystack sẽ quản lý và lƣu trữ các hình ảnh trong vùng đệm và từđây sẽ trả lời các truy vấn hình ảnh. Bên cạnh đó Facebook còn cải tiến các đoạn mã trên webserver để giảm thiểu kích thƣớc tập tin và thời gian tính toán. Ngôn ngữ lập trình cho từng bộ phận cũng dần đƣợc tối ƣu hóa. Ngƣời truy cập sẽ đƣợc phân luồng ngẫu nhiên vào các ngân hàng dữ liệu để giảm tải và các truy vấn của họ sẽđƣợc hệ thống cache trả lời nhanh chóng. 1.2.3. Cách thức làm việc Hình 1.6: Cách thức làm việc của Facebook 16 1) Trình duyệt của ngƣời dùng yêu cầu http://apps.facebook.com/myapp. Địa chỉ này trỏ tới một cụm máy chủ trong trung tâm dữ liệu của Facebook. Những server này sẽ phân tích các yêu cầu , xác định các ứng dụng tƣơng ứng, sau đó tìm kiếm Url callback mà nhà phát triển ứng dụng cung cấp và thực hiện gọi tới Url đó. 2) Máy chủ của Facebook sẽ gửi yêu cầu tới máy chủ của ngƣời tạo ứng dụng. Yêu cầu này ngƣời dùng hoàn toàn không biết. 3) Server chứa ứng dụng tạo một lời gọi API tới server của Facebook bằng cách sử dụng FQL thông qua phƣơng thức fql.query() của API hoặc trực tiếp bằng các hàm API. 4) Máy chủ chứa ứng dụng sẽ trả về FBML tới máy chủ của Facebook. Kết quả đạt đƣợc cuối cùng là 1 tài liệu FBML. Tài liệu này sẽđƣợc gửi trả lại server của Facebook để thực thi. 5) Tài liệu FBML sẽ đƣợc chuyển sang dạng HTML và phục vụ cho ngƣời sử dụng. Đây là bƣớc cuối cùng trong quá trình thực thi và trả về kết quả cho trình duyệt. 1.2.4. Các dạng ứng dụng trên Facebook hiện nay Sự phát triển ngày càng lớn mạnh của Facebook đã kéo theo sự ra đời của rất nhiều các ứng dụng. Theo thống kê hiện nay có khoảng 90.000 ứng dụng trên Facebook , với sự tham gia của 120 công ty. Theo thống kê năm 2008 ứng dụng trên Facebook đƣợc chia làm các loại:  Alerts  File sharing  Photo  Business  Food and Drink  Politics  Chat  Gaming  Sports  Classified  Just for fun  Travel  Dating  Messaging  Utility  Education  Mobile  Video  Events  Money  Fashion  Music Hiện nay ứng dụng hấp dẫn ngƣời dùng trên Facebook vẫn là các game. Dẫn đầu là game Farmville với số lƣợng ngƣời dùng hàng tháng lên tới 82.580.911 ngƣời. Thứ 2 là ứng dụng Static FBML do Facebook phát triển với 46.827.021 ngƣời dùng. Đứng thứ 3 là Birthday Card với 41.904.049 ngƣời dùng hàng tháng. Tiếp theo là các ứng dụng Café world, Facebook for Iphone, Texas HoldEm Poker,… 17 1.2.5. Điểm mạnh và yếu của mạng Facebook *) Ưu điểm - Là mạng phổ biến hiện nay. - Tính kết nối cao, chia sẻ cập nhật thông tin hàng ngày mà vẫn bảo vệ đƣợc quyền riêng tƣ. - Ứng dụng đƣợc thiết kế khoa học , thao tác nhanh gọn, hỗ trợ tiếng Việt tốt. - Dễ dàng lƣu trữ và chia sẻ hình ảnh, video clip… - Nhiều ứng dụng , game, quiz. Ngƣời dùng cũng có thể tạo ra ứng dụng cho riêng mình. - Khả năng kết nối, giao lƣu với các thành viên trên các lãnh thổ khác nhau. - Tính năng viết blog cho phép soạn thảo dễ dàng. *) Nhược điểm - Ngƣời dùng không tùy chỉnh đƣợc template để có trang riêng cho mình. - Nếu là ngƣời mới dùng Facebook sẽ gặp khó khăn về thao tác. 1.3. Ứng dụng trên Facebook Facebook cung cấp cho ngƣời dùng nền tảng lập trình để có thể phát triển ứng dụng chạy trên mạng xã hội này. Một số ứng dụng có thể đƣợc cài đặt ngay trong phạm vi Facebook, những ứng dụng khác lại dễ dàng cài đặt hơn nếu bắt đầu trên trang web của ứng dụng trƣớc. Facebook có khoảng 1 tỷ ngƣời dùng và đã thu hút một số lƣợng lớn các nhà phát triển ứng dụng, trong đó có những ứng dụng thu hút đƣợc hàng chục triệu ngƣời dùng mỗi tháng và doanh thu đạt hàng chục triệu đô $, điển hình là một loạt game của hãng phát triển game nổi tiếng Zynga. Khi ngƣời dùng bắt đầu lập trang trên Facebook, sẽ có vài ứng dụng cơ bản của Facebook ở cột bên trái. Những ứng dụng này do chính hãng Facebook cung cấp bao gồm Ảnh (Photos), Phim (Videos), Liên kết (Links), Sự kiện (Events) và Ghi chú (Notes). Bất cứ ứng dụng nào khác ngƣời dùng cài đặt thêm sẽ là ứng dụng của bên thứ ba, không phải Facebook tạo ra nó. Ứng dụng của Facebook cũng bao gồm các trò chơi nhƣ CityVille và Mafia Wars và một số các ứng dụng khác mà bạn có thể đã thấy nhƣ Give a Hug hoặc Birthday Calendar. Vì ứng dụng đƣợc phát triển bởi bên thứ ba, do đó không phải tất cả các ứng dụng đều hoạt động tốt và đều đáng tin cậy. Ngƣời dùng có thể đã gặp phải một vấn đề trên Facebook nhƣ các ứng dụng thƣ rác, phá rối hay lừa đảo. 18 CHƯƠNG 2. Xác thực và xác thực bằng OAuth 2.1. Tổng quan về xác thực 2.1.1. Định nghĩa xác thực Xác thực (Authentication) là một hành động nhằm thiết lập hoặc chứng thực một cái gì đó (hoặc một ngƣời nào đó) đáng tin cậy, có nghĩa là những lời khai báo do ngƣời đó đƣa ra hoặc về vật đó là sự thật. Xác thực một đối tƣợng còn có nghĩa là công nhận nguồn gốc của đối tƣợng, trong khi, xác thực một ngƣời thƣờng bao gồm việc thẩm tra nhận dạng của họ. Việc xác thực thƣờng phụ thuộc vào một hoặc nhiều nhân tố xác thực để minh chứng cụ thể. Xác thực là đặc biệt quan trọng để cho sự hoạt động của hệ thống đƣợc an toàn. Hệ thống luôn luôn trƣớc tiên xác thực một thực thể khi nó cố thử thiết lập sự liên lạc. Khi đó nét nhận dạng của thực thể đƣợc dùng để xác định sự truy nhập của nó nhƣ một đặc quyền hoặc để đạt đƣợc sự sẵn sàng phục vụ. Suốt quá trình thực hiện giao thức xác thực, hai bên luôn luôn trao đổi bí mật chung, mà nó sẽ đƣợc dùng để đƣa đến sự bảo mật và toàn vẹn. 2.1.2. Vấn đề xác thực người dùng và tầm quan trọng của nó Hệ thống xác thực ngƣời dùng đóng vai trò hết sức to lớn trong việc bảo mật thông tin của ngƣời dùng trong thời kì hiện đại hoá ngày nay. Vậy nếu không có hệ thống xác thực ngƣời dùng thì làm sao giữ an toàn đƣợc những thông tin bí mật hoặc làm sao quản lý đƣợc các bí mật trong kinh doanh, thƣơng mại và tài khoản ở ngân hàng hoặc những nguồn tài nguyên đƣợc chia sẻ ở trên mạng từ một máy chủ? Với tên và mật khẩu chính xác ngƣời dùng có thể truy cập vào các tệp tin, thƣ điện tử, tài khoản của mình ở ngân hàng hay những thông tin cá nhân của khác…Mà ngƣời dùng không muốn một ngƣời dùng nào khác biết đƣợc. Vì vậy có thể nói lợi ích do hệ thống này mang lại là rất lớn đối với cuôc sống hiện đại ngày nay. Nhƣng các hệ thống xác thực ngƣời dùng hiện nay cũng gặp phải không ít những vấn đề khó khăn: Mật khẩu của ngƣời dùng có thể bị đánh cắp bởi những ngƣời dùng trên mạng internet. Những hacker có rất nhiều công cụ để có thể lấy đƣợc mật khẩu. Do đó đối với hệ thống xác thực ngƣời dùng để đảm bảo an toàn thì ngƣời dùng phải thay đổi mật khẩu thƣờng xuyên, do đó sẽ làm cho ngƣời dùng khó nhớ. Trên thế giới hiện nay phƣơng thức xác thực phổ biến vẫn là sử dụng các ký tự làm mật khẩu và xu hƣớng đặt mật khẩu của ngƣời dùng có thể là sở thích, tên một nhân vật nổi tiếng ƣa thích, hoặc ngày sinh nhật… Sẽ làm cho kẻ tấn công sẽ dự đoán đƣợc. Đối với những mật khẩu thông thƣờng thì ngƣời dùng có thể mô tả đƣợc hoặc ghi lại đƣợc vì vậy rất dễ bị lộ.
- Xem thêm -