2012-01-24 16 views
8

Aplikacja internetowa, którą właśnie rozwijam, potrzebuje użytkowników do zalogowania się przez Facebooka OAauth. Problem polega jednak na tym, że wszyscy ci użytkownicy znajdują się za zaporą, która blokuje dostęp do facebook.com (polityki firmy). Przyjrzeliśmy się kilku rozwiązaniom, które można ominąć, na przykład;Zaloguj się przez Facebooka oauth, bez pełnego dostępu facebook.com

  • Umieszczenie proxy (kalmara) między Facebookiem a użytkownikami. Może to rozwiązać problem, ponieważ kałamarnica obsługuje listy ACL oparte na precyzyjnym ziarnie. Jednak większość strategii OAuth na Facebooku działa na stronie www.facebook.com, a inspekcja PATH_INFO w celu dodania białej listy do określonych ścieżek nie jest możliwa, jeśli użytkownicy używają protokołu HTTPS (który jest obowiązkowy).
  • Dodanie witryny podobnej do proxy w strefie DMZ zapory sieciowej, która po prostu przekazuje i zmienia żądanie URL/Facebook. Oczywiście nie jest to również droga, ponieważ w zasadzie oznacza to, że użytkownicy zostawiają swoje referencje na naszym serwerze, co jest sprzeczne z zasadami Facebooka.
  • Poluzuj zaporę tak, aby po prostu włączać adresy IP potrzebne do uwierzytelniania OAuth, ale o ile moglibyśmy się dowiedzieć, nie ma dedykowanego adresu IP lub subdomeny tylko dla uwierzytelnienia (byłoby dobrze, gdyby graph.facebook.com zapewniłoby coś takiego).

Jakieś pomysły na alternatywne rozwiązania? Czy to w ogóle możliwe?

+1

"Jakieś pomysły na alternatywne rozwiązania?" Jeśli Facebook jest integralną częścią budowanej przez ciebie aplikacji, to twój menedżer powinien być w stanie skłonić użytkowników sieci do wprowadzenia wyjątku od reguł zapory sieciowej. Moja firma używa filtru według roli i użytkownika. Tak więc tylko ci w określonej roli otrzymują facebooka, a także niektórych użytkowników, którzy są nadpisani i uzyskać dostęp w każdym razie. – DMCS

+0

Nawet jeśli jest to możliwe za pomocą serii hacków, będzie to miało tendencję do łamania rzeczy, ponieważ Facebook to szybko rozwijająca się firma i platforma programistyczna, a rzeczy zmieniają się, czasami zaskakująco często. Byłoby to potencjalnie kruche rozwiązanie i nie wyobrażam sobie większej frustracji niż udana aplikacja z wieloma użytkownikami, która nagle pewnego dnia nie może już korzystać z witryny. – spotman

+0

Co z dopuszczeniem adresu URL facebook.com/dialog/oauth w zaporze? – chesles

Odpowiedz

3

Nie, ponieważ proces OAuth Login dla interfejsu API działa poprzez wysłanie użytkownika do adresu URL HTTPS na facebook.com, nie będzie można łatwo odróżnić ruchu potrzebnego do skonfigurowania logowania do aplikacji i innego ruchu na Facebook.com

Będziesz mieć ten sam problem, próbując zweryfikować użytkownika Facebooka za pomocą wtyczki społecznościowej, takiej jak przycisk Podoba mi się - nie możesz łatwo oddzielić ruchu związanego z wtyczką i innym ruchem na facebook.com

Powiązane problemy