0

我使用 Service Remoting 来调用 Service Fabric 中的参与者。这些对参与者的调用来自 Service Fabric 集群中的无状态服务,也来自 Service Fabric 集群中的其他参与者。我想确保这些服务远程调用在网络上的传输是加密的,这样消息就不会在网络上被截获和读取。传输安全性不应与调用的身份验证和授权(使用哪些客户端证书?)相混淆。

我对使用哪些证书或证书以及如何配置它们感到困惑。此处的 Microsoft 文档似乎建议将两个单独的证书用于客户端和侦听器,您可以在其中配置本地证书以查找并为客户端或侦听器配置证书远程指纹或证书远程公用名,其中客户端将侦听器指定为远程,侦听器将客户端指定为远程。

当客户端和侦听器都是同一个 SF 集群中的服务时,为什么需要使用两个单独的证书,尤其是当参与者调用其他参与者以使参与者既是客户端又是侦听器时?我们可以为客户端和侦听器使用一个证书吗?

我们必须指定远程指纹或远程通用名称还是可选的?

我们应该使用哪个证书:用于传输安全的专用证书,或者我们在 Service Fabric 中用于加密机密的相同证书,或者可能是用于身份验证的客户端、服务器或群集证书?

2021-10-18 更新我发现可以配置一个 ClusterProtectionLevel 设置如下

               "fabricSettings": [
                {
                    "parameters": [
                        {
                            "name": "ClusterProtectionLevel",
                            "value": "EncryptAndSign"
                        }
                    ],
                    "name": "Security"
                }
            ],

但是,当您不指定此设置时,不清楚默认值是什么,也不清楚此设置是否也适用于服务远程处理调用。任何人都可以澄清这一点吗?

此外,我们将服务作为本地用户帐户运行,这些本地用户帐户(由 Service Fabric 创建和管理)需要服务器证书的权限才能进行服务远程处理调用。我知道在应用程序清单中指定机密证书时,您可以通过 SecurityAccessPolicy 声明需要机密证书权限的本地用户,Service Fabric 将自动在证书存储中的机密证书上为本地用户帐户设置权限节点。但目前尚不清楚如何为需要进行服务远程调用的本地用户帐户的服务器证书权限自动完成相同的操作。应用程序清单还允许声明端点证书,但不清楚这是否仅适用于 http 端点,或者服务远程处理端点。任何人都可以澄清这一点吗?

4

0 回答 0