【问题标题】:How to secure Infinispan cluster如何保护 Infinispan 集群
【发布时间】:2018-09-27 08:39:42
【问题描述】:

我正在尝试使用 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"/>

【问题讨论】:

    标签: authentication cluster-computing infinispan jgroups


    【解决方案1】:

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

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

    1. ASYM_ENCRYPT 应该在 NAKACK 之前配置,AUTH 应该在 GMS 之前。
    2. 请注意,此处显示的其他协议将根据 JGroups 版本略有不同。

    这意味着我的 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) 在

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-16
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 2016-06-08
        • 2013-04-02
        • 2020-03-17
        • 2019-03-28
        相关资源
        最近更新 更多