我在这里概念性地提出一个问题,因为我试图理解基于OAuth2的系统中作用域和用户角色之间的关系.
在我实现API时,我想通过使用资源上的作用域来限制对特定资源的访问.我理解使用访问令牌来请求资源,我相信我的理解是正确的,因为您在请求访问令牌时指定了范围.
什么我不完全肯定的是如何范围的限制,将工作基础上,一个身份验证的用户是在特定的角色.让我们假设Bob是一个管理和苏是一个普通用户.我们有一些受is_admin范围保护的资源.什么阻止Sue 在她的访问令牌中请求(和接收)is_admin范围?
我想应该发生的事情如下:
是否由我的呼叫应用程序强制执行仅发送询问Bobs需要的范围?或者是否有关于范围的遗漏?
有人可以用一些简单的例子来启发我吗?
Ján*_*aša 21
在OAuth2中,有以下角色:
要了解OAuth2,有必要将其视为从资源所有者到客户端应用程序的访问权限委派协议.因此主要用例是:客户端应用程序想要访问资源服务器.为此,客户端应用程序需要由Auth提供程序颁发并由资源所有者授权的访问令牌(由Auth提供程序进行身份验证).
在您的描述中,缺少客户端应用程序.我们假设它是您API的前端应用程序.它需要具有范围admin-user-scope或的访问令牌regular-user-scope.因此,它将用户(资源所有者)重定向到Auth提供程序,请求两个范围.
Auth提供程序对用户进行身份验证,并要求他/她同意向客户端应用程序授予一些请求的作用域.Auth提供程序可能会删除一些范围 - 例如admin-user-scope非管理员.Auth提供商可以为用户提供删除某些范围的可能性.
客户端应用程序在重定向URI中接收具有范围的访问令牌(或授权).如果授予的作用域与请求的作用域不同,则Auth提供程序会发送已授予作用域的列表(scopeURL参数)以及访问令牌,以便客户端应用程序知道它可以使用访问令牌执行的操作.
然后客户端应用程序可以访问资源服务器,资源服务器确保提供的访问令牌包含所需的范围.资源服务器使用OAuth2 内省端点来验证tokoen并获取其范围列表.
| 归档时间: |
|
| 查看次数: |
11552 次 |
| 最近记录: |