2017-09-25 81 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