4

我是这个 OPC-UA 世界和 Eclipse Milo 的新手。我不明白这里的安全性是如何工作的,讨论 eclipse-milo 提供的客户端示例

我看到一些用于连接 OPCUA 服务器的安全属性:

SecurityPolicy、MessageSecurityMode、clientCertificate、clientKeyPair、setIdentityProvider、

  1. 上述配置如何相互关联?

我试图运行客户端示例-> BrowseNodeExample。此示例在内部运行 ExampleServer。ExampleServer 配置为使用 Anonymous 和 UsernamePassword Provider 运行。它也必须接受SecurityPolicy.None, Basic128Rsa15, Basic256,Basic256Sha256以及MessageSecurityModeasSignandEncrypt除了SecurityPolicy.Nonewhere MessageSecurityModeis Nonetoo。

  1. 问题在于 AnonymousProvider 我可以使用上面提到的所有SecurtiyPolicyMessageSecurityMode配对连接到服务器(没有提供客户端证书)。但我不能做同样的事情UsernameProvider,因为UsernameProvider只有SecurityPolicy MessageSecurityMode配对None成功运行。所有其他对抛出安全检查失败异常(当提供证书时)否则用户访问被拒绝(当未提供客户端证书时)。如何使这项工作?

最后,如果有人能给我指出 Eclipse Milo 的正确用户文档,那就太好了。因为除了示例代码之外我看不到任何文档,并且它们没有记录。

4

1 回答 1

4

SecurityPolicyMessageSecurityMode携手并进。安全策略规定了将用于签名和加密的算法集(如果有的话)。消息安全模式决定了消息是否会被签名、签名和加密,或者在不使用安全性的情况下都不会。

clientCertificateclientKeyPair如果您打算使用安全性,则必须进行配置。毕竟,如果你没有证书和私钥,你就不能使用加密或签名。

IdentityProvider用于提供标识会话用户的凭据(如果有)。

启动时ExampleServer,它会记录它使用临时安全目录,如下所示:security temp dir: /var/folders/z5/n2r_tpbn5wd_2kf6jh5kn9_40000gn/T/security. 当客户端使用任何类型的安全连接时,其证书最初不受服务器信任,从而导致Bad_SecurityChecksFailed您看到的错误。在此目录中,您会找到一个rejected存储被拒绝的客户端证书的文件夹。如果您将证书移动到trusted文件夹,则客户端应该能够使用安全性进行连接。

于 2017-09-27T23:41:35.173 回答