2.7.2. 默认安全性
默认情况下,核心管理身份验证以两种不同的形式保护 HTTP 和原生管理接口:本地客户端和远程客户端,它们默认配置为 ManagementRealm 安全
域。这些默认值可以不同配置或完全替换。
开箱即用的管理接口配置为使用简单的访问控制,这不使用角色。因此,默认情况下,在使用简单访问控制时,所有用户都具有与 SuperUser 角色相同的特权,后者基本上可以访问所有内容。
2.7.2.1. 使用原生接口进行本地和远程客户端身份验证 复制链接链接已复制到粘贴板!
原生接口或管理 CLI 可以在与运行 JBoss EAP 实例相同的主机上本地调用,或者从另一台计算机远程调用。尝试使用原生接口进行连接时,JBoss EAP 为客户端提供可用 SASL 身份验证机制的列表,如 本地 jboss 用户
、BASIC 等。客户端选择其所需的身份验证机制,并尝试通过 JBoss EAP 实例进行身份验证。如果失败,它将使用任何剩余的机制重试或停止尝试连接。本地客户端可以选择使用 本地 jboss 用户身份验证
机制。这种安全机制基于客户端访问本地文件系统的能力。它验证尝试登录的用户实际上是否能够访问与 JBoss EAP 实例相同的主机上的本地文件系统。
这个验证机制会出现在四个步骤中:
-
客户端向服务器发送一条消息,其中包含使用
本地 jboss 用户
进行身份验证的请求。 - 服务器生成一次性令牌,将其写入唯一文件,然后向客户端发送一条包含文件完整路径的消息。
- 客户端从 文件读取令牌并将其发送到服务器,验证它对文件系统具有本地访问权限。
- 服务器验证令牌,然后删除 文件。
这种身份验证形式基于以下原则:如果实现对文件系统的物理访问,其他安全机制就是多余的。其原因是,如果用户具有本地文件系统访问权限,该用户有足够的访问权限来创建新用户,或者破坏其他安全机制。这有时被称为静默身份验证,因为它允许本地用户在不提供用户名或密码身份验证的情况下访问管理 CLI。
启用此功能是为了方便和协助本地用户运行管理 CLI 脚本,而无需额外的身份验证。这是一个非常有用的功能,因为本地配置的访问通常也让用户能够添加自己的用户详细信息或者以其他方式禁用安全检查。
也可以从其他服务器(甚至与远程客户端相同的服务器)访问原生接口。将原生接口作为远程客户端访问时,客户端将无法使用 本地 jboss 用户
进行身份验证,并且将强制使用其他身份验证机制,如 DIGEST。如果本地客户端无法使用 本地 jboss 用户
进行身份验证,它将自动回退并尝试将其他机制用作远程客户端。
管理 CLI 可以从其他服务器调用,甚至使用与原生接口相反的 HTTP 接口。所有 HTTP 连接(CLI 或其他)都被视为远程连接,不包含在本地接口身份验证中。
默认情况下,原生接口不会被配置,所有管理 CLI 流量都由 HTTP 接口处理。JBoss EAP 7 支持 HTTP 升级,它允许客户端通过 HTTP 进行初始连接,然后发送请求将该连接升级到另一协议。对于管理 CLI,将通过 HTTP 向 HTTP 接口发出初始请求,但随后连接会升级到原生协议。此连接仍然通过 HTTP 接口处理,但它使用原生协议进行通信,而不是 HTTP。或者,如果需要,仍可启用和使用原生接口。