Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oauth 2.0 OAuth 2-如何定义动态资源授权?_Oauth 2.0_Resources_Authorization - Fatal编程技术网

Oauth 2.0 OAuth 2-如何定义动态资源授权?

Oauth 2.0 OAuth 2-如何定义动态资源授权?,oauth-2.0,resources,authorization,Oauth 2.0,Resources,Authorization,作为一个资源服务器,我想让用户对他们的资源有更多的控制权 例如,考虑到我有一个支持OAuth.2的云文件系统。 用户可以代表其向客户提供访问文件的权限 我希望资源服务器提供对特定文件夹的访问,例如,只提供照片而不提供文档 文件夹的名称是一种动态资源,因为它随用户而异 如何处理动态资源授权?动态范围 此外,如果范围是动态的,客户机如何知道请求它 *在中找不到它:就在最近,我不得不熟悉OAuth/OIDC,现在我面临着同样的问题-以下是我目前能想到的- 您肯定有理由将安全性authN,authZ外部

作为一个资源服务器,我想让用户对他们的资源有更多的控制权

例如,考虑到我有一个支持OAuth.2的云文件系统。 用户可以代表其向客户提供访问文件的权限

我希望资源服务器提供对特定文件夹的访问,例如,只提供照片而不提供文档

文件夹的名称是一种动态资源,因为它随用户而异

如何处理动态资源授权?动态范围

此外,如果范围是动态的,客户机如何知道请求它


*在中找不到它:

就在最近,我不得不熟悉OAuth/OIDC,现在我面临着同样的问题-以下是我目前能想到的-

您肯定有理由将安全性authN,authZ外部化-这就是为什么您使用OAuth。您真的想让授权服务器知道您在应用程序中拥有的资源吗? 作用域——据我所知——控制对API的访问,而不是标准意义上的“资源”——尽管我读到了“资源”类型的作用域,但这些作用域再次提供了对API的访问。 如果您有想要控制访问权限的资源文件,那么最好在应用程序内部处理它——如果必须的话,还可以选择从Auth服务器请求已知客户端的列表。
不管怎样,这就是我要为自己的应用程序尝试的方法-在网上找不到任何关于此的资源确实令人惊讶。

OAuth 2.0规范中的文档rfc6749定义了一种通过使用附加参数SRFC6749 Section-8.2扩展OAuth 2的方法。 因此,如果您想用OAuth解决这个问题,可以使用这种方法或类似的方法:

为授权请求定义一个新参数,以指定resourceEX:folderID=XXXXX 在授权请求期间,客户端可以选择使用新参数指定资源 如果指定了该参数,则授权服务器将生成一个动态范围,该范围必须由资源所有者签名 如果未指定该参数,则资源所有者可以选择他想要共享的资源,授权服务器可以生成相关的动态范围。此场景意味着资源服务器在授权流中以某种方式参与 当作用域由资源所有者定义和签名时,它们被传递给客户机,如果后者已由资源所有者定义,则客户机应该能够从作用域派生资源ID 当客户端请求资源时,资源服务器还必须确保作用域包含请求的资源 请记住,如果每个用户的资源量不是很大,那么这种方法效果会更好,否则您可能会被范围淹没


另一种方法是在OAuth层后面添加额外的授权层。这个附加层跟踪客户机/可访问资源之间的关系。

这里重新提出了一个非常老的问题,但我认为这个问题仍然存在

需要记住的一个有用的细节是,客户机请求的范围和资源所有者允许的范围不必相等。事实上,RO允许的范围甚至不必是请求范围的子集

在您的情况下,RO允许的范围可以是一组资源URL,由RO在授予步骤根据请求的范围进行选择。然后,通过查看访问令牌中的值并理解它们的含义,资源服务器将能够动态地为请求的资源提供服务