2012-07-16 26 views
15

Tôi muốn triển khai ứng dụng iOS có đăng nhập Facebook. Tôi muốn người dùng ứng dụng của tôi có thể tương tác với biểu đồ xã hội của họ (tức là đăng lên luồng của họ). Vì mục đích đó, tôi sẽ sử dụng Facebook iOS SDK.
Khi người dùng đã được xác thực với Facebook, họ cũng sẽ có thể sử dụng một số dịch vụ ở phía máy chủ của ứng dụng của tôi. Làm thế nào tôi có thể xác minh một người dùng chống lại các dịch vụ trên máy chủ của tôi?Giao tiếp bảo mật giữa ứng dụng khách iOS, API Facebook và máy chủ

Trong ứng dụng iOS của tôi, tôi có thể truy vấn mã thông báo truy cập (đối với ứng dụng Facebook của tôi) bằng SDK Facebook iOS. Tôi có nên gửi mã thông báo truy cập đó cùng với ID người dùng facebook cho máy chủ của tôi không? Máy chủ có thể xác minh liệu mã thông báo truy cập có hợp lệ không? Hoặc chỉ nên ứng dụng iOS của tôi giao tiếp với API Facebook? Máy chủ có thể đăng lên tường Facebook của tôi không, hoặc điều này có được thực hiện độc quyền thông qua ứng dụng iOS không?

+2

Tại sao bỏ phiếu xuống, câu hỏi này dường như có ý nghĩa với tôi và cho thấy một số nỗ lực trong việc giải thích vấn đề. – Till

+0

@Till Câu hỏi này chắc chắn có ý nghĩa. Có thể ai đó không thích từ ngữ. – borisdiakur

Trả lời

5

UPDATE:

Facebook hiện nay cung cấp một tài liệu an ninh/danh sách kiểm tra: https://developers.facebook.com/docs/facebook-login/security/


Bạn có ít nhất hai lựa chọn:

  1. Gửi token quyền truy cập vào Máy chủ và xử lý tất cả yêu cầu tới Facebook bằng mã thông báo đó (nếu mã thông báo không hợp lệ, bạn gặp lỗi và chỉ cần chuyển mã thông báo cho khách hàng). => An toàn nhưng (một chút) phức tạp.

  2. riêng biệt giao tiếp giữa

    • khách hàng của bạn (iOS App) và API Facebook và
    • khách hàng của bạn và Server của bạn.

    Ứng dụng của bạn sẽ xử lý tất cả các yêu cầu đến API Facebook thông qua Facebook iOS SDK và sau đó truyền đạt dữ liệu kết quả, giống như tất cả các loại id Facebook, đến Server của bạn. Cách tiếp cận này hoàn toàn không an toàn nếu không có một số loại mã hóa; bạn có thể gửi một số hàm băm mật mã tới máy chủ của bạn và xác nhận nó bằng một khóa được lưu trữ trên máy chủ của bạn và Ứng dụng iOS. => Phương pháp này là (một chút) dễ thực hiện hơn nhưng an toàn hơn vì khóa có thể bị đánh cắp thông qua kỹ thuật đảo ngược. Hơn nữa, bạn sẽ phải kiểm tra dấu kiểm "Tôi đang sử dụng mã hóa" khi gửi ứng dụng của bạn đến cửa hàng ứng dụng.

Nó thực sự phụ thuộc vào rủi ro bạn sẵn sàng thực hiện, loại yêu cầu bạn thực hiện, loại dịch vụ bạn có và v.v.

Máy chủ có thể xác minh liệu mã thông báo truy cập có hợp lệ không?

Vâng, xem ở đây: Facebook access token server-side validation for iPhone app

Các vấn đề liên quan