作为资源服务器,我想让用户更好地控制他们的资源。
例如,假设我有一个支持OAuth 2的云文件系统。
用户可以代表他提供访问客户端文件的权限。
我希望资源服务器能够提供对特定文件夹的访问权限,例如,只提供照片而非文档。
文件夹的名称是动态资源,因为它在用户之间有所不同。
如何处理动态资源授权?动态范围?
此外,如果范围是动态的,客户如何知道请求它?
*无法在the spec中找到它:(
答案 0 :(得分:3)
文档rfc6749是OAuth 2.0规范,它定义了一种通过使用其他参数扩展OAuth 2的方法(rfc6749#section-8.2)。 因此,如果您想使用OAuth解决此问题,您可以使用此方法或类似的方法:
请记住,如果每个用户的资源量不是很大,这种方法会更好(否则你可能会被范围淹没)。
另一种方法可能是在OAuth层后面添加额外的授权层。此附加层跟踪客户端/可访问资源的关系。
答案 1 :(得分:2)
就在最近,我不得不熟悉OAuth / OIDC,现在我面临着同样的问题 - 到目前为止我能想到的是什么 -
无论如何,这是我尝试为自己的应用程序进行操作的方式 - 确实不会在网上找到任何关于此的资源。
答案 2 :(得分:0)
在这里复述一个很老的问题,但我认为问题仍然存在。
要记住的一个有用的细节是,客户端请求的范围和资源所有者允许的范围不必相等。实际上,RO所允许的范围甚至不必是所请求范围的子集。
在您的情况下,RO允许的范围可以是一组资源URL,由RO在授予步骤中根据请求的范围选择。然后,通过查看访问令牌中的值并理解它们的含义,资源服务器将能够动态地服务所请求的资源。