我们正在构建一个 SaaS 应用程序,我们称之为http://mysaasapp.com。当用户注册时,他们使用子域名http://myinstance.mysaasapp.com或自定义域名http://instance.mycompany.com等访问他们的实例。
我们正在考虑与其他服务(Facebook、Twitter 等)集成,以便我们的用户可以在他们的实例中链接到这些服务上的帐户。Twitter 在涉及 OAuth 重定向回调时非常宽松(我们可以在发出 OAuth 请求时设置回调/重定向 URL)。然而,Facebook 并不那么宽松,回调/重定向域是在 facebook.com 上的应用程序配置中设置的
当用户在他们的实例上使用自定义域名时,他们可以选择使我们网站上的子域 (http://myinstance.mysaasapp.com) 处于非活动状态。这意味着我们不能将 OAuth 的回调域设置为 mysaasapp.com 并期望它能够正常工作。
解决方案是使用 OAuth 代理 (http://proxy.mysaasapp.com)。我们之前使用过 HybridAuth,我们相信我们应该能够轻松地将其变成 OAuth 代理。
话说回来:
我们应该使用 OAuth 代理来仅代理 Auth 请求吗?一旦我们获得访问令牌,我们应该继续通过代理代理请求还是应该直接从我们的实例连接到提供者?换句话说,是否有任何 OAuth 安全 API 将 API 调用(在身份验证后)限制为某些定义的域?
我应该如何保护 OAuth 代理,以便请求只能来自我们的应用程序实例,而响应只能转到我们的应用程序实例?