如何在已部署的网络应用中使用OAuth?

时间:2012-09-05 08:17:49

标签: web-applications oauth oauth-2.0

我们是一个带有Web应用程序的ISV。与StackExchange或Trello不同,此Web应用程序安装在客户站点,因此每个Web应用程序安装都有一个单独的URL。即:http://app.example.com/http://app.microsoft.com/都可以是我们应用的有效网址。

我们希望使用OAuth访问用户的Google数据(一个简单的首次使用导入来填充应用数据库)。我们的问题是试图找出如何使这项工作。

用于网络应用的OAuth(客户端)取决于向权威机构注册的重定向网址(在我们的案例中为Google)。如果您是Trello或StackExchange,您有一个URL,只需将其放入。由于我们安装在很多地方,我们可以有很多网址,而且我们不知道它们是什么,所以我们无法分辨谷歌提前使用哪些网址。

客户端应用程序(Windows客户端等)的OAuth通过在窗口标题中返回响应而不是重定向来解决此问题。这对于完全控制浏览器的应用程序来说非常有用 - 即控制沙箱,但对于普通浏览器,跨站点安全限制使得无法从Google响应窗口获取秘密。

在OAuth世界中,我们似乎处于两个凳子之间。不是网络应用,也不是客户端应用。

我们如何在多个位置安装多个网络应用程序时使用OAuth?

1 个答案:

答案 0 :(得分:0)

很抱歉,但注册过程存在是有原因的。如果它位于多个公司拥有的多个URL上,则它们将被视为单独的应用程序,并且它们应使用不同的客户端ID /客户端机密并由相应的所有者注册。您只需要为客户提供有关如何注册应用程序的说明,或者如果您安装了服务团队,则将其作为部署过程的一部分。

构建多租户应用程序有很多好处,而不必这样做只是其中之一!