4.17. 安全服务器配置更改
如果您迁移到 JBoss EAP 7 并计划在启用了 Java Security Manager 的情况下运行,则应该注意,在定义策略的方式中进行更改,并且可能需要进行额外的配置更改。另请注意,JBoss EAP 7 不支持自定义安全管理器。
有关 Java 安全管理器服务器配置更改的信息,请参阅 如何为 JBoss EAP 配置服务器安全性中的从以前的版本迁移。
4.17.1. JBoss EAP 7.0 和 JBoss EAP 7.1 之间的传统安全行为改变 复制链接链接已复制到粘贴板!
4.17.1.1. 不可访问的 LDAP Realm 的 HTTP 状态更改 复制链接链接已复制到粘贴板!
如果 JBoss EAP 7.0 中的服务器无法访问 LDAP 域,则 security
子系统会返回 HTTP 状态代码"401 Unauthorized"。
JBoss EAP 7.1 及之后的版本中的旧 security
子系统现在会返回 HTTP 状态代码 "500 Internal Error",以更准确地描述导致服务器成功处理请求的意外状况。
4.17.1.2. 启用 LDAP Security Realm 来从 DN 解析角色 复制链接链接已复制到粘贴板!
在 JBoss EAP 7.0 中,org.jboss.as.domain.management.security.parseGroupNameFromLdapDN
系统属性用于启用 LDAP 安全域从 DN 解析角色。当此属性设置为 true
时,会从 DN 解析角色。否则,会使用普通的 LDAP 搜索来搜索角色。
在 JBoss EAP 7.1 及更新的版本中,这个系统属性已弃用。反之,您可以使用以下管理 CLI 命令在核心服务路径中将新引入的 parse-group-name-from-dn
属性设置为 true
来配置这个选项:
/core-service=management/security-realm=REALM_NAME/authorization=ldap/group-search=principal-to-group:add(parse-group-name-from-dn=true)
/core-service=management/security-realm=REALM_NAME/authorization=ldap/group-search=principal-to-group:add(parse-group-name-from-dn=true)
4.17.1.3. 将 JBoss EAP SSL 证书发送到 LDAP 服务器的更改 复制链接链接已复制到粘贴板!
在 JBoss EAP 7.0 中,当管理界面配置为使用 ldapSSL
安全域时,服务器和 LDAP 之间的相互身份验证会失败,从而导致管理界面中的身份验证失败。这是因为,会进行两个不同的 LDAP 连接,每个连接各自有不同的线程,它们不共享 SSL 会话。
JBoss EAP 7.1 在 LDAP outbound-connection
中添加了一个新的 always-send-client-cert
管理属性(布尔值)。这个选项允许配置出站 LDAP 连接以支持配置为始终需要客户端证书的 LDAP 服务器。
LDAP 身份验证分为两个步骤:
- 它搜索帐户。
- 它将验证凭据。
默认情况下,always-send-client-cert
属性设为 false
,即客户端 SSL 证书仅通过第一个搜索帐户请求发送。当此属性设置为 true
时,JBoss EAP LDAP 客户端使用搜索和验证请求将客户端证书发送到 LDAP 服务器。
您可以使用以下管理 CLI 命令将此属性设置为 true
。
/core-service=management/ldap-connection=my-ldap-connection:write-attribute(name=always-send-client-cert,value=true)
/core-service=management/ldap-connection=my-ldap-connection:write-attribute(name=always-send-client-cert,value=true)
这会在服务器配置文件中生成以下 LDAP 出站连接。
4.17.2. FIPS 模式更改 复制链接链接已复制到粘贴板!
如果您以 FIPS 模式运行,请注意在 JBoss EAP 7.0 和 JBoss EAP 7.1 之间修改了默认行为。
在使用传统安全域时,JBoss EAP 7.1 和更高版本为开发提供了自动生成的自签名证书。默认情况下启用此功能(在 JBoss EAP 7.0 中不可用)。这意味着,如果您在 FIPS 模式下运行,您必须将服务器配置为禁用自动自签名证书创建。否则,您在启动服务器时可能会看到以下错误。
ERROR [org.xnio.listener] (default I/O-6) XNIO001007: A channel event listener threw an exception: java.lang.RuntimeException: WFLYDM0114: Failed to lazily initialize SSL context ... Caused by: java.lang.RuntimeException: WFLYDM0112: Failed to generate self signed certificate ... Caused by: java.security.KeyStoreException: Cannot get key bytes, not PKCS#8 encoded
ERROR [org.xnio.listener] (default I/O-6) XNIO001007: A channel event listener threw an exception: java.lang.RuntimeException: WFLYDM0114: Failed to lazily initialize SSL context
...
Caused by: java.lang.RuntimeException: WFLYDM0112: Failed to generate self signed certificate
...
Caused by: java.security.KeyStoreException: Cannot get key bytes, not PKCS#8 encoded
有关自动创建自签名证书的信息,请参阅如何为 JBoss EAP 配置服务器安全性中的自动签署应用证书创建。