2012-04-03 4 views
0

Я хочу использовать Facebook в качестве источника аутентификации для пользователей моего приложения (веб-сайта). Я не хочу, чтобы мое приложение имело ничего, кроме базовых и электронных разрешений. Таким образом, мое приложение не может быть опубликовано на стене пользователя, например. Другими словами, я хочу ограничить допустимый набор значений параметра scope, и я хочу, чтобы это ограничение происходило на страницах конфигурации приложения (на самом сайте Facebook).Как ограничить допустимый набор разрешений для параметра «scope» OAuth (ограничение области)

Обычно это было бы просто, просто укажите «адрес электронной почты» для параметра области URL-адреса OAuth.

Однако в этом случае есть еще один фактор, и это: хакер может получить доступ к приложению и изменить вызов OAuth, чтобы указать дополнительные разрешения. Тогда ничего не подозревающий пользователь обычно (или, по крайней мере, возможно) предоставляет эти разрешения, и хакер сможет захватить токен OAuth и выполнить действия от имени этого пользователя.

Мне неинтересно обсуждать эту проблему, просто обнаружив, что есть способ указать, что мое приложение может использовать только определенный набор значений для параметра области. В идеале эта спецификация ограничения объема должна быть сделана на странице конфигурации приложения на самом Facebook.

Однако меня интересуют альтернативные решения, связанные с использованием SAML, OpenID или другого механизма проверки подлинности (даже если я не могу получить адрес электронной почты пользователей). Я не заинтересован в использовании RPX.

Обратите внимание: это сложный вопрос, не простой. Я искал ответы на все вопросы и только что нашел, что составляет противоположность этому вопросу.

ответ

0

Я уверен, что невозможно ограничить область применения на уровне конфигурации приложения.

Я бы сказал, что самым крутым обходным решением будет запрос разрешений пользователя на регистрацию, проверка их соответствия разрешенным разрешениям и подписка на (разрешения в режиме реального времени) [http://developers.facebook.com/документы/ссылка/API/в реальном времени /]. Ваше приложение будет уведомлено о любых изменениях в разрешениях, предоставляемых пользователям.

Это должно позволить вам блокировать любые вызовы API на стороне сервера через логику приложения или (запретить) [https://developers.facebook.com/docs/reference/api/application/#banned] пользователя, который увеличивает разрешения ,

+0

Интересная идея. Глядя на документ реального времени, похоже, что он отправляет запросы об изменениях, но не в первый раз, когда пользователь разрешает приложение. –

+0

Вы можете проверить, что первый раз, используя/me/permissions. Итак, подтвердите, что они верны, и в реальном времени они останутся верными. –

 Смежные вопросы

  • Нет связанных вопросов^_^