Client SDKの詳細

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

Client 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の認証ポリシーを使用するように選択されている場合、ClientのID_UaClient_ConnConfig.auth.user_pass_tokenは使用するユーザ名とパスワードの両方のフィールドを設定する必要があります。

セキュリティと認証

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

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

ServiceのCall

OPC UA Serverに対し、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<