2012-04-14 10 views
2

FacebookのAPIを使用してサードパーティにサービスを提供したいと考えています。アクセストークンを共有することは可能ですか?第三者がサービスにユーザーのアクセストークンを渡した場合、私のapp_id &の秘密情報が要求されたアプリと一致しなくても、そのユーザーのデータにアクセスできますか?アプリ全体でFacebookアクセストークンを共有する

他のサードパーティに対して既に完了している場合でも、ユーザーは自分のサイトで別のoauthフローを実行する必要がありますか?

ありがとうございました。

-ken

答えて

3

それは私たちがアクセストークンを共有することは可能ですか?

と、

私は、ユーザーのデータは私のAPP_ID &秘密はそれを要求したアプリと一致しない場合でも、というアクセスすることができますか?

答えはNoです。スペックOAuth2 section 10.3から:

アクセストークンの資格情報(ならびに任意の機密アクセストークンの属性)輸送および保管中に秘密にしなければならない、とのみ認証サーバ間で共有、リソースサーバアクセストークンがありますおよびそのアクセストークンが発行されたクライアントに適用されます。


私は、ユーザーが他のサードパーティのためにそれをすでに完了している場合でも、自分のサイト上の別のOAuthフローを通過している必要がありますか?

答えはYesです。認証サーバーとしてFacebookを使用していて、oauthフローを再開すると、ユーザーは他のアプリケーション(サードパーティ)を承認するだけで済みます。

+5

アプリとウェブサイトが連携しているとしたら(TwitterとTwitterアプリ)、どうすればいいですか? Twitterが第三者(たとえばGoogle)との認証にOAuth2を使用したければ、アプリとウェブサイトの両方を個別に認証する必要がありますか?ユーザーにとって非常に面倒で不愉快な経験です。 – Timmmm

+0

私は仕様書の見積もりを「はい、可能です」と解釈しますが、セキュリティに違反する可能性があるため「いいえ、あなたはしないでください」と解釈します。トークンを共有できない場合は、トークンを安全に保つ必要はありません。 – JRI

2

各アクセストークンはのみ1つのアプリのために発行される - それは、異なるアプリケーションIDを使用することはできません。

8

ユーザーアクセストークンでも、1つのアプリケーションに対してのみ発行されます。他のアプリケーションから簡単に使用できます。

例:

  1. https://developers.facebook.com/tools/explorer/?method=GET&path=meここで、「グラフAPIエクスプローラ」アプリケーションのアクセストークンを取得し、要求を行う - あなたのデータが表示されます。
  2. アクセストークンをコピーして他のマシンを開き、ブラウザを開き、https://graph.facebook.com/me?access_token=[access_token]にアクセスしてください。まだFacebookのユーザーに関する情報を取得できます。
  3. ここ

https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/それは

我々のデータポリシーを明示的に他のアプリとアプリのアクセストークンのいずれかの共有を禁止することを述べました。ただし、開発者は、HTTPSを使用して転送される限り、同じアプリケーションのネイティブ実装とサーバー実装の間でトークンを共有することができます(つまり、同じApp IDを使用します)。

+0

FBデータポリシーから抜粋すると、ネイティブアプリとバックエンドアプリの間でトークンを共有する必要があることは明らかです.Fronters APIに独占的に認証されたアクセスを共有するため、トークンを共有する必要があります。もちろん、OPは実際にこれを求めていませんでした。 – kingdango

+0

@kingdangoでは、2つのアプリケーションが「FB oauth APIへの独占的な認証されたアクセスを共有する」必要はありません。 FB "Graph API Explorer"アプリケーションからアクセストークンを取得して、自分のアプリで使用することができます。 –

関連する問題