2017-09-25 593 views
2

我是这个OPC-UA世界和Eclipse Milo的新手。 我不明白安全是如何在这里工作, 讨论有关Eclipse的高粱提供的客户端例子使用Eclipse Milo了解OPC-UA安全性

我看到安全的几个属性,用来连接到OPCUA服务器:

SECURITYPOLICY, MessageSecurityMode , clientCertificate, clientKeyPair, setIdentityProvider,

  1. 怎么以上配置相互关联?

我试图运行客户端的例子 - > BrowseNodeExample。 这个例子在内部运行ExampleServer。 ExampleServer配置为使用匿名和UsernamePassword提供程序运行。它还必须接受SecurityPolicy.None,Basic128Rsa15,Basic256,Basic256Sha256以及MessageSecurityMode作为SignandEncrypt,SecurityPolicy.None除外,其中MessageSecurityMode也不是。

  • 问题是与AnonymousProvider我可以与上述(无客户端证书提供)中提到的所有SecurtiyPolicy和MessageSecurityMode一对连接到服务器。 但我无法对UsernameProvider执行相同操作,对于用户名提供程序,只有带有None的SecurityPolicy MessageSecurityMode对成功运行。 所有其他配对安全检查失败异常(当提供证书时)其他用户访问被拒绝(当客户端证书未提供时)。如何使这项工作?
  • 最后,如果有人能指出我适当的Eclipse Milo用户文档,那将是非常好的。由于我看不到任何文档,除了示例代码,并且它们没有记录。

    回答

    3

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

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

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

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

    +0

    感谢@Kevin这个信息。有效 :) – aalbatross