Войдите через Facebook, без полного доступа к facebook.com - PullRequest
8 голосов
/ 25 января 2012

Веб-приложение, которое я сейчас разрабатываю, требует, чтобы пользователи могли войти через Facebook OAauth.Однако проблема в том, что все эти пользователи находятся за брандмауэром, который блокирует доступ к facebook.com (политика компании).Мы рассмотрели несколько решений, чтобы обойти это, например:

  • Размещение прокси (squid) между Facebook и пользователями.Это может решить проблему, так как squid поддерживает мелкозернистые ACL на основе регулярных выражений.Однако большая часть стратегии OAuth Facebook работает на www.facebook.com, и проверка PATH_INFO для определенных путей в белом списке невозможна, если пользователи используют HTTPS (что является обязательным).
  • Добавление прокси-подобного сайта вDMZ брандмауэра, который просто пропускает и изменяет URL / запрос Facebook.Очевидно, что это тоже не тот путь, поскольку в основном это означает, что пользователи оставляют свои учетные данные на нашем сервере, что противоречит условиям Facebook.
  • Немного ослабьте брандмауэр, чтобы просто включить IP-адреса, необходимые для аутентификации OAuth., но, насколько нам известно, не существует выделенного IP-адреса или субдомена только для аутентификации (было бы неплохо, если бы Graph.facebook.com предоставил что-то подобное).

Любые идеидля альтернативных решений?Это вообще возможно?

1 Ответ

4 голосов
/ 15 февраля 2013

Нет, поскольку процесс OAuth Login для API работает, отправляя пользователя по URL-адресу HTTPS на facebook.com, и вы не сможете легко отличить трафик, необходимый для настройки входа в систему.ваше приложение и другой трафик на Facebook.com

У вас возникнет та же проблема при попытке проверить пользователя Facebook с помощью социального плагина, такого как кнопка «Мне нравится» - вы не можете легко разделить трафик для плагина.и другой трафик на facebook.com

...