Empress iData OPC UA Clientの詳細

サポートされているOPC UAセキュリティポリシー

クライアントSDKは現在4つの異なる標準OPC UAセキュリティポリシーをサポートしています。セキュリティポリシーと関連するアルゴリズムの完全なリストは以下から取得可能です。

1.https://apps.opcfoundation.org/profilereporting
2.OPC UA仕様のPart 7
現在サポートされている4つの標準セキュリティポリシーを以下に示します。 将来的には進化するOPC UAの要件、および基盤となるOpenSSLにより多くのセキュリティポリシーがサポートされる可能性があることに注意してください。

http://opcfoundation.org/UA/SecurityPolicy#None
http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15
http://opcfoundation.org/UA/SecurityPolicy#Basic256
http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256

ID_UaClient_SecurityPolicy(id_uaclient_config.h)から上記のセキュリティポリシーへのマッピングも以下のようにコピーされます。

1.ID_UaClient_SecurityPolicy_None -> OPC UA Policy None
2.ID_UaClient_SecurityPolicy_Basic128Rsa15 -> OPC UA Policy Basic128Rsa15
3.ID_UaClient_SecurityPolicy_Basic256 -> OPC UA Policy Basic256
4.ID_UaClient_SecurityPolicy_Basic256Sha256 -> OPC UA Policy Basic256Sha256

データエンコーディング対応プロファイル

データエンコーディングはTCP Binaryなどを対応しています。対応している暗号化プロファイルは
http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary
です。

ユーザの認証方法

現在、サポートされている2つのユーザートークンポリシーはAnonymousとUserNamePasswordです。OPC UAセキュリティの推奨に従って、ClientはセキュリティポリシーなしとUserNamePasswordの組み合わせをサポートしないため、パスワードがネットワーク経由でプレーンテキストで送信されることはありません。authentication dataはClientごとに設定されるため、同じプログラム内でインスタンス化された複数のclientが異なる認証データを使用するように設定できます。ID_UaClient_UserTokenとそのポリシーの関係は参照用として以下に生成されます。

1.ID_UaClient_UserToken_AnonymousはOPC UAのAnonymous authenticationです。
2.ID_UaClient_UserToken_UserNameはOPC UAの UserNamePassword認証です。
イベントのID_UaClient_UserToken_UserNameがクライアントの認証ポリシーを使用するように選択されている場合、ClientのID_UaClient_ConnConfig.auth.user_pass_tokenは使用するユーザ名とパスワードの両方のフィールドを設定する必要があります。

セキュリティと認証

任意の形式のセキュリティを使用するには証明書を設定する必要があります。UAClientはOpenSSLの証明書ストアを利用し、関連するすべての証明書を維持します。証明書ストアの構成の詳細についてはconfig sectionを参照してください。

以下は証明書の使用に関する重要なポイントです。
1.セキュリティにはクライアント証明書とサーバ証明書の両方が必要です。
2.サーバはクライアントの証明書を信頼するように設定する必要があります。
3.クライアント証明書とサーバ証明書が有効である必要があります。
4.クライアントは事前にサーバの証明書を持っている必要があります。
5.クライアントが使用するサーバの証明書は信頼されていなければなりません。
6.証明書はself-signed か、Certificate Authority(VeriSignなど)から入手可能です。

ServiceのCall

OPC UAサーバに対しOPC UAサービスを呼び出すすべてのAPI関数は有効な接続と有効なセッションがID_UaClient_Connectを介して既に確立されている必要があります。実装されているAPI関数はブロックされて、サービスが完了するかエラーが発生した場合にのみ関数が戻ります。

すべてのOPC UAサービスライブラリ関数は2つのOpcUa_StatusCodesを使用し潜在的なエラー状態を示します。そのため、他のサービス結果を参照する前に、ライブラリ関数の戻り値(ID_UaClient_ [xxx])と関連するID_UaClient_ [xxx] Responseの `service_status`の両方を確認する必要があります。関連するステータスコードの完全なリストはopcua_statuscodes.hにあります。

デフォルトの設定

以下にリストされている値はデフォルトの設定値です。

1.PkiConfig.trust_list_path: “PKI/certs”
2.PkiConfig.revocation_list_path: “PKI/crl”
3.PkiConfig.server_cert_path: “PKI/certs/server.der”
4.PkiConfig.client_cert_path: “PKI/certs/client.der”
5.PkiConfig.client_key_path: “PKI/private/client.pfx”
6.PkiConfig.client_key_password: “”
7.InfoConfig.client_name: “iData OPC-UA Client”
8.InfoConfig.client_uri: “urn:idata:UAClient”
9.InfoConfig.client_producturi: http://idata/UAClient
10.InfoConfig.trace_level: ID_UaClient_Trace_Warning
11.ConnConfig.timeout: 20000
12.ConnConfig.policy: ID_UaClient_SecurityPolicy_None
13.ConnConfig.mode: ID_UaClient_MessageSecurityMode_None<