3.3. 保护 Fuse 控制台
在 Apache Karaf 上保护 Fuse 控制台:
在部署到 AWS 时禁用 Fuse 控制台的代理 servlet
如果要将独立 Fuse 应用程序部署到 Amazon Web Services (AWS),您应该通过将
hawtio.disableProxy
系统属性设置为true
来禁用 Fuse 控制台的代理 servlet。注意当您禁用 Fuse 控制台代理 servlet 时,Fuse Console 的 Connect 选项卡被禁用,您无法从 Fuse 控制台连接到其他 JVM。如果要在 AWS 上部署多个 Fuse 应用程序,您必须为每个应用程序部署 Fuse 控制台。
将 HTTPS 设置为所需的协议
您可以使用
hawtio.http.strictTransportSecurity
属性来要求 Web 浏览器使用安全 HTTPS 协议来访问 Fuse 控制台。此属性指定尝试使用 HTTP 访问 Fuse 控制台的 Web 浏览器必须自动转换请求以使用 HTTPS。使用公钥来保护响应
您可以使用
hawtio.http.publicKeyPins
属性来保护 HTTPS 协议,方法是告诉 Web 浏览器将特定的加密密钥与 Fuse 控制台相关联,以降低"man-in-the-middle"攻击的风险。启用 SSL/TLS 安全性
Fuse 控制台不默认启用 SSL/TLS 安全性。建议您在 Fuse 控制台中启用 SSL/TLS 安全性,以保护用户名/密码凭证不受 snooping 的影响。
- 实施红帽单点登录
控制用户访问
经过身份验证的用户可以执行的操作取决于分配给该用户的角色(或角色),如 表 3.1 “在 Karaf 独立上进行基于角色的访问” 中列出的。
流程
要将 HTTPS 设置为所需的协议,请在
$KARAF_HOME/etc/system.properties
文件中设置hawtio.http.strictTransportSecurity
属性,如下例所示:hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
要使用公钥来保护响应,请在
$KARAF_HOME/etc/system.properties
文件中设置hawtio.http.publicKeyPins
属性,如下例所示:hawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
(为了仅在 AWS 上部署)要禁用 Fuse 控制台的代理 servlet,请在
$KARAF_HOME/etc/system.properties
文件中将hawtio.disableProxy
属性设置为true
,如下例所示:hawtio.disableProxy = true;
- 有关如何启用 SSL/TLS 安全性的详细信息,请参阅 Apache Karaf 安全指南 中的"启用 Undertow 的 SSL/TLS"一节。
- 有关如何使用红帽单点登录保护 Fuse 控制台的信息,请参阅 Red Hat Single Sign-on Securing Applications and Services Guide 中的有关保护 Hawtio 管理控制台的章节。
为确保用户具有必要的用户角色授权,可以执行用户需要执行的 Fuse 控制台操作,请按照以下步骤操作来设置用户角色:
-
在编辑器中打开 Red Hat Fuse
etc/users.properties
文件。 为用户名、密码和角色添加一个条目。
例如,
etc/users.properties
文件中的以下条目定义 admin 用户并授予 admin 角色。admin = secretpass,admin
- 保存该文件。
-
在编辑器中打开 Red Hat Fuse
其他资源
-
有关
hawtio.http.strictTransportSecurity
属性的语法的描述,请参阅 HTTP Strict Transport Security (HSTS) 响应标头的描述页面。 -
有关
hawtio.http.publicKeyPins
属性的语法的描述,包括如何提取 Base64 编码的公钥的说明,请参阅 HTTP Public Key Pinning 响应标头的描述页面。