文档章节

贡献一份精心整理的RBAC规范接口及其解说

anycmd
 anycmd
发布于 2014/10/05 09:57
字数 1668
阅读 171
收藏 1

这是花费了我半天时间从国标GBT 25062-2010 RBAC上整理得到的IRBACService接口。不要感觉惊奇,GBT 25062-2010 RBAC是和美国的NIST RBAC标准完全一样的。如果您希望阅读GBT 25062-2010 RBAC国标文档的话可以从这里下载http://git.oschina.net/anycmd/anycmd/tree/master/Docs

国家标准文档是用z语言书写的,一下子读不懂没关系,不要灰心,把丢掉的知识拾起来就可以了。咱们都是在同样的教育体系下接收教育的,咱们的知识结构是被众多金字塔尖的人精心设计和建造的,只要你静下心来没有你阅读不懂的人类知识人类文明。

各种标准文档上书写着的是无数人的智慧与聪明才智。那是他们的价值、荣誉与生命,希望你撇开相互的偏见去获取你想要的知识。理论与生产没有矛盾。

 

为了帮助大家阅读,我斗胆预先帮助大家预热一下一些重要概念。

主体:指对客体有认识和实践能力的对象。比如人、系统、服务提供者、服务消费者。

客体:可被主体感知或想象到的任何事物。如文件、打印机、终端、数据库记录等。

对象/资源:资源是需要进行访问控制的系统资源,例如文件、打印机、终端、数据库记录等。

资源类型:基于人类发明的分类法对资源按照性质、特点、用途等作为区分的标准而做的第一次分类。

权限:对受保护的对象执行某个操作的许可。

操作:一个过程,这个过程通常有输入与输出,这个过程可能影响系统的状态也可能不影响系统的状态,是否影响系统的状态有赖于你的领域边界。首先基于资源类型定义一类资源的操作列表,通常这就够了,但也有可能会需要针对特定对象实例定义操作列表。

你也可以直接查看IRBACService.cs代码文件,它上面承载的是和下面的表格承载的同样的信息。

所有的RBAC标准接口都放进了一个类是希望把RBAC看成一个整体,不作根据自我理解而施加的分类。

接口的使用者可以根据自己的理解再对这套接口进行分类。比如接口的使用者可以把以上所有方法分类成User类、Role类、Privilege类等

为IRBACService的方法分类是一件困难的事情。因为可以基于很多观察角度进行分类,不同的观察角度对应不同的分类方式。比如可以按照RBAC标准上定义的“核心RBAC”、“层次RBAC”、“责任分离RBAC”分类,也可以按照方法的主要参与者是谁进行分类分类成User类、Role类、Privilege类、责任分离类等,还可以按照方法的功用分类成管理类、支持类、审计类。

作为一套稳定规范的编程接口anycmd选择不对RBAC方法进行分类,不分类可能是最好的分类,每一个方法都是一个元素,而元素方法是可以按照使用者的需求任意组合的。


会话

持久的UserSession与内存中的UserSession:持久UserSession是对内存中的UserSession的持久跟踪,是对实现会话级的动态责任分离特性的必要准备。

持久的UserSession是这样一个概念,一个账户在第一次登录的时候会建立一个内存中的UserSession,这个UserSession会被持久化起来。用户退出系统时

会更新持久的UserSession的IsAuthenticated为false但不会删除这条UserSession记录。用户下次登录的成功时IsAuthenticated会再次更新为true,

持久的UserSession只在用户登录和退出系统时访问,持久的UserSession的存在使得安全管理员可以持久跟踪用户会话从而有机会面向用户的UserSession建立用户会话级的动态责任分离策略和其它一些高级的操作。

一个账户可以对应多个UserSession,安全管理员可以控制哪个UserSession在什么情况下激活而哪些UserSession不能激活(比如为某个账户建立两个UserSession分别对这两个UserSession的激活角色施加影响从而使得两个UserSession具有不同的权限集,一个账户可以对应多个UserSession但通常只会激活一个UserSession,比如两个UserSession中的一个在早上8点到下午5点是可以激活的,而另一个在下午5点到第二天早上8点是可以激活的)。安全管理员可以为某个账户建立新的UserSession但不马上切换为它,安全管理员针对这个UserSession进行会话级的动态责任分离授权并测试符合预期后再禁用用户原来的UserSession切换为新的UserSession,

系统可以让UserSession被禁用的那个账户下线然后他再次登录就切换到新的UserSession了,系统也应该能做到在用户不知觉的情况下平滑的切换掉他的UserSession。

这是我目前对Rbac会话的理解


表格的格式混乱了已被删除


anycmd是一个.net平台的完全开源的,完整支持RBAC的,将会支持xacml的通用的权限框架、中间件、系统。

如果您感兴趣的话现在可以先观察Anycmd的源码,期待您为Anycmd.AC提供帮助确保她走在正确的道路上。

Anycmd的开源地址在http://git.oschina.net/anycmd/anycmd

© 著作权归作者所有

anycmd
粉丝 41
博文 10
码字总数 20998
作品 2
海淀
程序员
私信 提问
Smart Framework v2.3 发布

历时一个多月,Smart Framework v2.3 终于发布了! 在该版本中,主要对代码进行了重构,让结构更加清晰,职责更加合理。在框架中对外暴露了一些接口,框架自身提供了一个默认的实现,这样非常...

黄勇
2014/06/04
7.4K
12
有个40万年薪的“程序员”老公是什么感受?网友回复“笑喷了

导读:在大家印象中,程序员都是拿着高工资,不善言谈,沉默寡言的宅男,整天就知道码代码。虽说大部分程序员可能都是这样的,但是真正找个程序员做男朋友或者嫁给程序员,又是一种什么感受呢...

如蜗牛般努力
2017/12/29
0
0
快速医疗保健互操作性资源规范实现 - FHIR Server

FHIR Server for Azure是针对Microsoft云设计的新兴HL7快速医疗保健互操作性资源(FHIR)规范的开源实现。 FHIR规范定义了如何使临床健康数据跨系统互操作,而FHIR Server for Azure有助于促...

匿名
05/12
0
0
权限管理中间件--Anycmd

权限系统干了什么? 给出一套方法,将系统中的所有功能标识出来,组织起来,托管起来,将所有的数据组织起来标识出来托管起来,然后提供一个简单的唯一的接口,这个接口的一端是应用系统一端...

anycmd
2014/10/07
22.9K
4
Git@OSC —— Anycmd,RBAC 权限管理框架

Anycmd是一个.net平台的完全开源的,完整支持RBAC的(包括核心RBAC、通用角色层次RBAC、静态职责分离RBAC和动态责任分离 RBAC),将会支持xacml的通用的权限框架、中间件、解决方案。完整的R...

oschina
2014/12/16
90
0

没有更多内容

加载失败,请刷新页面

加载更多

解决vim打开之后乱码的问题

在Windows中的文档,传输到Linux系统中(使用rz命令),出现乱码 root@localhost ~]# rpm -qf `which iconv` glibc-common-2.17-105.el7.x86_64 [root@localhost ~]# rpm -ihv /mnt/Packages......

寰宇01
20分钟前
0
0
aldi 2017年1月记录

../../tools/CBLAS/lib/cblas_LINUX.a ../../tools/lapack-3.4.2/liblapacke.a \../../tools/lapack-3.4.2/librefblas.a -lgfortran \../../tools/lapack-3.4.2/liblapack.a \../../......

MtrS
21分钟前
0
0
Choerodon如何进行日志收集与告警

作者:董文启 应用程序日志是由软件应用程序记录的事件文件, 它一般包含错误,信息事件和警告。一个良好的日志系统有助于快速发现问题,定位问题,同时也为业务分析起到一定的作用。 传统E...

Choerodon
33分钟前
1
0
js二维码生成插件“jquery.qrcode.min.js”

<!doctype html> <html> <head> <meta charset="utf-8" /> <title>生成二维码</title> <script type='text/javascript' src='http://cdn.staticfile.org/jquery/2.1.1/jquery.min.js'></scri......

泉天下
36分钟前
0
0
Spring AOP之同一个对象方法内部自调用导致事务失效问题

对于像我这种喜欢滥用AOP的程序员,遇到坑也是习惯了,不仅仅是事务,其实只要脱离了Spring容器管理的所有对象,对于SpringAOP的注解都会失效,因为他们不是Spring容器的代理类,SpringAOP,就切入不...

xiaomin0322
42分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部