没有有效OAuth重定向URI的Facebook登录

时间:2017-04-07 14:34:31

标签: facebook facebook-graph-api oauth facebook-login

这与通配域无关。它需要在Facebook登录上向完整的OAuth重定向URI添加完全不同的域。

我们有一个网络应用程序,我们的客户可以在其中设置自己的自定义域(example.com,xyz.net等)。我们不知道将使用哪些域名。

在Facebook上我们有一个应用Facebook登录的应用程序。我们似乎需要将每个使用FB登录的域列入白名单。

手动添加域不是一种选择。我们有什么选择?

感谢。

1 个答案:

答案 0 :(得分:1)

我能想到的最简单的解决方案是使用具有非常宽松的重定向uri验证的中间身份服务。这种方法good discussion以及与IdentityServer4相关的一些安全问题。

我之前使用自定义重定向uri验证来识别身份服务,但仅限于非常严格的情况,因为这是OAuth流中最受利用的漏洞之一。您需要的灵活性会大大削弱安全性。

要在IdentityServer4中实现它,您需要在身份服务器上设置Facebook身份验证,并在Facebook上注册身份服务器的地址。然后,您将创建客户端以表示您的新域。这可能是所有事情的单个客户端(使事情更加不安全),或者您可以为客户添加一种方式来向身份服务器注册(例如dynamic client registration)。

当客户想要连接到Facebook时,他们将使用Open Id Connect连接到身份服务器,然后身份服务器将与Facebook通信。在IdentityServer4中,客户端将使用UseOpenIdConnectAuthenticationsee here for an example)为此添加中间件。

您应该通过使用中间身份服务来解决您的问题。身份服务将是唯一需要注册到Facebook的网址,您的客户将使用您可以控制的身份服务进行注册。

虽然强大的力量带来了巨大的责任。走最小努力的道路将导致一种大大降低安全性的解决方案。使用dynamic client registration protocol等身份服务实施安全的动态注册将允许您为每个客户端使用一个严格的重定向uri,并使您的系统尽可能安全地获得它。