权限系统 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的扩展
- 苹果|华为Mate50系列官宣硬刚苹果;OPPO官宣跨端系统潘塔纳尔
- 软件|机房动环集中监控系统方案,全天候监测机房运维
- 三星Galaxy|国产操作系统发展近况如何
- ...|新品 | CASAIM-IM自动化智能检测系统,让检测更智能
- 本文转自:鲁中晨报淄博8月23日讯 加快提升工业设计创新能力为主题|省级工业设计中心名单公布 齐鲁智能微系统创新产业基地3企业入选
- |iPhone,三星和OPPO都要发布新系统了,已经准备好第一时间尝鲜了
- 说到华为鸿蒙系统|华为的鸿蒙系统和华为云电脑
- 本文转自:中工网上海市经信系统工会举办AI+创新工作室主题活动 原标题:数聚工作室.|上海市经信系统工会举办AI+创新工作室主题活动
- 全省首家AI极速审批和智能提醒督办系统正式运行
- 网格化空气质量监测系统助力大气污染防治精细化管理