Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Facebook oauth登录,无需完全访问Facebook.com_Facebook_Ssl_Oauth_Proxy_Facebook Oauth - Fatal编程技术网

使用Facebook oauth登录,无需完全访问Facebook.com

使用Facebook oauth登录,无需完全访问Facebook.com,facebook,ssl,oauth,proxy,facebook-oauth,Facebook,Ssl,Oauth,Proxy,Facebook Oauth,我目前正在开发的一个web应用程序需要用户能够通过Facebook OAauth登录。然而,问题是,所有这些用户都躲在防火墙后面,防火墙阻止了对facebook.com公司政策的访问。我们已经研究了几种解决方案,比如 在Facebook和用户之间放置squid代理。这可以解决问题,因为squid支持基于细粒度正则表达式的ACL。但是,大多数Facebooks OAuth策略都在www.facebook.com上运行,如果用户使用HTTPS(这是强制性的),则无法检查路径信息以将特定路径列入白名单

我目前正在开发的一个web应用程序需要用户能够通过Facebook OAauth登录。然而,问题是,所有这些用户都躲在防火墙后面,防火墙阻止了对facebook.com公司政策的访问。我们已经研究了几种解决方案,比如

在Facebook和用户之间放置squid代理。这可以解决问题,因为squid支持基于细粒度正则表达式的ACL。但是,大多数Facebooks OAuth策略都在www.facebook.com上运行,如果用户使用HTTPS(这是强制性的),则无法检查路径信息以将特定路径列入白名单。 在防火墙的DMZ中添加一个类似代理的站点,该站点只通过并更改URL/Facebook请求。这显然也不是一个好办法,因为这基本上意味着用户将他们的凭证留在我们的服务器上,这是违反facebook条款的。 稍微放宽防火墙,只启用OAuth身份验证所需的IP地址,但据我们所知,没有专门用于身份验证的IP或子域,如果graph.facebook.com提供类似的功能,那就太好了。
有其他解决方案的想法吗?这可能吗?

不可能,因为API的OAuth过程通过将用户发送到facebook.com上的HTTPS URL来工作,您将无法轻松区分设置应用程序登录所需的流量和facebook.com的其他流量


如果你想通过使用类似like按钮的社交插件来验证Facebook用户,你也会遇到同样的问题——你不能轻易地将插件的流量与Facebook.com的其他流量区分开来

有没有其他解决方案?如果Facebook是您正在构建的应用程序的一个组成部分,那么您的经理应该能够让网络人员加入防火墙规则的例外。我的公司使用按角色和用户筛选。因此,只有那些扮演特定角色的人才能获得facebook以及被覆盖的特定用户。即使有可能通过一系列的黑客攻击,它也很容易破坏东西,因为facebook是一家快速发展的公司和开发平台,而且事情会发生变化,有时会出人意料地经常发生变化。这可能是一个脆弱的解决方案,我无法想象比拥有一个成功的应用程序更令人沮丧的是,有一天许多用户突然不能再使用你的网站。那么允许在防火墙中使用facebook.com/dialog/oauth URL呢?@DMCS我同意这将是最好的解决方案。但我想知道是否有其他选择,因为这绝对是最后的选择。@spotman Meh,是的,你说得对。除此之外,它还与Facebook开发者条款存在一些严重的问题。