您的位置:首页 > 运维架构 > Apache

Apache Shiro 是一个框架,可用于身份验证和授权

2014-02-07 16:14 260 查看
身份验证:应用程序中,身份验证是通过用户名和密码的组合完成的 ,用户名和密码的

组合通常就足以确立身份 。

授权:一旦身份验证过程成功地建立起身份,授权 就会接管以便进行访问的限制或允

许。

有这样的可能性:用户虽然通过了身份验证可以登录到一个系统,但是未经过授权, 不

准做任何事情。 还有一种可能是用户虽然具有了某种程度的授权, 却并未经过身份验证。

在为应用程序规划安全性模型时,必须处理好这两个元素以确保系统具有足够的安全

性。

用户令牌

在 Shiro 术语中, 令牌 指的是一个键, 可用它登录到一个系统。 最基本和常用的令牌

是 UsernamePasswordToken,用以指定用户的用户名和密码。

UsernamePasswordToken 类实现了 AuthenticationToken 接口,它提供了一种获得凭

证和用户的主体(帐户身份)的方式。

UsernamePasswordToken 适用于大多数应用程序,并且您还可以在需要的时候扩展

AuthenticationToken 接口来将您自己获得凭证的方式包括进来。 例如, 可以扩展这个接

口来提供您应用程序用来验证用户身份的一个关键文件的内容。

用 LDAP 进行身份验证

LDAP 是用来在 TCP/IP 上查询目录的一种协议。这些目录可保存有关用户的任意数

量的信息,包括用户 ID、联系信息以及组成员等。LDAP 目录对于公司的通讯簿很有

用并被广泛使用。

AD DS 是一种用于用户和组管理的常见目录,它支持 LDAP。 Shiro 不包含通用的

LDAP 安全域, 但它却包含了一个 ActiveDirectoryRealm 对象, 允许针对 LDAP 进行

用户的身份验证。 本例使用了在 INI 文件内配置的 ActiveDirectoryRealm 对象来验证

用户的身份。虽然 AD DS 与 LDAP 不同,但本文中使用的 Shiro 的这个版本并没有

自带通用的 LDAP 对象。

让一个 LDAP 服务器来测试本例要比编写并运行示例本身需要更多工作。如果您不能

访问一个 AD DS 服务器,那么可以考虑下载并安装 Apache Directory 来提供一个

LDAP 服务器的样例实现。 Apache Directory 是用 Java 语言编写的。 同样地, Apache

Active Directory Studio 是一个 Eclipse 插件,可用来浏览 LDAP 数据。它还具有一

些样例数据, 为您提供了一种快捷方式来针对已知值编写代码, 而又无需疑惑您遇到的

问题是代码问题还是数据问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: