2012-01-24 1 views
8

현재 개발중인 웹 애플리케이션은 Facebook OAauth를 통해 로그인 할 수있는 사용자가 필요합니다. 그러나 문제는 이러한 모든 사용자가 facebook.com (회사 정책)에 대한 액세스를 차단하는 방화벽 뒤에 있다는 것입니다. Google은이를 해결하기 위해 다음과 같은 몇 가지 해결책을 모색했습니다.페이스 북으로 로그인 facebook.com에 올 액세스없이

  • 페이스 북과 사용자간에 (squid) 프록시 배치. 오징어는 정교한 정규식 기반 ACL을 지원하므로 문제를 해결할 수 있습니다. 그러나 대부분의 Facebook OAuth 전략은 www.facebook.com에서 실행되며 사용자가 HTTPS를 사용하는 경우 PATH_INFO를 검사하여 특정 경로를 허용 할 수 없습니다 (필수).
  • 방화벽의 DMZ에 프록시와 같은 사이트를 추가합니다.이 사이트는 URL/Facebook 요청을 전달하고 변경합니다. 이것은 분명히 사용자가 페이스 북의 조건에 위배되는 우리 서버에 자신의 자격 증명을 남기는 것을 의미하기 때문에 어느 쪽이든 갈 길은 아닙니다.
  • OAuth 인증에 필요한 IP 주소를 활성화하는 것만으로 방화벽을 약간 느슨하게 만들지 만, 인증을 위해 전용 IP 또는 하위 도메인이없는 한 찾을 수 있습니다 (graph.facebook.com 이런 식으로 제공 할 것입니다).

대체 솔루션에 대한 아이디어가 있으십니까? 이것은 심지어 가능합니까?

+1

"대안 솔루션에 대한 아이디어가 있습니까?" 페이스 북이 당신이 만들고있는 앱의 중요한 부분이라면 관리자는 방화벽 규칙에 예외를 두도록 네트워크 담당자를 확보 할 수 있어야한다. 우리 회사는 역할과 사용자별로 필터를 사용합니다. 특정 역할을하는 사람들 만이 페이스 북을 얻을 수있을뿐만 아니라 오버라이드되고 액세스 권한을 얻은 특정 사용자도 얻을 수 있습니다. – DMCS

+0

일련의 해킹을 통해 가능하다해도 페이스 북은 빠른 속도로 움직이는 회사 및 개발 플랫폼이기 때문에 상황을 변화시키는 경향이 있습니다. 잠재적으로 깨지기 쉬운 솔루션 일 수 있으며 갑자기 언젠가는 더 이상 사이트를 사용할 수없는 많은 사용자와 함께 성공적인 앱을 만드는 것보다 훨씬 더 좌절감을 느낄 수 없습니다. – spotman

+0

방화벽에서 facebook.com/dialog/oauth URL 허용은 어떻게됩니까? – chesles

답변

3

아니요, OAuth Login API 프로세스가 facebook.com의 HTTPS URL로 사용자를 전송함으로써 작동하므로 앱에 로그인을 설정하는 데 필요한 트래픽과 다른 트래픽을 쉽게 구분할 수 없습니다

Like 버튼과 같은 소셜 플러그인을 사용하여 Facebook 사용자를 확인하는 것과 동일한 문제가 있습니다. 플러그인의 트래픽과 facebook.com의 다른 트래픽을 쉽게 분리 할 수 ​​없습니다