据我了解,在应用程序 A 获得不记名令牌后,它可以与客户端 B 共享它。但是如果客户端 A 想要共享令牌,而委托给它的权限集却减少了怎么办。
例如:我有一个托管统计信息的服务器(我们称之为 S),它有 OAuth2 API。还有报告服务器(我们称之为R)。
客户端 (C) 登录到 S 并使用统计信息进行一些操作。C 只能与他拥有的统计数据交互。C 还想查看来自 R 的报告: C -- 获取报告 --> R -- 获取统计信息 --> S -- 统计信息 --> R -- 报告 --> C
- 我不想为报表服务器授予完全访问权限(根本没有授权),因为用户可以添加自己的报表,这可能会意外损坏或查看其他用户的统计信息;
- 我不想将 A 发出的不记名令牌提供给报表服务器,因为报表可能会意外损坏 A 拥有的统计信息。A 可以读写,但 R 只需要查看数据。
我正在寻找一种以对最终用户透明的方式将减少的权限集委派给服务器 R 的方法(无需额外的用户名和密码或/和确认请求)。
这是否适合 OpenID 概念,或者我应该在 OAuth2 的顶部实现我自己的协议?也许还有其他解决方案?