第 5 章 旧版核心管理和安全子系统示例方案
理解 JBoss EAP 安全性及其组件如何协同工作的一种方法是回顾真实情况。以下小节涵盖了涉及各种 JBoss EAP 安全组件和配置选项的几种通用但现实情况。它们侧重于如何保护应用程序或一组应用程序,以及如何保护管理接口。
5.1. Red Hat JBoss Enterprise Application Platform Out the Box
此情景演示了在初始安装后未进行任何配置更改时,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 的默认安装中:
表 5.1. 用户
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 和 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 安全
域中。