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 Realm | SASL 身份验证机制 |
---|---|
属性 Realms 和 LDAP Realms | SCRAMJPEG, DIGEST可以, CRAM-MD5 |
令牌域 | OAUTHBEARER |
信任 Realms | EXTERNAL |
Kerberos Identities | GSSAPI, GS2-KRB5 |
SSL/TLS 标识 | PLAIN |
HTTP 身份验证机制
以下 HTTP 身份验证机制适用于 REST 端点:
Security Realm | HTTP 身份验证机制 |
---|---|
属性 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 身份验证机制。
流程
-
在 Hot Rod 连接器配置中添加
身份验证
定义。 - 指定 Hot Rod 连接器用来进行身份验证的 Data Grid 安全域。
- 指定要使用的 Hot Rod 端点的 SASL 身份验证机制。
- 根据需要配置 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>
带有 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>
4.3.2.2. 热 Rod 端点身份验证机制
Data Grid 支持带有 Hot Rod 连接器的以下 SASL 验证机制:
身份验证机制 | 描述 | 相关详情 |
---|---|---|
|
以纯文本格式使用凭据。您应该只在加密连接中使用 |
与 |
|
使用哈希算法和非ce 值。热 Rod 连接器支持 |
与 |
|
除了哈希算法和非ce 值外,还使用 salt 值。热 Rod 连接器支持 |
与 |
|
使用 Kerberos 票据并需要一个 Kerberos 域控制器。您必须在 realm 配置中添加对应的 |
与 |
|
使用 Kerberos 票据并需要一个 Kerberos 域控制器。您必须在 realm 配置中添加对应的 |
与 |
| 使用客户端证书。 |
与 |
|
使用 OAuth 令牌并需要一个 |
与EARER |
4.3.2.3. SASL 服务质量(QoP)
如果 SASL 机制支持完整性和隐私保护设置,您可以使用 qop
属性将它们添加到 Hot Rod 连接器配置中。
QoP 设置 | 描述 |
---|---|
| 仅进行身份验证。 |
| 使用完整性保护进行身份验证。 |
| 使用完整性和隐私保护进行身份验证。 |
4.3.2.4. SASL 策略
SASL 策略可让您控制哪些身份验证机制 Hot Rod 连接器可以使用。
策略 | 描述 | 默认值 |
---|---|---|
| 只使用支持会话之间转发保密的 SASL 机制。这意味着破坏一个会话不会自动提供破坏未来会话的信息。 | false |
| 仅使用需要客户端凭证的 SASL 机制。 | false |
| 不要使用易受简单纯文本攻击的 SASL 机制。 | false |
| 不要使用易受活跃、非字典、攻击的 SASL 机制。 | false |
| 不要使用易受被动字典攻击的 SASL 机制。 | false |
| 不要使用接受匿名登录的 SASL 机制。 | true |
数据网格缓存授权根据角色和权限限制对缓存的访问。如果配置缓存授权,您可以设置 < no-anonymous value=false />
; 以允许匿名登录并将访问逻辑委派给缓存授权。
使用 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>
由于上述配置,Hot Rod 连接器使用 GSSAPI
机制,因为它是唯一适用于所有策略的机制。
4.3.3. 手动配置 REST 身份验证
明确配置 REST 连接器身份验证,以覆盖 Data Grid 服务器用于安全域的默认 HTTP 身份验证机制。
流程
-
在 REST 连接器配置中添加
身份验证
定义。 - 指定 REST 连接器用来进行身份验证的 Data Grid 安全域。
- 指定要使用的 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>
带有 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>
4.3.3.2. REST 端点身份验证机制
Data Grid 通过 REST 连接器支持以下验证机制:
身份验证机制 | 描述 | 相关详情 |
---|---|---|
|
以纯文本格式使用凭据。您应该只使用带有加密连接的 |
对应于 |
|
使用哈希算法和非ce 值。REST 连接器支持 |
对应于 |
|
使用 Kerberos 票据并需要一个 Kerberos 域控制器。您必须在 realm 配置中添加对应的 |
对应于 |
|
使用 OAuth 令牌并需要一个 |
对应于 |
| 使用客户端证书。 |
与 |