Shrio 系列-1 Apache Shiro 安全框架的几个术语

Apache Shiro 安全框架的几个术语

在开始使用Shrio框架之前,了解几个专属的术语,有助于学习和理解框架的设计,对于我们使用框架也非常的重要。本文提及的几个概念在Shiro的文档会经常出现,只有理解了他们才能更好理解Shiro的架构和一般的安全框架的设计。提起安全,一般讲起来都显得过于复杂。开发出Shrio就是想让开发人员不要太苦逼,所以让我们一起明晰一些核心概念,看看Shiro是如何破解这些复杂的难题的。
一、Authentication
Authentication——认证,就是一个主体认证的过程。简单来说就,如果需要认证的主体是一个人,那么是需要主体来证明他就是他所说的那个人。如果申请认证通过,应用就可以认为这是一个授信的主体。
二、Authorization
Authorization——授权,一般理解为功能权限的控制,也就是这个主体能或不能使用某个功能,是不是具备这样的权限使用这个功能。Shrio里,授权一般通过区分用户的roles角色或是permissions许可来实现,判断为允许的,那么就可以访问请求的资源,反之则不能。
三、Cipher[ˈsaɪfɚ]
我们所说的Cipher就是操作加密或者解密的一个运算。它通常提取一小部分信息作为加密解密的关键信息,也就是我们成为的Key,因为无论加密还是解密都需以此Key为基础,不然就难以实现。Cipher运算有多种实现方法。分组密码也称块密码是将信息分组分块后进行密码运算,而另外一种称之为流密码也称序列密码则是针对一个连续的信息进行操作。对称加密算法加密解密用同样的密钥,而非对称加密则使用不同的密钥。在非对称加密中,密钥只能使用一个公开共享的公钥创建出成对的公/私密钥,而不能从一个私钥创建出另外一个来使用。
四、Credential 凭据
我们所说的凭据就是用来验证用户(主体)的一段信息内容。凭据发生在用户(主体)尝试验证认证的过程中,通常使用诸如密码或PGP密钥或者生物识别信息等类似机制获得特定信息,这些特定信息只有特定的人可以获取到或具备。对于一个用户(主体)来讲,用于证明他身份的信息凭据只有他自己才有。所以,如果当前用户(主体)提供的凭据与系统储存的一致,那么系统也可以根据凭据认定,当前的用户就是真实合法的用户。通过更安全的凭据方式也可以提升身份的授信程度(比方说生物信息凭据如指纹>密码)。
五、Cryptography
接下来我们讨论一下加密学,实际上它是一系列的操作方法。它通过将信息进行处理把信息变成“无意义”或是无法直接读取的,这样有些我们不想让他们看到信息的人就无法访问到信息的内容了。Shiro框架将重点放在两个加密学的核心元素上:用公钥或私钥处理数据的加密,如邮箱地址等,还有就是散列(认证和密钥的协商协议信息)不可以逆加密信息如密码等。
六、Hash
哈希,哈希就是一种对数据数据进行单向的不可逆的运算,有时称为message,也可以称作Hash编码值,或是消息的digest,它通常用于处理密码,数码指纹信息或是其他的基础形式的Byte数据。
七、Permission 许可 权限
许可,权限的概念,在shiro中我们是这样描述它的,它用于描述应用中具体功能的可用性,仅此而已。许可是最低层级的权限策略了。用它的定义来告诉应用那些功能能用。在许可的定义里我们不描述谁可以操作,仅关注能否操作。所以归结起来说,许可只是一个行为的描述,可以或者步行,仅此而已。
我们些例子来说明一下许可:
打开一个文件
比如像查看/usr/list这个web页面
打印一些文档
删除jsmith这个用户
八、Principal
Principal标识,就是用户(主体)用于区分于其他用户的关键属性。对于关键属性,不同的应用有不同的设定,可以是一个用户名,身份证号,用户编号等等都可以。Shrio中,我们通常叫做Subject的关键标识,也就是在整个应用中,能标记出这个Subject的唯一的标识。理想的标识可以是用户名、用户编号,这类在关系数据库中的主键。需要注意的是,在一个应用中,用户(主体)的标识只能有一个。

九、Realm
Realm 是shiro中的一个数据组件,在shiro中,使用它来访问存放用户、角色和权限的数据。按照以往的项目开发经验,你也可以理解为它是一个用于安全管理的特殊的DAO(数据访问对象)。Realm仅负责将应用指定的特殊设定的数据转换为可以被shiro识别并转换为可供shiro的API可以使用的数据形式。这样就规避了数据源的差别和应用程序自身的数据的特殊性。Realm必须指定一个也只能指定一个数据源,数据源可以是关系数据库、LDAP、文件或是其他的类似源。当然,使用JDBC或是IO文件或是用Hibernate、JPA或是其他的数据访问的接口,都需要根据实际情况去实现Realm提供的接口。
十、Role
角色的定义根据话语情境不同定义也千差万别。不少应用中根本没有明确的角色概念,好一点儿的会考虑一些安全策略。Shiro设计的非常明确,很简单,角色就是权限的集合。如果你愿意接纳 Shiro 框架对于安全策略的定义一定就会很快感受到它的威力。
十一、Session
Session 就是一个状态数据,它存放着一个用户(主体)在一个时间段内与应用交互的状态信息。应用可以根据需要对 Session 数据进行新增、读取、删除。如果用户(主体)在应用中主动操作了注销或者停止操作超出了一定的时间,那么 Session 也将结束。对于 Shiro 来讲,它的 Session 定义要更为宽泛,它不仅以为着 Http 环境下的 Session 也可以被用于没有 Servlet 容器和 EJB 容器的应用环境中。
十二、Subject
在安全领域有很多术语,Subject主体就是其中一个,简单来说对于一个软件应用来讲它代表的就是用户。
某种程度上讲,一个主体往往并不总是代表一个人,它泛指所有外界需要与应用进行交互的事物,有时候是用户也就是一个人,有时候可能是另外领域的一个系统的调用,比方说 cron 定时任务。主体这个概念代表了所有与应用程序交互的实例。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容