我是OPC-UA世界和Eclipse Milo的新手。 我不明白安全如何在这里工作, 讨论eclipse-milo提供的客户端示例
我看到很少使用安全性来连接OPCUA服务器:
SECURITYPOLICY, MessageSecurityMode, clientCertificate, clientKeyPair, setIdentityProvider,
我试图运行客户端示例 - > BrowseNodeExample。
此示例在内部运行ExampleServer。
ExampleServer配置为使用Anonymous和UsernamePassword Provider运行。它还必须接受SecurityPolicy.None
,Basic128Rsa15
,Basic256
,Basic256Sha256
MessageSecurityMode
作为SignandEncrypt
,SecurityPolicy.None
除MessageSecurityMode
{1}}也是None
。
SecurtiyPolicy
和MessageSecurityMode
对连接到服务器(没有提供客户端证书)。
但我无法对UsernameProvider
执行相同的操作,仅UsernameProvider
仅SecurityPolicy
MessageSecurityMode
与None
对成功运行。
所有其他对抛出安全检查失败异常(提供证书时)否则拒绝用户访问(未提供客户端证书时)。如何使这项工作?最后,如果有人能指出Eclipse Milo的正确用户文档,那将是非常好的。由于除了示例代码之外我看不到任何文档,因此没有记录。
答案 0 :(得分:4)
SecurityPolicy
和MessageSecurityMode
齐头并进。安全策略规定了将用于签名和加密的算法集(如果有)。消息安全模式确定消息是否将被签名,签名和加密,或者在没有使用安全性的情况下都不会。
clientCertificate
和clientKeyPair
。毕竟,如果您没有证书和私钥,则无法使用加密或签名。
IdentityProvider
用于提供标识会话用户的凭据(如果有)。
当ExampleServer
启动时,它使用临时安全目录记录它,如下所示:security temp dir: /var/folders/z5/n2r_tpbn5wd_2kf6jh5kn9_40000gn/T/security
。当客户端使用任何类型的安全性进行连接时,服务器最初不会信任其证书,从而导致您发现Bad_SecurityChecksFailed
个错误。在此目录中,您将找到一个文件夹rejected
,其中存储了被拒绝的客户端证书。如果您将证书移动到trusted
文件夹,则客户端应该能够使用安全性进行连接。