7.16. 安全应用程序更改
从 JBoss EAP 7 开始,将 JBoss Web 替换为 Undertow 需要更改安全配置。从 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.1。如需更多信息,请参阅
- 如果需要,配置 Keycloak SAML 而不是 PicketLink IdP。要使用 Keycloak SAML 保护 SP 应用程序,您需要创建一个 SAML 客户端。有关创建 Keycloak SAML 客户端的更多信息,请参阅 服务器管理指南中的创建 OpenID Connect 客户端。
更新应用程序以使用 Keycloak SAML 适配器。有关更新应用程序的更多信息,请参阅使用 SAML 保护 Web 应用程序。
- PicketLink IDP
- 从 JBoss EAP 8.1 开始,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 Services Applications 中的 安全令牌服务(STS)。
7.16.3. Vault 删除 复制链接链接已复制到粘贴板!
vaults 已从 JBoss EAP 8.1 中删除。如果您的应用程序使用旧的 vault 表达式,则必须迁移并使用 Elytron 加密表达式。
检查部署文件中的 ${VAULT:: 实例(可以是注解或部署描述符),并将其替换为对应的加密表达式。
7.16.4. OIDC 客户端迁移 复制链接链接已复制到粘贴板!
JBoss EAP 8.1 不支持 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中不需要NegotiationAuthenticatorvalve,但仍必须在web.xml中定义的 <security-constraint> 和 <login-config> 元素。它们用于决定哪些资源受到保护。 -
<
login-config> 元素中的auth-method元素现在是一个用逗号分开的列表。确切的值SPNEGO必须存在,并且应首先显示在那个列表中。如果需要将FORM身份验证用作回退,则确切的值将是SPNEGO,FORM。 -
不需要
jboss-deployment-structure.xml文件。