パスワードでHMIを保護する

製品環境で実行中のプログラムを変更できるのは認証されたユーザーだけであることを確認するために、HMI全体または特定の部分をパスワードでロックすることが可能です。

HMIコントロールカタログのPasswordPanelコントロール

パスワードで保護されたパネルの作成

未承認のユーザーによってロックされたHMIの特定の領域を作成するには、Password ProtectionカテゴリからPasswordPanelコントロールをHMIに追加する必要があります。次に、PasswordPanel内にパスワードで保護するすべてのHMIコントロールを追加します(通常のパネルと同じ方法で行います)。 このようなプログラムを実行すると、PasswordPanelのコンテンツの代わりにログイン画面が表示されます(パネル内のコントロールは表示されません)。ログインすると、パネルの内容がロック解除され(表示されるようになります)。複数のパスワードで保護されたエリアを作成し、それぞれに異なるユーザーリストを持たせることができます。たとえば、管理パネルと通常の作業者のパネルを区別するためです。誰でもパスワードを提供せずに使用できるコントロールは、PasswordPanelsの外側に配置する必要があります。

PasswordPanelのログインページ

ログアウト

PasswordPanelにログインした後、次の方法でログアウトして(そのコンテンツをロックして)終了できます:

  • Password Protectionカテゴリから追加できるLogoutButtonコントロールをクリックする。
  • キーボードフォーカスがPasswordPanel内のコントロールにあるとき(およびPasswordPanelコントロールのUseEscToLockプロパティがTrueに設定されている場合)、Escキーをクリックする。
  • キーボードフォーカスがPasswordPanel内のコントロールにあるときに、Ctrl+Lキーの組み合わせをクリックする。

また、システムの入力が一定の時間(PasswordPanelコントロールのAutoLockTimeoutプロパティで定義された秒数)アイドル状態である場合(キーストロークやマウスのクリック/移動がない場合)、自動的にログアウトされます。

ユーザーとパスワードの管理

HMI PasswordPanelへのアクセス権を持つユーザーは、ユーザー名とパスワードのペアによって識別されます。ユーザー名は一意であり、大文字と小文字を区別しません。ユーザーパスワードは少なくとも4文字以上で、大文字と小文字を区別します。異なるユーザー名で識別される複数のユーザーが、単一のPasswordPanelへのアクセスを許可されることがあります。認証情報は別々の*.avuserファイルに保存されます(.avprojプロジェクトファイルや.avexe実行可能ファイルの外に保存されます)。各PasswordPanelコントロールには、ユーザーが特定のエリアにアクセスできるようにするために、このようなファイルを割り当てる必要があります。これは、PasswordPanelコントロールのCredentialsFileNameプロパティを.avuserファイルへのパスを指すように設定することで行います。 *.avuserファイルは、次の方法で作成および編集できます:

  • HMIエディタでPasswordPanelコントロールを右クリックし、「Edit Credentials...」を選択します(これにより、コントロールに割り当てられている場合は既存のファイルが開かれ、新しく保存されたファイルのパスがCredentialsFileNameプロパティに設定されます)。
  • Aurora Vision StudioのメインメニューでTools » Edit HMI User Credentials File...を選択します。
  • Aurora Vision Studio RuntimeのカタログからAuroraVisionUserCredentialsEditor.exeアプリケーションを実行します。

ユーザーパスワードはハッシュ形式で保存されるため、ユーザーの現在のパスワードを読み取ることはできません(既存のユーザーまたは新しいユーザーの新しいパスワードを設定することは可能です)。

Aurora Vision User Credentials Editor

プロジェクトを別のコンピュータに移動する場合は、*.avuserファイルもコピーし、そのパスが正しいかどうかを確認してください(CredentialsFileNameプロパティで設定されたように、絶対または相対)。プロジェクトからランタイム実行可能ファイル(*.avexe)を生成する場合でも、これらのファイルは*.avexeファイルにエクスポートされないため、これらのファイルをコピーする必要があります。 *.avuserファイルが見つからない場合、パスワードで保護されたエリアをロック解除できなくなるため、これを確認することが重要です。

*.avuserファイルをファイル共有を使用してネットワークで共有することも可能です(この場合、ファイルを読み取り専用として共有するようにしてください)。これにより、システム管理者がサーバー上の単一の場所で製品環境内でユーザーアクセス権を迅速に編集できるようになります。ネットワークで共有された認証ファイルを使用するには、CredentialsFileNameプロパティを絶対ネットワーク共有パスに設定する必要があります(例:"\\MyServer\MyPath\MyCredentialsFile.avuser")。

製品環境でのパスワード保護

プログラムが未承認のユーザによって変更されないようにするには、プロジェクトファイル(または*.avexeファイル)と*.avuserファイルを製品環境のマシンに単にコピーするだけでは十分ではありません。なぜなら、*.avuserファイルとアプリケーションのプロジェクトファイルは変更または上書きされる可能性があり、ユーザの資格情報を変更したりパスワード保護を解除したりすることができるからです。これを防ぐためには、製品環境マシンを適切に構成する必要があります:

  • システム管理者はパスワードを設定している必要があります。
  • 通常の非管理ユーザ(ビジョンシステムのランタイム中にログイン)は、プロジェクトカタログとそのファイル、.avuserファイルを含むファイルを変更する権限を持っていてはなりません。

これらの要件を満たすためのMicrosoft Windows上でのシンプルな解決策は、デフォルトの継承権限で作成されたProgram Filesディレクトリ内のフォルダにアプリケーションプロジェクトファイルを配置することです(管理者権限が必要です)。また、製品環境での作業には管理者権限のないユーザーアカウントを使用します。

この構成では、システム管理者権限でAuroraVisionUserCredentialsEditor.exeを実行すると、許可されたスタッフが*.avuserファイルを編集することができます(たとえば、定期的にパスワードを変更する場合など)。

多層のパスワード保護

Aurora Vision Studioでは、多層のパスワード保護を備えたHMIを作成することができます。ユーザー名とパスワードに加えて、*.avuserファイルはユーザーのアクセスレベルも保存します。アクセスレベルは0から255までの整数です。 多層の保護されたHMIを作成する際には、各保護エリアにログインするために必要な最小のアクセスレベルを決定できます。注目すべきは、複数のPasswordPanelを作成したり、さらにその中に別のPasswordPanelを配置したりでき、それらに同じ*.avuserファイルを割り当てることができる点です。

例:

多層のパスワード保護は、少なくとも2つのPasswordPanelと少なくとも2つのアクセスレベルを備えたアプリケーションで通常使用されます。以下はその例です。

未承認のユーザーの解除されたエリアは、検査結果を表示するためだけに使用されます。

ロックされたForemanAreaとSupervisorAreaを備えたHMI

最初の保護されたエリアは、RequiredAccessLevelが0に設定されています。これには、検査対象の要素の名前、対象領域、および測定の最大誤差などのパラメータを設定するためのコントロールが含まれています。 これらのコントロールの値は、アクセスレベル0の工場の管理者によって設定できます。

ロック解除されたForemanAreaを備えたHMI

2番目の保護エリアは、Foremanユーザーにとってもロックされています。なぜなら、そのRequiredAccessLevelが1に設定されているためであり、したがってより高いアクセスレベルのユーザーのみがそのコンテンツを見ることができます。 この特定の例では、そのようなユーザーはSupervisorです。さらに、SupervisorユーザーはForemanAreaとSupervisorAreaの両方に同時にログインできます。

ロック解除されたForemanAreaとSupervisorAreaを備えたHMI

コントロールごとの多層の保護

保護されたコントロールをPasswordPanelコントロール内に配置するだけでなく、各コントロールごとに必要な最小のユーザーアクセスレベルを個別に定義することも可能です。HMIプロジェクトにPasswordPanelコントロールを追加した後(例:「passwordPanel1」という名前)、他のすべてのコントロールには新しい拡張プロパティUserAccessLevel(例: "passwordPanel1のUserAccessLevel"、プロジェクト内の各PasswordPanelに1つのプロパティ)が追加されます。 このプロパティのデフォルト値は空(Nilに等しい)であり、これはコントロールがユーザーレベルの要件を持っておらず、そのEnable状態に影響を与えないことを意味します。値を0以上に設定すると、コントロールはパスワードで保護され、関連するPasswordPanelでログインしたユーザーのアクセスレベルが等しいかそれ以上でないと無効になります(そのEnableプロパティはFalseに設定されます)。

なお、コントロールのUserAccessLevelプロパティを使用する場合、コントロールのEnable状態は他の方法で変更できません。これには、それにEnabledManagerを関連付けるか、そのEnableプロパティに接続することが含まれます。これらのメソッドは干渉し合う可能性があるためです。

また、UserAccessLevelプロパティを使用するためには、コントロールをPasswordPanelコンテナ内に配置する必要はありません。これにより、保護されたコントロールをパスワードパネルから分離し、より柔軟なHMIデザインを作成できるようになります。

イベントログ

各PasswordPanelに関連するすべてのイベントは、コンソールウィンドウに表示され、アプリケーションのログファイルに保存されます。次のイベントの説明が保存されます:

  • ユーザーがログインしました。
  • ユーザーがログアウトしました。
  • ユーザー名またはパスワードが無効でした。
  • ユーザーアクセスレベルがRequiredAccessLevelよりも低かった。

さらに、ユーザーがログアウトする瞬間に、保護されたエリア内のすべてのHMIコントロールの値も保存されます。 これにより、特定のパラメータを誰がいつ変更したかに関する監査トライアルを実施できます。

監査トライアル目的でイベントが記録されたコンソール