1

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

我们想使用 OAuth 访问用户的 Google 数据(一个简单的首次使用导入来启动应用程序数据库)。我们的问题是试图弄清楚如何使这项工作。

Web 应用程序(客户端)的 OAuth 依赖于在授权机构(在我们的例子中是 Google)注册的重定向 URL。如果您是 Trello 或 StackExchange,您只有一个 URL,然后将其放入。由于我们安装在很多地方,我们可以有很多 URL,我们不知道它们是什么,所以我们不能告诉 Google 哪些 URL提前使用。

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

在 OAuth 世界中,我们似乎陷入了两种困境。不是 Web 应用程序,也不是客户端应用程序。

我们如何将 OAuth 与安装在多个位置的多个 Web 应用程序一起使用?

4

1 回答 1

0

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

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

于 2012-09-09T00:44:23.230 回答