7.16. 安全应用程序更改
使用 Undertow 替换 JBoss Web 需要更改 JBoss EAP 7 的安全性配置。从 JBoss EAP 8.0 开始,您必须使用 Elytron 作为旧安全性,因为 PicketBox 不再可用。
7.16.1. 迁移验证器 valves 复制链接链接已复制到粘贴板!
如果您创建了在 JBoss EAP 6.4 中扩展 AuthenticatorBase
的自定义验证器 valve,则必须手动将它替换为 JBoss EAP 7 中的自定义 HTTP 身份验证实施。HTTP 身份验证机制是在 elytron
子系统中创建的,然后注册到 undertow
子系统。有关如何实现自定义 HTTP 身份验证机制的详情,请参考 JBoss EAP 7.4 开发指南中的 自定义 HTTP 机制。
7.16.2. PicketLink 删除 复制链接链接已复制到粘贴板!
PicketLink 已从 JBoss EAP 8.0 中删除。
PicketLink SP
使用 Keycloak SAML 适配器而不是 PicketLink 服务供应商。
要通过配置 Keycloak SAML 适配器从 PicketLink 迁移,请执行以下任务:
将 Keycloak SAML 客户端安装到 JBoss EAP 8.0。如需更多信息,请参阅
- 如果需要,配置 Keycloak SAML 而不是 PicketLink IdP。要使用 Keycloak SAML 保护 SP 应用程序,需要创建一个 SAML 客户端。有关创建 Keycloak SAML 客户端的更多信息,请参阅 JBoss EAP 7.5 服务器管理指南中的创建 SAML 客户端。
- 更新应用程序以使用 Keycloak SAML 适配器。有关更新应用程序的更多信息,请参阅使用 SAML 保护 Web 应用程序。
PicketLink IDP
从 JBoss EAP 8.0 开始,PicketLink IDP 不可用,您可以配置红帽构建的 Keycloak。如需更多信息,请参阅配置红帽构建的 Keycloak。
PicketLink STS
在以前的版本中,您可以将 PicketLink STS 配置为 Apache CXF 安全令牌服务实现的替代选择。PicketLink STS 配置涉及旧的安全域。需要删除对 STS 应用程序中的旧安全域和 PicketLink 的任何引用,因此您必须配置 Apache CXF STS。
有关如何配置 Apache CXF STS 的更多信息,请参阅 JBoss EAP 7.4 开发 Web 服务应用程序 中的 安全令牌服务(STS)。
7.16.3. Vault 删除 复制链接链接已复制到粘贴板!
Vault 已从 JBoss EAP 8.0 中删除。如果您的应用程序使用传统的 vault 表达式,则必须迁移和使用 Elytron 加密表达式。
检查部署文件中的 ${VAULT::
实例,它们可能位于注解或部署描述符中,并将它们替换为对应的加密表达式。
7.16.4. OIDC 客户端迁移 复制链接链接已复制到粘贴板!
JBoss EAP 8.0 不支持 Keycloak OIDC 客户端适配器,并被原生 Elytron OIDC 客户端替代,提供类似的功能和配置。
要从 Keycloak OIDC 客户端适配器迁移到原生 Elytron OIDC 客户端,请按照以下步骤执行:
-
在应用程序的
web.xml
文件中检查 <auth-method>KEYCLOAK
</auth-method>,并将它替换为部署的web.xml
文件中的<auth-method>OIDC
</auth-method>。 -
检查是否存在
WEB-INF/keycloak.json
,并将它重命名为WEB-INF/oidc.json
。
7.16.5. 自定义登录模块迁移 复制链接链接已复制到粘贴板!
在 JBoss EAP 8.0 中,旧的 security 子系统已被删除。要继续使用 elytron
子系统的自定义登录模块,请使用新的 Java 身份验证和授权服务(JAAS)安全域和 jaas-realm
。
7.16.6. 其他安全应用程序更改 复制链接链接已复制到粘贴板!
JBoss EAP 7.2 或更高版本和更早的版本之间存在一些显著区别:
-
jboss-web.xml
中不需要NegotiationAuthenticator
valve,但仍必须是web.xml
中定义的 <security-constraint>
; 和 <login-config
> 元素。它们用于决定保护哪些资源。 -
<
login-config&
gt; 元素中的auth-method
元素现在是一个用逗号分开的列表。确切的值SPNEGO
必须在此处,应首先显示在该列表中。如果需要FORM
身份验证作为回退,则确切的值为SPNEGO,FORM
。 -
jboss-deployment-structure.xml
文件不是必需的。