Apache Shiro 安全框架入门系列—2-详解核心术语

请务必花几分钟时间阅读并理解这一点 - 这非常重要。

真的。 这里的术语和概念在文档中随处可见,它将大大简化您对Shiro和一般安全性的理解。

由于术语的使用,安全性可能非常困惑人。 通过阐明一些核心概念,我们将使生活更轻松,并且您会看到Shiro API是多么好的体现它们的

•身份验证(-Authentication,认证)

认证是验证主体身份的过程 - 从本质上证明某人确实是他们所说的人。 当认证尝试成功时,应用程序可以相信该主体保证是应用程序所期望的。

•密码(Cipher

密码是用于执行加密或解密的算法。 该算法通常依赖于称为密钥的信息。 并且加密因密钥而异,所以如果没有它,解密是非常困难的。

密码有不同的变化。 分组密码对通常具有固定大小的符号块进行处理,而流密码对连续的符号流进行处理。 对称密码使用相同的密钥进行加密和解密,而非对称密码使用不同的密钥。 如果不对称密码中的密钥不能从其他密钥中派生出来,则可以公开共享创建的公钥/私钥对。

•凭证(Credential

凭证是验证用户/主体身份的一条信息。 在验证尝试期间,一个(或多个)凭证与委托人一起提交,以验证提交它们的用户/主题实际上是关联用户。 凭证通常是非常秘密的事物,只有特定的用户/主体会知道,例如密码或PGP密钥或生物特征属性或类似的机制。

这理念是,对于委托人而言,只有一个人会知道与该委托人"配对"的正确凭证。 如果当前用户/主题提供与存储在系统中的正确凭证匹配的正确凭证,则系统可以假设并相信当前用户/主题真的是他们所说的那个人。 随着更安全的凭证类型(例如生物特征签名>密码),信任程度会增加。

•密码学(Cryptography

密码学是通过隐藏信息或将其转化为无意义的方式来保护信息免受不当访问的做法,因此没有其他人可以阅读。 Shiro专注于加密技术的两个核心元素:使用公钥或私钥对电子邮件等数据进行加密的密码,以及对密码等数据进行不可逆加密的哈希散列(又名消息摘要)。

•哈希(Hash

散列函数是输入源(有时称为消息)的单向,不可逆转换,它被编码为散列值,有时也称为消息摘要。 它通常用于密码、数字指纹或带有底层字节数组的数据。

•权限(Permission

权限的一些示例:

- 打开一个文件

- 查看'/ user / list'网页

- 打印文件

- 删除'jsmith'用户等等

•主题(Principal

主题是应用程序用户(主体)的任何标识属性。 "标识属性"可以是对您的应用程序有意义的任何内容 - 用户名,姓,特定名称,社会安全号码,用户ID等等。就是这样 - 没有什么疯狂的。

Shiro还引用了我们称之为主体的首要的东西。 首要的主题是在整个应用程序中唯一标识主体的任何主题。 理想的主题原则是像用户名或用户标识这样的东西,它是一个RDBMS用户表主键。 在应用程序中,用户(主体)只有一个主要的主题。

•领域(Realm

Realm是一个可以访问特定应用程序的安全数据(例如用户、角色和权限)的组件。 它可以被认为是特定安全性的DAO(数据访问对象)。 Realm将这些特定于应用程序的数据转换为Shiro可以理解的格式,因此无论存在多少数据源或数据如何针对特定应用程序,Shiro都可以提供单一易于理解的Subject编程API。

•角色(Role

这是比许多应用程序使用的隐式定义更具体的定义。 如果你选择让你的数据模型反映Shiro的假设,你会发现你将在控制安全策略方面拥有更多的权力。

•会话(Session

会话是一个有状态的数据上下文,随单个用户/主体在一段时间内与软件系统进行交互。 在主体使用应用程序时,可以从Session中添加/读取/删除数据,并且应用程序可以稍后在必要时使用此数据。 会话在用户/主体退出应用程序或由于不活动而超时时终止。

对于那些熟悉HttpSession的人来说,一个Shiro会话可以达到同样的目的,但Shiro会话可以在任何环境中使用,即使没有可用的Servlet容器或EJB容器。

主体(Subject

主体只是一个奇特的安全术语,基本上意味着应用程序用户的特定于安全性的"视图"。 然而,主体并不总是需要反映人类 - 它可以表示调用应用程序的外部进程,也可以表示在一段时间内间歇性执行某些事情的守护进程系统帐户(例如cron作业)。 它基本上是对应用程序做任何事情的任何实体的表示。——或者理解为程序的交互对象,包括而不限于用户。

希望:提供文档帮助

虽然我们希望这份文档可以帮助您完成您使用Apache Shiro所做的工作,但社区始终在不断改进和扩展文档。 如果您想帮助Shiro项目,请考虑在需要的地方更正,扩展或添加文档。 你提供的每一点帮助都会扩大社区,并改善Shiro。

提供文档的最简单方法是将其发送到用户论坛或用户邮件列表。

Apache Shiro 安全框架入门系列—2-详解核心术语



分享到:


相關文章: