第 5 章 旧版核心管理和安全子系统示例方案

理解 JBoss EAP 安全性及其组件如何协同工作的一种方法是回顾真实情况。以下小节涵盖了涉及各种 JBoss EAP 安全组件和配置选项的几种通用但现实情况。它们侧重于如何保护应用程序或一组应用程序,以及如何保护管理接口。

5.1. Red Hat JBoss Enterprise Application Platform Out the Box

此情景演示了在初始安装后未进行任何配置更改时,JBoss EAP 和示例应用是如何安全的。应用 sampleApp1.war 已部署并配置为使用基于容器的安全性。

scenario1

5.1.1. 来自 Box 的核心管理身份验证

5.1.1.1. 安全性

Core Management Authentication 默认提供两个预配置的安全域: ManagementRealmApplicationRealm。这些域使用属性文件来存储用户名、密码和角色。ManagementRealm (用于存储身份验证信息和管理 API)也为在与 JBoss EAP 实例相同的主机上使用 CLI 的用户定义和启用本地身份验证。ApplicationRealm 已预先配置为存储身份验证和授权信息,但用于管理 API 之外的其他应用。另外,AppRealm 预配置了启用本地身份验证,但并不常用。

5.1.1.2. 它如何工作

在这种情况下,以下用户已添加到 JBoss EAP 的默认安装中:

表 5.1. 用户

username密码角色Security Realm

Susan

测试123!

 

ManagementRealm

Sarah

测试123!

示例

ApplicationRealm

Frank

测试123!

 

ApplicationRealm

启动时,JBoss EAP 实例加载 ManagementRealmApplicationRealm 安全 域。

如果 Susan 尝试访问 HTTP 或 CLI 任一管理接口,则必须进行身份验证。她的用户名、密码和角色必须与 ManagementRealm 安全 域中的条目匹配。默认情况下,不需要角色即可访问管理 API。Sarah 和 Frank 无法访问管理 API,因为它们不在 ManagementRealm 安全领域。

5.1.2. 安全子系统从 Box 中移出

5.1.2.1. 安全性

security 子系统预配置了四个安全域:other jboss-web-policyjboss-ejb-policyjaspitest其他 安全域通过委派到登录模块中指定的域来执行身份验证和授权,默认情况下,该域使用 ApplicationRealm

有关默认安全域和默认安全域的更多信息,请参阅 Security RealmsSecurity Domains 部分。

5.1.2.2. 它如何工作

应用 sampleApp1.war 有两个 HTML 文件: /hello.html/secure/hello.html,并使用基本的 HTTP 身份验证来保护路径 /secure/*。它使用 其他 安全域,需要 sample 的角色。由于 其他 安全域会延迟到 ApplicationRealm 的身份验证和授权信息,因此请参考 上一节中的 Users 表中的用户。

当 Sarah 请求 /hello.html 时,她可以查看页面而不进行身份验证。当 Sarah 尝试请求 /secure/hello.html 时,系统会提示她输入其用户名和密码。成功登录后,她能够查看 /secure/hello.html。Frank 和 Susan 或任何用户都可以访问 /hello.html,但不能访问 /secure/hello.html。Frank 没有 示例 角色,Susan 不在 ApplicationRealm 安全 域中。