4.3. 配置端点身份验证机制


使用 SASL 或 HTTP 身份验证机制配置 Hot Rod 和 REST 连接器,以与客户端进行身份验证。

Data Grid 服务器需要用户身份验证才能访问命令行界面(CLI)和控制台以及 Hot Rod 和 REST 端点。Data Grid 服务器还根据您定义的安全域自动配置身份验证机制。

4.3.1. Data Grid 服务器身份验证

Data Grid 服务器根据您分配给端点的安全域自动配置身份验证机制。

SASL 身份验证机制

以下 SASL 身份验证机制适用于 Hot Rod 端点:

Security RealmSASL 身份验证机制

属性 Realms 和 LDAP Realms

SCRAMJPEG, DIGEST可以, CRAM-MD5

令牌域

OAUTHBEARER

信任 Realms

EXTERNAL

Kerberos Identities

GSSAPI, GS2-KRB5

SSL/TLS 标识

PLAIN

HTTP 身份验证机制

以下 HTTP 身份验证机制适用于 REST 端点:

Security RealmHTTP 身份验证机制

属性 Realms 和 LDAP Realms

摘要

令牌域

BEARER_TOKEN

信任 Realms

CLIENT_CERT

Kerberos Identities

SPNEGO

SSL/TLS 标识

BASIC

默认配置

Data Grid 服务器提供了一个名为 "default" 的安全域,它使用一个属性 realm,在 $RHDG_HOME/server/ conf/users.properties 中定义的纯文本凭证,如以下代码片段所示:

<security-realm name="default">
  <properties-realm groups-attribute="Roles">
    <user-properties path="users.properties"
                     relative-to="infinispan.server.config.path"
                     plain-text="true"/>
    <group-properties path="groups.properties"
                      relative-to="infinispan.server.config.path" />
  </properties-realm>
</security-realm>

端点配置将"默认"安全域分配给 Hot Rod 和 REST 连接器,如下所示:

<endpoints socket-binding="default" security-realm="default">
  <hotrod-connector name="hotrod"/>
  <rest-connector name="rest"/>
</endpoints>

由于上述配置,Data Grid 服务器需要使用属性 realm 支持的机制进行身份验证。

4.3.2. 手动配置 Hot Rod 身份验证

明确配置 Hot Rod 连接器身份验证,以覆盖 Data Grid 服务器用于安全域的默认 SASL 身份验证机制。

流程

  1. 在 Hot Rod 连接器配置中添加 身份验证 定义。
  2. 指定 Hot Rod 连接器用来进行身份验证的 Data Grid 安全域。
  3. 指定要使用的 Hot Rod 端点的 SASL 身份验证机制。
  4. 根据需要配置 SASL 身份验证属性。

4.3.2.1. 热 Rod 身份验证配置

带有 SCRAM、DIGEST 和 PLAIN 验证的热 Rod 连接器

<endpoints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="urn:infinispan:server:11.0
           https://infinispan.org/schemas/infinispan-server-11.0.xsd"
           xmlns="urn:infinispan:server:11.0"
           socket-binding="default" security-realm="default"> 1
   <hotrod-connector name="hotrod">
      <authentication>
         <sasl mechanisms="SCRAM-SHA-512 SCRAM-SHA-384 SCRAM-SHA-256 2
                           SCRAM-SHA-1 DIGEST-SHA-512 DIGEST-SHA-384
                           DIGEST-SHA-256 DIGEST-SHA DIGEST-MD5 PLAIN"
               server-name="infinispan" 3
               qop="auth"/> 4
      </authentication>
   </hotrod-connector>
</endpoints>

1
启用针对名为 "default" 的安全域进行身份验证。
2
指定用于身份验证的 SASL 机制。
3
定义 Data Grid 服务器声明给客户端的名称。服务器名称应与客户端配置匹配。
4
启用 auth QoP。

带有 Kerberos 验证的热 Rod 连接器

<endpoints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
           xmlns="urn:infinispan:server:11.0"
           socket-binding="default" security-realm="default">
   <hotrod-connector name="hotrod">
      <authentication>
         <sasl mechanisms="GSSAPI GS2-KRB5" 1
               server-name="datagrid" 2
               server-principal="hotrod/datagrid@INFINISPAN.ORG"/> 3
      </authentication>
   </hotrod-connector>
</endpoints>

1
为 Kerberos 身份验证启用 GSSAPIGS2-KRB5 机制。
2
定义 Data Grid 服务器名称,它等同于 Kerberos 服务名称。
3
指定服务器的 Kerberos 身份。

4.3.2.2. 热 Rod 端点身份验证机制

Data Grid 支持带有 Hot Rod 连接器的以下 SASL 验证机制:

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

PLAIN

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

基本 HTTP 机制类似。

DIGEST-*

使用哈希算法和非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 机制类似。

4.3.2.3. SASL 服务质量(QoP)

如果 SASL 机制支持完整性和隐私保护设置,您可以使用 qop 属性将它们添加到 Hot Rod 连接器配置中。

QoP 设置描述

auth

仅进行身份验证。

auth-int

使用完整性保护进行身份验证。

auth-conf

使用完整性和隐私保护进行身份验证。

4.3.2.4. SASL 策略

SASL 策略可让您控制哪些身份验证机制 Hot Rod 连接器可以使用。

策略描述默认值

forward-secrecy

只使用支持会话之间转发保密的 SASL 机制。这意味着破坏一个会话不会自动提供破坏未来会话的信息。

false

pass-credentials

仅使用需要客户端凭证的 SASL 机制。

false

no-plain-text

不要使用易受简单纯文本攻击的 SASL 机制。

false

no-active

不要使用易受活跃、非字典、攻击的 SASL 机制。

false

无字典

不要使用易受被动字典攻击的 SASL 机制。

false

no-anonymous

不要使用接受匿名登录的 SASL 机制。

true

提示

数据网格缓存授权根据角色和权限限制对缓存的访问。如果配置缓存授权,您可以设置 < no-anonymous value=false /&gt; 以允许匿名登录并将访问逻辑委派给缓存授权。

使用 SASL 策略配置的热 Rod 连接器

<hotrod-connector socket-binding="hotrod" cache-container="default">
   <authentication security-realm="ApplicationRealm">
      <sasl server-name="myhotrodserver"
            mechanisms="PLAIN DIGEST-MD5 GSSAPI EXTERNAL" 1
            qop="auth">
         <policy> 2
            <no-active value="true" />
            <no-anonymous value="true" />
            <no-plain-text value="true" />
         </policy>
      </sasl>
   </authentication>
</hotrod-connector>

1
为 Hot Rod 连接器指定多个 SASL 身份验证机制。
2
定义 SASL 机制的策略。

由于上述配置,Hot Rod 连接器使用 GSSAPI 机制,因为它是唯一适用于所有策略的机制。

4.3.3. 手动配置 REST 身份验证

明确配置 REST 连接器身份验证,以覆盖 Data Grid 服务器用于安全域的默认 HTTP 身份验证机制。

流程

  1. 在 REST 连接器配置中添加 身份验证 定义。
  2. 指定 REST 连接器用来进行身份验证的 Data Grid 安全域。
  3. 指定要使用的 REST 端点的身份验证机制。

4.3.3.1. REST 身份验证配置

带有 BASIC 和 DIGEST 验证的 REST 连接器

<endpoints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
           xmlns="urn:infinispan:server:11.0"
           socket-binding="default" security-realm="default"> 1
   <rest-connector name="rest">
      <authentication mechanisms="DIGEST BASIC"/> 2
   </rest-connector>
</endpoints>

1
启用针对名为 "default" 的安全域进行身份验证。
2
指定用于身份验证的 SASL 机制

带有 Kerberos 验证的 REST 连接器

<endpoints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="urn:infinispan:server:11.0 https://infinispan.org/schemas/infinispan-server-11.0.xsd"
           xmlns="urn:infinispan:server:11.0"
           socket-binding="default" security-realm="default">
   <rest-connector name="rest">
      <authentication mechanisms="SPNEGO" 1
                      server-principal="HTTP/localhost@INFINISPAN.ORG"/> 2
   </rest-connector>
</endpoints>

1
为 Kerberos 验证启用 SPENGO 机制。
2
指定服务器的 Kerberos 身份。

4.3.3.2. REST 端点身份验证机制

Data Grid 通过 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 机制类似。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.