【发布时间】:2018-05-24 18:59:39
【问题描述】:
我有一个身份提供者、一些客户端应用程序和一堆作为 RESTful 服务实现的 API 资源。一些客户端需要一个 API,而其他客户端可能需要多个 API。也可能存在“API 间依赖关系”,例如 客户端需要 API X,API X 需要 API Y。
在这种情况下,合适的范围粒度是多少?有没有最佳实践?
我可以想象以下解决方案:
- 每个 API 一个范围:可能会导致大令牌。此外,在上面的示例中,客户端并不知道它实际上也需要 API Y。
- 适用于所有 API 的一个范围:这会成功(用户同意的粒度不是问题)。然而,客户端最终会得到一个它实际上并不需要的超级强大的访问令牌。
- 每个 API 一个范围,但使用引用令牌:与解决方案 1 一样,但令牌仍然很小。这将导致对自省端点的大量调用。
【问题讨论】:
-
它的实现依赖于但可以想象,只要请求范围 X,AS 就会添加范围 Y; OTOH 可以通过 API X 获取自己的令牌来访问 API Y 的方式来实现后端,例如使用 client_credentials 授权
标签: architecture oauth-2.0 openid-connect