第 2 章 新功能及功能增强


2.1. 安全性

支持在凭证存储中自动更新凭证

现在,当您配置指定了 storeclear-text 属性的凭证引用时,Elytron 会自动将凭证添加到之前定义的凭证存储中。

在这个版本中,在从 credential-reference 引用它之前,不需要将凭证添加到现有凭证存储中。此自动化流程减少了您在不同子系统中引用新凭据所需的步骤。

Elytron 中新角色映射器 regex-role-mapper

Elytron 现在提供了一个新的角色映射器 regex-role-mapper,以定义基于正则表达式(regex)的安全角色映射。

您可以使用 regex-role-mapper 将角色列表转换为更简单的角色。例如:

  • *-adminadmin
  • *-useruser

使用 regex-role-mapper 时,您不需要实施自己的自定义组件来转换安全角色。如需更多信息,请参阅 regex-role-mapper 属性

访问远程客户端的 IP 地址

现在,您可以将 source-address-role-decoder 角色解码器添加到 elytron 子系统。通过配置此角色解码器,您可以在做出授权决策时从远程客户端获取更多信息。

source-address-role-decoder 提取远程客户端的 IP 地址,并检查它是否与 pattern 属性或 source-address 属性中指定的 IP 地址属性匹配。如果远程客户端的 IP 地址与任一属性中指定的 IP 地址匹配,则 roles 属性会将角色分配给用户。当您配置了 source-address-role-decoder 后,您可以在 安全域role-decoder 属性中引用它。

aggregate-role-decoder 角色解码器

aggregate-role-decoder 由两个或多个角色解码器组成。每个指定角色解码器完成其操作后,它会将角色添加到 aggregate-role-decoder 中。

您可以使用 aggregate-role-decoder 来添加为用户分配角色的角色解码器,从而做出授权决策。此外,aggregate-role-decoder 还为您提供了便捷的方式来聚合从各个角色解码器返回的角色。

使用 TLS 协议版本 1.3 和 JDK 11

Elytron 现在能够对 JDK 11 运行的 JBoss EAP 使用传输层安全(TLS)协议 1.3。

TLS 1.3 默认禁用。您可以通过在 elytron 子系统的 SSL 上下文资源定义中配置新的 cipher-suite-names 属性来启用 TLS 1.3。

与 TLS 1.2 相比,在使用 JDK 11 运行 TLS 1.3 时您可能会体验到较低的性能。当发出大量 TLS 1.3 请求时,性能可能会降低。系统升级到较新的 JDK 版本可以提高性能。在生产环境中启用前,使用 TLS 1.3 测试您的设置是否出现性能下降的问题。

使用 TLS 的 OpenSSL 供应商启用对 TLS 1.3 协议的支持

JBoss EAP 7.4 包括对传输层安全 (TLS) 协议版本 1.3 的支持。TLS 1.3 协议用于 TLS 的 OpenSSL 提供程序默认为禁用。您可以通过在 ssl-context 配置中配置 provider 属性,或者在 Elytron 子系统配置中使用 initial- providers 属性注册 OpenSSL 供应商,为 TLS 启用 OpenSSL 供应商。

您可以通过在 ssl-context 配置中配置 cipher-suite-names 属性,通过为 TLS 启用对 TLS 1.3 协议的支持。

与 TLS 1.2 相比,在使用 JDK 11 运行 TLS 1.3 时您可能会体验到较低的性能。当发出大量 TLS 1.3 请求时,性能可能会降低。系统升级到较新的 JDK 版本可以提高性能。在生产环境中启用前,使用 TLS 1.3 测试您的设置是否出现性能下降的问题。

在 JDK 配置中重新启用对 TLS 1.1 协议的支持

默认情况下,JDK 的新版本可能会禁用传输层安全(TLS)协议版本 1.1。如果您的 JBoss EAP 7.4 配置必须符合联邦信息处理标准(FIPS),您可能需要在 JDK 配置中重新启用对 TLS 1.1 协议的支持。

有关与 JBoss EAP 7.4 兼容 TLS 协议的更多信息,请参阅红帽客户门户上的 Red Hat JBoss Enterprise Application Platform(EAP)7 支持的配置页面。

使用 SSH 凭据连接远程 Git SSH 存储库

借助 JBoss EAP 7.4,您可以使用 SSH 凭据连接远程 Git SSH 存储库。此存储库可以管理您的服务器配置数据、属性文件和部署。

您必须使用 elytron 配置文件来指定 SSH 凭证。然后,您可以启动单机服务器实例,并让远程 Git SSH 存储库管理您的服务器配置文件历史记录。

如果需要,您可以使用以下方法之一生成 SSH 密钥:

  • elytron-tool.sh 脚本
  • OpenSSH 命令行

有关连接到远程 Git SSH 存储库的详情,请参考使用远程 Git SSH 存储库

新主体转换器添加到 elytron 子系统

JBoss EAP 7.4 在 elytron 子系统中包含一个新的主体转换器,即 case-principal-transformer。您可以使用 case-principal-transformer 将主体的用户名更改为大写或小写字符。

能够自动生成自签名证书

借助 JBoss EAP 7.4,您可以自动生成自签名证书。

仅在测试环境中使用自签名证书。不要在生产环境中使用自签名证书。

要使用这一新功能,可在 undertow 子系统中更新 http-listener 的配置。

    batch
    /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm)
    /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context,value=applicationSSC)
    run-batch
    reload
Copy to Clipboard Toggle word wrap

更新配置后,如果不存在密钥存储文件,则 JBoss EAP 第一次收到 HTTPS 请求时,系统会自动生成自签名证书。使用自签名证书时,JBoss EAP 会记录警告。

配置多个安全域来支持故障切换

借助 JBoss EAP 7.4,您可以配置故障转移安全域。如果安全域不可用,JBoss EAP 将使用故障转移域。以下代码演示了一个示例配置:

    <failover-realm name="myfailoverrealm" delegate-realm="LdapRealm" failover-realm="LocalRealm" />
Copy to Clipboard Toggle word wrap

跨多个安全域的分布式身份

利用 JBoss EAP 7.4,您可以配置分布式安全域,按顺序调用已配置域的列表,直到找到了具有身份的域。以下代码演示了一个示例配置:

    <distributed-realm name="mymainrealm" realms="realm1 realm2 realm3" />
Copy to Clipboard Toggle word wrap

elytron 子系统中通过 HTTP 访问外部凭据

借助 JBoss EAP 7.4,JBoss EAP 可以在使用 HTTP 身份验证时基于外部创建的凭据对用户进行身份验证。

要使用此功能,请将安全域配置为在验证用户时使用外部机制。

通过 RESTEasy 客户端使用 Elytron 客户端身份验证配置

JBoss EAP 7.4 版本将 RESTEasy 客户端与 Elytron 客户端集成。RESTEasy 客户端从 Elytron 客户端配置使用身份验证信息,如凭据、bearer 令牌和 SSL 配置。

您可以使用以下方法指定 RESTEasy 客户端可以使用的 Elytron 客户端配置:

  • 通过向 Elytron 客户端提供 wildfly-config.xml 文件。Elytron 客户端搜索 wildfly-config.xmlMETA-INF/wildfly-config.xml 的类路径。

    • 或者,您可以使用 wildfly.config.url 系统属性指定 wildfly-config.xml 文件的路径。
  • 通过使用 Elytron 客户端 API 以编程方式指定身份验证配置。

用于提供初始 secret 密钥的 secret 密钥凭证存储

现在,您可以使用名为 secret-key-credential-store 的新凭证存储为应用服务器进程提供初始 secret 密钥。使用这个凭证存储,您可以获得比基于密码的加密更强大的安全性,因为您现在可以管理自己的初始 secret。有关为 JBoss EAP 提供初始密钥的信息,请参阅向 JBoss EAP 提供初始密钥以解锁受保护的资源

另外,您现在可以为所有凭证存储生成 secret 密钥,也可以导出和导入之前生成的 secret 密钥。您还可以使用现有的凭据存储来存储 secret 密钥,以及使用管理操作来维护它们。如需更多信息,请参阅使用 JBoss EAP 管理 CLI 的凭据存储操作

用于保护安全敏感字符串的加密表达式

现在,您可以使用加密表达式在管理模型中安全地存储安全敏感的字符串。Elytron 使用高级加密标准(AES)加密加密纯文本字符串,并使用存储在凭据存储中的 SecretKey 密钥在运行时动态解密加密表达式。

您可以使用 elytron 子系统中的新资源 expression-encryption 配置加密表达式。使用 create-expression 管理操作来创建加密表达式。有关加密表达式的详情,请参考 Elytron 中的加密表达式

注意

使用凭据存储来存储密码。密码库已弃用,并将在以后的发行版本中删除。

elytron-tool 的更新

您可以将 elytron-tool 用于现有和新凭证存储。使用 credentials-store 命令管理机密密钥,并生成用于表达式中的加密令牌。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部