如何保护Infinispan集群

时间:2018-04-17 11:39:03

标签: authentication cluster-computing infinispan jgroups

我正在尝试使用SimpleToken准备一个安全的Infinispan集群,如JGroup所述。虽然我提供了所需的配置,但即使新节点具有不同的'auth_value'值,它们也能够加入群集。

以下是我对第一个节点的配置:

<config xmlns="urn:org:jgroups"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.6.xsd">

    ....
    ....

    <AUTH auth_class="org.jgroups.auth.SimpleToken" auth_value="cluster1"/>
</config>

对于第二个节点,我使用相同的配置和不同的auth_value:

<AUTH auth_class="org.jgroups.auth.SimpleToken" auth_value="cluster2"/>

2 个答案:

答案 0 :(得分:1)

JGroup xml文件中的配置节点顺序很重要。基于一个RedHat支持团队here

  

对于非对称加密(不需要共享密钥库):   1)配置jgroups子系统:

     
      
  1. 应在NAKACK之前立即配置ASYM_ENCRYPT,AUTH应紧接在GMS之前。
  2.   
  3. 请注意,此处显示的上下文其他协议会略有不同,具体取决于JGroups版本。
  4.   

这意味着我的JGroup文件应如下所示:

<AUTH auth_class="org.jgroups.auth.SimpleToken" auth_value="cluster1"/>
<pbcast.GMS print_local_addr="false"join_timeout="15000"/>

现在,当我启动第二个具有auth_value =“cluster2”的节点时,我收到以下警告和错误:

节点1:

[WARN] AUTH: failed to validate AuthHeader token from xxxx, token: auth_value=cluster1

节点2:

引起:java.lang.SecurityException:身份验证失败     在org.jgroups.protocols.pbcast.ClientGmsImpl.isJoinResponseValid(ClientGmsImpl.java:188)     在

答案 1 :(得分:0)

请注意,最新版本的ASYM_ENCRYPT不再需要AUTH;如果您使用基于证书的密钥交换,例如SSL_KEY_EXCHANGE。详情请见[1]。

之前的答案是正确的:协议的顺序很重要。

[1] http://www.jgroups.org/manual4/index.html#Security