权限系统 RGCA 四步架构法( 三 )
EntityExplorer通过DbContext进行扫描获取需要监听的实体进行注册
APIExplorer通过IActionDeorCollectionProvider注册Action

文章图片
授权有一个拦截器AuthorizeFilter
ASP.NETCoreIdentity有一个基于Claims的认证授权机制 , 它是一个key:value的数组
Clamis属于User对象 , User对象属于HttpContext
AuthorizeFilter接收Claims和ActionDeior , 在Claims里面可以获取到Action的信息 , 所以两者有关联关系

文章图片
对于赋权这一步需要定义权限Permission和角色 , 将权限和角色输入到赋权 , 产生一个角色权限RolePermission
角色权限RolePermission是一个组合对象 , 包含角色与权限
权限和资源之间有一个包含关系 , 一个权限包含多个资源
至此完成了一条通路:给多个Action定义key之后 , 将key赋值给角色 , 角色绑定到用户 , 用户登录的时候可以获取到一个Action的列表 , 通过AuthorizeFilter来进行对比

文章图片
授权由AuthorizationContext判断是否有权限
响应分为API响应和Entity响应 , 针对不同的响应有不同的处理方式
对于API响应需要判断是否允许有权限 , 未认证返回401 , 无权限返回403
对于Entity响应需要Claims和EntityAccessList , 通过Claim和AccessList进行对比

文章图片
用户登录之后得到User身份 , 发起请求产生ActionRequest
ActionRequest属于HttpContext , 最后会输入到AuthorizeFilter

文章图片
整个过程从上到下就是这样一个价值通路 , 并且已经包含了形式对象
从资源到权限 , 角色 , 再到角色和用户的绑定 , 再到授权整个体系 , 形成了系统架构

文章图片
▌层级分解
首先从系统架构中找到实体对象:资源 , 权限 , 角色 , 用户
资源由ResourceProvider提供 , 分为ActionResourceProvider和EntityResourceProvider
用户和角色使用ASP.NETCoreIdentity的UserManager和RoleManager

文章图片
ASP.NETCoreIdentity只包含用户和角色 , 需要针对Identity做扩展 , 加上权限
UIprotron.Security.Core负责管理资源和权限
UIprotron.Security.Identity作为Identity的扩展 , 将资源和权限加入到Identity中 , 相当于一个适配层

文章图片
UIprotron.Security.ActionAccess和UIprotron.Security.EntityAccess分别负责Action和Entity的权限

文章图片
大体上分为以下几部分:
ASP.NETCoreIdentity:用户认证的库
UIprotron.Security.Identity:Core与Identity的集成组件
UIprotron.Security.Core:对资源和权限的管理
UIprotron.Security.ActionAccess:Action资源发现和权限控制
UIprotron.Security.EntityAccess:Entity资源发现和权限控制
UIprotron.Security.Store.EntityFramework:资源和权限的EFCore持久层

文章图片
洋葱架构
CoreAdapters:最核心最稳定的放最里面
ApplicationSecurity.Identity:应用层 , Identity的扩展
- 13代酷睿目前还没有65WTDP型号的主流产品|绝配12代酷睿华擎迷你准系统到手1279元(1.92L体积)
- 很多人都说鸿蒙系统比安卓系统|鸿蒙系统比安卓系统好在哪里?
- 华擎|绝配12代酷睿 华擎迷你准系统到手1279元(1.92L体积 )
- 47 岁从华为退休,操作系统老兵转战 OpenHarmony 生态 | 近匠
- 高大幕墙骨架结构选型成为当下大跨度幕墙系统面临的主要问题|幕墙精制钢型材,新时代下的幕墙新材料【西创系统】
- 苹果macntfs文件系统读写磁盘功能
- win7系统共享打印机的设置方法
- win10系统的更新文件在哪里进行删除
- 电脑使用着越来越卡顿|win10系统自动恢复还原操作方法
- 华为鸿蒙系统的出现|华为鸿蒙系统默认是纯净模式怎么关闭?
