Dav*_*vid 1 claims-based-identity openid-connect identityserver3 oauth2
我想问一个问题,以确认我对如何使用范围和声明(角色)的理解.假设我有一个用户(具有只读权限的用户A,即适合的只读角色),Windows服务(具有只读访问权限的客户端A),MVC站点(具有完全访问权限的客户端B)和Web API.我希望具有完全访问权限和只读访问权限的用户和客户端访问Web API.
当客户端A连接到Web API时,它会传递一个包含Scope"sampleApi.read_only"的访问令牌,我可以使用[ScopeAuthorize("sampleApi.full)]或ScopeAuthorize("sampleApi.full,sampleApi.read_only")]用于微调可访问性的类和方法.没问题.
但是,当用户A登录时,他/她"继承"客户端B的范围.因此,访问令牌包含"sampleApi.full","sampleApi.read_only"和角色"read_only".
现在我在WebApi遇到了一个问题,我需要在被用户调用时采取不同的行动.在这种情况下,我忽略了范围并使用他/她的角色,用户获得"read_only"访问权限,这就是我想要的.
这是正确的,使用ScopeAuthorize属性不再有意义,我需要一个自定义混合属性来执行某些操作:
如果调用者是用户 - 然后使用角色来确定可访问性,则使用范围来确定可访问性
还是我完全被误解了?
| 归档时间: | 
 | 
| 查看次数: | 1339 次 | 
| 最近记录: |