github 3 legged oauth身份验证需要在创建github应用程序时定义回调URL(或至少是主机)。这意味着网址是静态的。
我们的网站有几个部署,每个部署都有不同的主机,因此我们需要为每个部署提供一个github应用程序 - 这很难维护。
现在我们已经开始动态生成部署主机/端口,并且每个部署不再具有github应用程序。
我们需要oauth回调网址是动态的,以便我们能够指定动态生成的主机/端口。
我们考虑在某处创建第二方网络服务,重定向oauth-callback:
创建github应用程序时,分配重定向webservice URL。
进行身份验证时,将尝试进行身份验证的主机的url作为参数传递给github
github在重定向服务上查询auth回调,该服务检索original_host_url参数并在那里重定向,从而动态地到达相关的webservice URL。
所以有两个问题:
从技术上讲,这个解决方案能解决我的问题吗?
这是否会引入安全问题,除了让重定向服务使用https并且可能只接受来自oeuth提供者的连接,例如github?