2.5. 数据网格服务器安全

数据网格服务器安全配置身份验证和加密,以防止网络攻击和保护数据。

2.5.1. 安全域

在 Data Grid 8 安全域中提供隐式配置选项,这意味着您不需要提供多个设置。例如,如果您定义了 Kerberos 域,则获得 Kerberos 功能。如果添加信任存储,您将获得证书身份验证。

在 Data Grid 7.x 中,有两个默认安全域:

  • ManagementRealm 保护管理 API。
  • ApplicationRealm 保护端点和远程客户端连接。

另一方面,Data Grid 8 提供了一个 security 元素,允许您定义可用于 Hot Rod 和 REST 端点的多个不同安全域:

<security>
  <security-realms>
    ...
  </security-realms>
</security>
支持的安全域
  • 属性域使用属性文件 users.propertiesgroups.properties 来定义可以访问 Data Grid 的用户和组。
  • LDAP 域连接到 LDAP 服务器,如 OpenLDAP、红帽目录服务器、Apache 目录服务器或 Microsoft Active Directory,以验证用户并获取成员资格信息。
  • 信任存储域使用密钥存储,其中包含允许访问 Data Grid 的所有客户端的公共证书。
  • 令牌域使用外部服务来验证令牌,并需要与 RFC-7662 (OAuth2 Token Introspection)兼容的提供程序,如 Red Hat SSO。

2.5.2. 服务器身份

服务器身份使用证书链来证明 Data Grid Server 身份提供给远程客户端。

Data Grid 8 使用与之前版本相同的配置来定义 SSL 身份,并改进一些可用性。

  • 如果安全域包含 SSL 身份,Data Grid 会自动为该安全域的端点启用加密。
  • 对于测试和开发环境,Data Grid 包含一个 generate-self-signed-certificate-host 属性,它可在启动时自动生成密钥存储。
<security-realm name="default">
  <server-identities>
    <ssl>
      <keystore path="..."
                relative-to="..."
                keystore-password="..."
                alias="..."
                key-password="..."
                generate-self-signed-certificate-host="..."/>
    </ssl>
  </server-identities>
  ...
<security-realm>

2.5.3. 端点身份验证机制

热 Rod 和 REST 端点使用 SASL 或 HTTP 机制来验证客户端连接。

Data Grid 8 对 hotrod-connectorrest-connector 配置使用 相同的身份验证 元素,如 Data Grid 7.x 及更早版本中。

<hotrod-connector name="hotrod">
  <authentication>
    <sasl mechanisms="..." server-name="..."/>
  </authentication>
</hotrod-connector>
<rest-connector name="rest">
  <authentication>
    <mechanisms="..." server-principal="..."/>
  </authentication>
</rest-connector>

与之前版本的一个关键区别在于,Data Grid 8 支持端点的额外身份验证机制。

热 Rod SASL 身份验证机制

热 Rod 客户端现在使用 SCRAM-SHA-512 作为默认的身份验证机制,而不是 DIGEST-MD5

注意

如果使用属性安全域,则必须使用 PLAIN 身份验证机制。

身份验证机制描述相关详情

PLAIN

以纯文本格式使用凭据。您应该只在加密连接中使用 PLAIN 身份验证。

基本 HTTP 机制类似。

DIGESTJPEG

使用哈希算法和非ce 值。热 Rod 连接器支持 DIGEST-MD 5、DIGEST-SHA -256、DIGEST-SHA-256DIGEST-SHA-384DIGEST-SHA-512 哈希算法,以强度顺序。

Digest HTTP 机制类似。

SCRAM-*

除了哈希算法和非ce 值外,还使用 salt 值。热 Rod 连接器支持 SCRAM-SHASCRAM-SHA-256SCRAM-SHA-384SCRAM-SHA-512 哈希算法(按强度排序)。

Digest HTTP 机制类似。

GSSAPI

使用 Kerberos 票据并需要一个 Kerberos 域控制器。您必须在 realm 配置中添加对应的 kerberos 服务器身份。在大多数情况下,您还指定一个 ldap-realm 来提供用户成员资格信息。

SPNEGO HTTP 机制类似。

GS2-KRB5

使用 Kerberos 票据并需要一个 Kerberos 域控制器。您必须在 realm 配置中添加对应的 kerberos 服务器身份。在大多数情况下,您还指定一个 ldap-realm 来提供用户成员资格信息。

SPNEGO HTTP 机制类似。

EXTERNAL

使用客户端证书。

CLIENT_CERT HTTP 机制类似。

OAUTHBEARER

使用 OAuth 令牌并需要一个 token-realm 配置。

与EARER _TOKEN HTTP 机制类似。

HTTP (REST)身份验证机制
身份验证机制描述相关详情

BASIC

以纯文本格式使用凭据。您应该只使用带有加密连接的 BASIC 身份验证。

对应于 基本 HTTP 验证方案,类似于 PLAIN SASL 机制。

摘要

使用哈希算法和非ce 值。REST 连接器支持 SHA-512SHA-256MD5 哈希算法。

对应于 Digest HTTP 验证方案,类似于 DIGESTGPU SASL 机制。

SPNEGO

使用 Kerberos 票据并需要一个 Kerberos 域控制器。您必须在 realm 配置中添加对应的 kerberos 服务器身份。在大多数情况下,您还指定一个 ldap-realm 来提供用户成员资格信息。

对应于 Negotiate HTTP 验证方案,类似于 GSSAPIGS2-KRB5 SASL 机制。

BEARER_TOKEN

使用 OAuth 令牌并需要一个 token-realm 配置。

对应于 Bearer HTTP 身份验证方案,类似于 OAUTHBEARER SASL 机制。

CLIENT_CERT

使用客户端证书。

EXTERNAL SASL 机制类似。

2.5.4. 对 EAP 应用进行身份验证

现在,您可以通过将凭证添加到 EAP 应用程序类路径上的 hotrod-client.properties 中,以便与 Data Grid 进行身份验证:

  • 远程缓存容器(remote-cache-container)
  • 远程存储(remote-store)
  • EAP 模块

2.5.5. 日志记录

Data Grid 使用 Apache Log4j2,而不是之前版本基于 JBossLogManager 的 logging 子系统。

默认情况下,Data Grid 将日志消息写入以下目录:
$RHDG_HOME/${infinispan.server.root}/log

server.log 是默认的日志文件。

访问日志

在以前的版本中,Data Grid 包含一个日志记录器,用于审计日志缓存的安全日志:

<authorization audit-logger="org.infinispan.security.impl.DefaultAuditLogger">

Data Grid 8 不再提供这个审计日志记录器。

但是,您可以将日志类别用于 Hot Rod 和 REST 端点:

  • org.infinispan.HOTROD_ACCESS_LOG
  • org.infinispan.REST_ACCESS_LOG