具有多个资源的OAuth客户端实施,多个身份验证服务器

时间:2017-08-03 18:37:26

标签: oauth

我正在尝试了解需要访问由不同授权服务器支持的受保护资源的系统的OAuth最佳实践实施策略。默认答案是使用每个授权服务提供的访问令牌并编写逻辑以根据需要存储它们,但需要多个联合受保护资源的系统的用例似乎很常见,可能存在协议/框架级解决方案。如果是这样,我一直无法找到它。

这是一个澄清的假设示例:

我是Dropbox,Google云端硬盘和Boxx帐户的用户。我想制作一个后端API来报告我在所有三个系统中拥有的文件总数,即Result = FileCount(Dropbox) + FileCount(Drive) + FileCount(Boxx)。如何以能够轻松管理授权的方式组织系统?一些案例:

  • 单一帐户:如果我只有一个云端硬盘帐户,则设置很简单。有一个受保护的资源(我的文件夹),一个授权服务器(谷歌),所以我只有一个令牌需要考虑。通过更改授权端点并重新定义FileCount功能,我可以使此应用程序适用于我关心的任何存储客户端(Dropbox,Google,Boxx)。

  • 多帐户:如果我想从每个受保护资源聚合数据,我现在需要三个单独的授权,因为每个受保护资源都由一个单独的授权服务器管理。 AFAIK,我无法“链接”这些客户端以使用单个授权服务器。因此,如果我有N个授权服务器支持的N个受保护资源,我将拥有N个访问令牌来管理给定的请求/会话。假设这是真的,软件框架提供了什么规定来处理这个问题(任何语言的任何例子都可以)?只是一个不被抽象的问题似乎太普遍了。

我能找到的最近的相关问题可能是this one。接受的答案似乎是完全合理的:如果没有明确同意,一个应用程序不应该伪装成另一个应用程序。我正在寻找的是(我认为)略有不同:一些标准的方法/框架/方法来管理每个会话的多个同时访问令牌。我也想知道一个独立的授权服务器可以根据需要代理其他服务器并管理令牌簿记(仍然需要用户同意每个),但我认为这是相同的。

提前致谢。

0 个答案:

没有答案