这与通配域无关.这是关于需要在Facebook登录上添加完全不同的域到有效的OAuth重定向URI.
我们有一个Web应用程序,我们的客户可以在其中设置自己的自定义域(example.com,xyz.net等).我们不知道将使用哪些域名.
在Facebook上,我们有一个应用程序来处理Facebook登录.我们似乎需要将每个使用FB登录的域列入白名单.
手动添加域不是一种选择.我们有什么选择?
谢谢.
最佳答案 我能想到的最简单的解决方案是使用具有非常宽松的重定向uri验证的中间身份服务.这种方法有
good discussion,与
IdentityServer4有关的一些安全问题.
我以前使用自定义重定向uri验证来识别身份服务,但仅限于非常严格的情况,因为这是OAuth流中最受利用的漏洞之一.您需要的灵活性会大大削弱安全性.
要在IdentityServer4中实现它,您需要在身份服务器上设置Facebook身份验证,并在Facebook上注册身份服务器的地址.然后,您将创建客户端以表示您的新域.这可能是所有事情的单个客户端(使事情更加不安全),或者您可以为客户添加一种方式来向身份服务器注册自己(例如dynamic client registration).
当客户想要连接到Facebook时,他们将使用Open Id Connect连接到身份服务器,然后身份服务器将与Facebook通信.在IdentityServer4中,客户端将使用UseOpenIdConnectAuthentication(see here for an example)为此添加中间件.
您应该通过使用中间身份服务来解决您的问题.身份服务将是唯一需要注册到Facebook的网址,您的客户将注册您可以控制的身份服务.
尽管如此,强大的力量也带来了巨大走最小努力的道路将导致一种大大降低安全性的解决方案.使用诸如dynamic client registration protocol之类的身份服务实施安全动态注册将允许您为每个客户端使用单个严格重定向uri,并使您的系统尽可能安全,并且可以合理地获得它.