2012-07-16 17 views
15

Facebookログインを使用してiOSアプリケーションを実装したいと考えています。私は自分のアプリのユーザーがソーシャルグラフ(つまり自分のストリームに投稿)とやり取りできるようにしたいと考えています。そのためにFacebookのiOS SDKを使用します。
ユーザーがFacebookで既に認証されている場合、アプリケーションのサーバー側でいくつかのサービスを使用できるようにする必要があります。サーバー上のサービスに対してユーザーを確認するにはどうすればよいですか?iOSクライアントとFacebook APIとサーバーの間の安全な通信

私のiOSアプリケーションでは、iOS Facebook SDKを使用して(私のFacebookアプリケーションの)アクセストークンを照会できます。そのアクセストークンをFacebookのユーザーIDと共にサーバーに送信する必要がありますか?アクセストークンが有効かどうかサーバーが確認できますか?または、iOSアプリだけがFacebook APIと通信する必要がありますか?サーバーを自分のFacebookの壁に投稿することはできますか?これはiOSアプリのみで行うべきですか?

+2

なぜダウン票を、この質問は、私には意味をなさないようだと問題を説明するいくつかの努力を示しています。 – Till

+0

@ティルこの質問は間違いなく理にかなっています。たぶん誰かが言葉遣いを好まなかったでしょう。 – borisdiakur

答えて

5

UPDATE:

Facebookは今やセキュリティのドキュメント/チェックリストを提供します。 https://developers.facebook.com/docs/facebook-login/security/


あなたは、少なくとも2つのオプションがあります。

  1. をお使いにアクセストークンを送りますサーバーへのすべてのリクエストを処理し、そのトークンを使用して (トークンが無効な場合はエラーが発生し、 がクライアントに渡されます)。 =>安全ですが、少し複雑です。

  2. セパレート

    • あなたのクライアント(のiOSのApp)およびFacebookのAPIと
    • あなたのクライアントとあなたのサーバー間の通信。

    アプリはFacebookのiOSのSDKを介してFacebookのAPIへのすべてのリクエストを処理して、あなたのサーバーに、FacebookのIDのすべての種類のように、結果のデータを通信します。このアプローチは、何らかの暗号化なしでは完全に安全ではありません。サーバーにいくつかの暗号化ハッシュ関数を送信し、サーバーとiOSアプリケーションに格納されているキーで検証することができます。 =>この方法は実装が簡単ですが、リバースエンジニアリングでキーを盗むことができるため、安全性が低くなります。さらに、アプリをアプリストアに送信する際に、「暗号化を使用しています」チェックマークをチェックする必要があります。

これは実際にどのくらいのリスクを抱えているか、どのような要求をするか、どのようなサービスを受けているかなどによって決まります。

サーバーはアクセストークンが有効かどうかを確認できますか?

はい、ここを見て:Facebook access token server-side validation for iPhone app

関連する問題