第 5 章 旧版核心管理和安全子系统示例方案
理解 JBoss EAP 安全性及其组件如何协同工作的一种方法是回顾真实情况。以下小节涵盖了涉及各种 JBoss EAP 安全组件和配置选项的几种通用但现实情况。它们侧重于如何保护应用程序或一组应用程序,以及如何保护管理接口。
此情景演示了在初始安装后未进行任何配置更改时,JBoss EAP 和示例应用是如何安全的。应用 sampleApp1.war 已部署并配置为使用基于容器的安全性。
5.1.1. 来自 Box 的核心管理身份验证 复制链接链接已复制到粘贴板!
5.1.1.1. 安全性 复制链接链接已复制到粘贴板!
Core Management Authentication 默认提供两个预配置的安全域: ManagementRealm 和 ApplicationRealm。这些域使用属性文件来存储用户名、密码和角色。ManagementRealm (用于存储身份验证信息和管理 API)也为在与 JBoss EAP 实例相同的主机上使用 CLI 的用户定义和启用本地身份验证。ApplicationRealm 已预先配置为存储身份验证和授权信息,但用于管理 API 之外的其他应用。另外,AppRealm 预配置了启用本地身份验证,但并不常用。
5.1.1.2. 它如何工作 复制链接链接已复制到粘贴板!
在这种情况下,以下用户已添加到 JBoss EAP 的默认安装中:
| username | 密码 | 角色 | Security Realm |
|---|---|---|---|
| Susan | 测试123! | ManagementRealm | |
| Sarah | 测试123! | 示例 | ApplicationRealm |
| Frank | 测试123! | ApplicationRealm |
启动时,JBoss EAP 实例加载 ManagementRealm 和 ApplicationRealm 安全 域。
如果 Susan 尝试访问 HTTP 或 CLI 任一管理接口,则必须进行身份验证。她的用户名、密码和角色必须与 ManagementRealm 安全 域中的条目匹配。默认情况下,不需要角色即可访问管理 API。Sarah 和 Frank 无法访问管理 API,因为它们不在 ManagementRealm 安全领域。
5.1.2. 安全子系统从 Box 中移出 复制链接链接已复制到粘贴板!
5.1.2.1. 安全性 复制链接链接已复制到粘贴板!
security 子系统预配置了四个安全域:other 、 jboss-web-policy、jboss-ejb-policy 和 jaspitest。其他 安全域通过委派到登录模块中指定的域来执行身份验证和授权,默认情况下,该域使用 ApplicationRealm。
有关默认安全域和默认安全域的其他信息,请参阅 Security Realms and Security 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 安全 域中。