2012-04-03 3 views
0

自分のアプリケーション(Webサイト)ユーザの認証ソースとしてFacebookを使用したいと思います。私は、アプリケーションに基本と電子メールのアクセス権以外の何かを持たせたくありません。したがって、私のアプリケーションは、たとえばユーザーの壁に公開できないようにする必要があります。言い換えれば、scopeパラメータの許容値のセットを制限したいので、この制限をアプリケーションの設定ページ(Facebookのサイト自体)で発生させたいと思います。OAuthの 'scope'パラメータ(スコープの制限)の許容許可セットを制限する方法

通常、これは簡単ですが、OAuth URL /コールのscopeパラメータに 'email'を指定するだけです。

しかし、この場合、ハッカーがアプリにアクセスしてOAuth呼び出しを変更してより多くの権限を指定する可能性があります。次に、疑いのないユーザーが通常は(または少なくとも可能性として)これらのアクセス許可を付与し、ハッカーがOAuthトークンを取得してそのユーザーの代わりに操作を実行できるようになります。

私は、この問題の理由を議論することに興味はありません。私のアプリケーションでは、scopeパラメータに特定の値のセットしか使用できないように指定する方法があります。理想的には、スコープ制限のこの仕様は、Facebook自体のアプリケーション設定ページで行う必要があります。

しかし、私はSAML、OpenIDまたはその他の認証専用メカニズム(ユーザーの電子メールアドレスを取得できない場合でも)を使用する代わりのソリューションに興味があります。私はRPXの使用には興味がありません。

注意:これは単純なものではなく、複雑な質問です。私は遠くに答えを探して、この質問の反対に何があるのか​​を見いだしただけです。

答えて

0

アプリケーションの設定レベルでスコープを制限することはできません。

サインアップ時にユーザーのアクセス許可を照会し、許可されているアクセス許可と一致することを確認し、(リアルタイムの最新の更新情報)[http://developers.facebook.com]にサブスクリプションすることをお勧めします/ docs/reference/api/realtime /]にあります。ユーザーに付与されたアクセス許可の変更は、アプリに通知されます。

これにより、アプリケーションロジックを通じてサーバー側のAPI呼び出しをブロックするか、アクセス許可を昇格するユーザー([禁止] [https://developers.facebook.com/docs/reference/api/application/#banned])をブロックできます。 。

+0

興味深い考えです。リアルタイムのドキュメントを見ると、変更要求が送信されたように見えますが、ユーザーが初めてアプリケーションを承認することはありません。 –

+0

初めて/ me/permissionsを使用して確認できます。したがって、それらが正しいことを確認し、リアルタイムで確実に*正しい*状態を保ちます。 –

関連する問題