博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django__RBAC
阅读量:7201 次
发布时间:2019-06-29

本文共 1586 字,大约阅读时间需要 5 分钟。

RBAC : 基于角色的权限访问控制(Role-Based Access Control)

RBAC 模型作为目前最为广泛接受的权限模型

角色访问控制(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个操作,即Operation+Resource)。 Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给User或 Group。Privilege是权限颗粒,由Operation和Resource组成,表示对Resource的一个Operation。例如,对于新闻的删除操作。Role-Privilege是many-to-many的关系,这就是权限的核心。

基于角色的访问控制方法(RBAC)的显著的两大特征是:

1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

RBAC的基本概念:

RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。


权限梳理 :         1 . 创建RBAC app    2 . 创建表结构, 基于角色控制权限               三个类(用户类,角色类,权限类)              用户和角色多对多            角色和权限多对多            SO  三个类五张表                        通过角色来访问权限                3 . 基于Django admin来录入权限相关数据            python3 manage.py createsuperuser 然后按照提示创建用户            创建完成后,启动程序. 输入路径admin/  登录管理            然后plz input your data                4 .  准备工作完成后,接下来写用户登录程序 可以吗  ?            - 获取当前登录用户具有的所有权限,记得要去重            - 获取权限中的url,放到session中                rbac.service.init_permission                    def init_permission(user,request):                        pass                            5 . 中间件            - 白名单            - 获取请求url            - session保存的权限信息            - 循环url,  用re模块去筛选   re.math(db_url,current_url)RBAC中的代码    - models.py    - admin.py    - service.init_permission.py    - middlewares.rbac.py        配置文件中 :             VALID_URL = [                '/login/',                '/admin.*'                ]

转载于:https://www.cnblogs.com/ugfly/p/7800544.html

你可能感兴趣的文章
Spark Streaming应用启动过程分析
查看>>
flask入门与发送邮件与QQ邮箱
查看>>
link和@import的区别
查看>>
python基础 实战作业 ---Excel基本读写与数据处理
查看>>
基于React的PC网站前端架构分析
查看>>
比特币以及区块链原理学习
查看>>
JAVA FORK JOIN EXAMPLE--转
查看>>
根据类信息和提供的代理类名称,生成字节码,然后通过流的方式写到磁盘文件中(动态代理)...
查看>>
http.sys的简单应用
查看>>
ECLIPSE经常出现——未响应!!!
查看>>
面试过程中,可以通过提问环节的发挥,提升面试的成功率
查看>>
小程序开发基本认识
查看>>
一篇迟到的gulp文章,代码合并压缩,less编译
查看>>
命令行调用dubbo远程服务
查看>>
007-docker安装centos
查看>>
【微信】微信小程序 应用内的页面跳转在添加了tab以后就跳转不成功的问题解决...
查看>>
所有在Linux系统下 arp -d $ip 命令只能清除一个IP地址的对应MAC地址缓存,可以使用组合命令操作。...
查看>>
记一次傻逼的录入
查看>>
win10 mstsc 远程 windows2008R2
查看>>
Git 头像修改 原
查看>>