第 3 章 新功能和增强功能

3.1. 安保

Elytron审计记录性能和可靠性调整

在JBoss EAP 7.2中,Elytron文件审计日志的synchronized 属性定义了是否在每次审计事件后刷新输出流和同步文件描述符。

这个版本引入了新的autoflush 属性,将流冲洗和文件同步分开,这样可以更精细地调整Elytron审计日志的性能和可靠性。

有关配置Elytron审计日志的更多信息,请参见How to Configure Server Security for JBoss EAP中的Elytron Audit Logging

JwtValidator增强版

这个版本的JwtValidator现在包括了对多密钥和远程公钥的支持。key-store 属性现在可以与certificate 属性相结合,作为public-key 的替代。client-ssl-context 属性定义了用于远程JSON网络密钥(JWK)的SSL上下文。这使您能够使用来自jku (JSON密钥URL)头参数的URL来获取用于令牌验证的公钥。

更多信息,请参见How to Configure Server Security 中的JBoss EAP的token-realm jwt Attributes表。

默认的SSLContext

该版本现在在启动时注册了一个默认的SSLContext,可供任何支持使用默认上下文的库使用。

欲了解更多信息,请参见How to Configure Server Security 中关于JBoss EAP的默认SSLContext

使用Elytron的容器的Java认证SPI(JASPI)安全性

该版本中的elytron 子系统现在提供了来自 Java Authentication SPI for Containers (JASPI) 的Servlet profile 的实现。这允许与Elytron提供的安全功能更紧密地集成。

有关更多信息,请参见Development Guide for JBoss EAP中的Configure Java Authentication SPI for Containers (JASPI) Security Using Elytron

服务器 SSL 服务器名称指示(SNI)上下文

该版本中的server-ssl-sni-context 用于提供服务器端SNI匹配。它提供了匹配规则,将主机名与SSL上下文关联起来,同时提供了一个默认值,以防所提供的主机名都不匹配。

欲了解更多信息,请参见使用 How to Configure Server Security 中的 server-ssl-sni-contextfor JBoss EAP。

自动检测钥匙店类型

现在会自动检测到以下钥匙店类型。

  • JKS
  • JCEKS
  • PKCS12
  • BKS
  • BCFKS
  • UBER

其他的keystore类型必须手动指定。

更多信息,请参见How to Configure Server Security 中的Elytron Subsystem Components Referencefor JBoss EAP。

Elytron中的Java EE安全API支持

elytron 子系统现在支持 JSR 375 中定义的 Java EE 安全 API。

Java EE Security API定义了用于身份验证和身份存储的可移植插件接口,以及一个新的可注入型SecurityContext 接口,它为编程安全提供了一个访问点。您可以使用这些 API 的内置实现,或定义自定义实现。有关规范的详细信息,请参见Java EE安全API规范

您可以使用管理 CLI 以最少的配置步骤在elytron 子系统中启用 Java EE 安全 API。

有关启用 Java EE Security API 的信息,请参见《开发指南》中关于 Java EE Security API 的内容

Elytron中的无声BASIC认证。

现在您可以配置elytron 子系统来执行沉默的BASIC 认证。

启用静默认证后,如果用户的请求不包含授权头,则不会提示用户登录访问Web应用程序。

有关启用沉默的BASIC 身份验证的信息,请参见How to Configure Identity Management 中的《配置 Web 应用程序使用 Elytron 或 Legacy Security 进行身份验证》。

在Elytron中,将基于属性的安全领域迁移到文件系统领域的实用程序。

现在,您可以使用elytron-tool.sh 工具的filesystem-realm 命令将传统的基于属性的安全领域迁移到 Elytron 的基于文件系统的领域。

基于文件系统的领域是Elytron用于存储用户身份的基于文件系统的身份存储。filesystem-realm 命令将properties-realm 文件迁移到filesystem-realm ,同时还生成将该领域和安全域添加到elytron 子系统的命令。

有关filesystem-realm 命令的信息,请参见Migration Guide for JBoss EAP 中的使用 filesystem-realm 命令迁移到基于文件系统的安全领域

在JDBC领域支持十六进制编码。

Elytron现在支持JDBC领域的密码哈希算法的十六进制编码。

更多信息,请参见How to Configure Identity Management JBoss EAP指南中的密码映射器

在JDBC领域中支持模块化加密密码

模块化密码编码现在已经在JDBC领域得到支持。

模块化密码编码允许在一个字符串中编码多个信息,如密码类型、散列或摘要、盐和迭代次数。

更多信息,请参见How to Configure Identity Management JBoss EAP指南中的密码映射器

能够将多个安全领域合并到一个总领域中进行授权。

现在,您可以在带有authorization-realms 属性的aggregate-realm 中使用多个安全域进行授权。

欲了解更多信息,请参阅JBoss EAP的How to Configure Identity Management 指南中的《使用多个身份存储配置认证和授权》。

能夠使用 X.509 憑證中的主旨替代名稱延伸作為主旨。

现在,您可以配置证据解码器,以使用 X.509 证书中的主体替代名称作为与该证书相关联的主体。

有关更多信息,请参见How to Configure Server Security 指南中的配置 X.509 证书的证据解码器与主题替代名称扩展

用综合证据解码器合并多个证据解码器的能力。

Elytron现在提供了一个集合证据解码器,可以将两个或多个证据解码器组合成一个解码器。

有关更多信息,请参见How to Configure Server Security 指南中的配置聚合证据解码器

使用OCSP的证书撤销能力

Elytron现在使用RFC6960中定义的在线证书状态协议(OCSP)提供证书撤销功能,当underow被用作负载平衡器时。

欲了解更多信息,请参见JBoss EAP指南How to Configure Server Security 中的使用在线证书状态协议进行证书撤销

Syslog审计日志增强

Elytron syslog审计日志现在支持RFC5424RFC3164中定义的日志格式来描述审计事件。

一个新的属性,reconnect-attempts ,现在可以配置Elytron在使用UDP关闭连接之前向syslog服务器发送连续消息的最大次数。

有关增强功能的更多信息,请参见JBoss EAP的How to Configure Server Security 指南中的Syslog Audit Logging

Elytron支持屏蔽密码

Elytron最初的实现不支持屏蔽密码。

在JBoss EAP 7.3中,为了向后兼容PicketBox密码,支持屏蔽密码类型。

从Let's Ecrypt获取服务器证书

在JBoss EAP 7.2中,增加了管理SSL的基本CLI命令。

在JBoss EAP 7.3中,这些命令得到了增强,可以从Let's Encrypt证书机构获取服务器证书。

主变压器添加到聚合领域

Elytron包括一个聚合安全领域,它是两个或多个领域的组合:一个认证领域和一个或多个授权领域。

在JBoss EAP 7.2和更早的版本中,在加载认证身份后和加载授权身份前,不存在转换委托人的功能。

现在,一个聚合境界可以配置一个主变换器,它是在映射器配置中定义的,以执行这种变换。

易创资源文件系统-境界支持

在JBoss EAP 7.1和7.2中,filesystem-realm 的用法是技术预览。

在此版本中,现在支持将filesystem-realm 作为由文件系统支持的 Elytron 资源定义。

在此版本中默认启用AJP连接器。

在JBoss EAP 7.3中,undertow 子系统中的AJP连接器是默认启用的。AJP连接器已被确定为该子系统的潜在安全风险。

关于解决这一风险的推荐方法,请参见https://access.redhat.com/solutions/4851251

HTTP管理端点的自定义头文件

以前的JBoss EAP版本不包括在管理界面中为端点定义自定义HTTP头的功能。

在JBoss EAP 7.3中,HTTP管理接口资源定义中增加了一个新属性constant-headers 。管理员可以使用这个属性来指定额外的HTTP头,让JBoss EAP在响应针对HTTP管理接口的请求时返回。