<< Click to Display Table of Contents >> ログイン機能によるセキュリティ保護 |
ログイン機能の概要
Panel Browserは実行時にPanel Serverに通信接続します。この時、接続の際には必ずユーザー認証が行われ、Panel Serverに登録されていないユーザーからの接続は全て拒否されます。
デフォルトでは、Panel Serverにあらかじめ登録されているユーザー/パスワードがPSLoginUserルートプロパティ、PSLoginPwdルートプロパティに設定されており、PSLoginStartupルートプロパティを“AUTO”にするのみで、Panel Serverに自動的に接続できるように設定されています。このため、通常はバックグラウンドでログインが行われていること自体を意識する必要がありません。セキュリティ上特に管理する必要が無い場合にはこのままの設定で運用することができます。
ログインが行われていない時、以下の機能が利用できない状態になります。
1)Panel Browserは、タグ、アラーム、ヒストリカルデータ、データベース、ファイルなどのPanel Serverからの情報を受け取るこができなくなります。
2)外部情報の入出力のための以下のメソッド及びコントロールは利用できなくなります。
•ルートメソッド: LoadTextFile / SaveTextFile / LoadCsvFile / SaveCsvFile / SavePrintText
•グリッドコントロールメソッド: LoadCsvFile / SaveCsvFile
•DirectQueryDbコントロール
3)VisualBasicなどと連携してデータを入出力するためのActiveXインターフェースの利用。
つまり、ログインが行われない限り、Panel Browserは自プロセス外との情報の入出力が一切できません。従って、ログイン認証が許可されたオペレータに限定したシステムの公開を行うことができます。
FA-Panelの接続ライセンス数のチェックは、このユーザー認証によって行われています。例えば10ライセンス用のFA-Panelの場合、10件目の接続までは認証が成功しますが、11件目以降の接続では認証が失敗します。 |
ログイン機能の設定内容
ログイン機能を使ってセキュリティ保護を行う場合には、Panel Serverのユーザー管理機能を使ってあらかじめログインユーザーの情報を登録しておきます。そして、Panel BrowserからPanel Serverへの接続が行われるタイミングで、ログイン画面を表示してオペレータにログインを求めるように設定します。
また、ログインユーザーの情報にはユーザーレベルを設定することができます。現在ログインしているオペレータがどのレベルのユーザーなのかをスクリプトなどから知ることによって、ログインしたオペレータに応じて画面の振る舞いを切り替えることもできます。
ログイン機能の大まかな利用方法は以下のとおりです。
1)Panel Serverにログインユーザー情報(ユーザー名、パスワード、レベル)を登録する。
2)Panel Browserのデフォルトのログイン設定を、ログイン画面による手動ログインに変更する。
3)ログインしたユーザーのレベルに応じた画面動作の切り替え(必要の都度)。
各手順の詳細については、次節以降にて解説します。
Panel Serverへのログインユーザー登録
ログインユーザーの登録はPanel Server側で行います。
1.Panel Serverの「Interface」「Panel」を右クリックし、メニューから「プロパティ」を選択する。
2.ログインユーザーの追加を行う。
ユーザーを追加するには、「ログイン情報」タブを選択し「追加」ボタンをクリックします。
|
3.ユーザーダイアログが表示されるので、「ユーザー名」「パスワード」「レベル」を入力します。
|
ユーザー名: |
ユーザー名です。文字数に制限はありません。
|
パスワード: |
認証時のパスワードです。文字数に制限はありません。
|
レベル: |
ユーザーレベルを指定します。0から100までの数値です。認証の完了以降、Panel Browserはこの数値を参照することができます。例えば、ユーザーレベルによってフォームを開かない、操作させない等、機能制限を持たせたい場面に利用できます。 |
複数のPanel BrowserからPanel Serverへ接続する際、同じユーザー名とパスワードを使って接続することができます。 |
Panel Serverにはデフォルトで「ユーザー名:user」 「パスワード:pass」というユーザー情報が登録されています。このユーザーはデフォルト設定の自動ログイン時に使用されるユーザーです。ログイン機能によるセキュリティ保護を行う場合には、このユーザーはセキュリティ上好ましくないため必ず削除するようにして下さい。 |
Panel Browserのログイン設定
ログインの方法はPanel Editorから設定します。システム要件に応じて様々なログイン方法が選択できます。
ログイン方法の設定は、PSLoginMustルートプロパティとPSLoginStartupルートプロパティの組み合わせによって決まります。
PSLoginMustルートプロパティ(TRUE/FALSE)では、ログインしていない時でもシステムを開始してもいいかどうかを設定します。TRUEの場合はログインを必須とし、FALSEの場合はログインを必須としません。ログインを行うためにはPanel Serverが同一ネットワーク上の別PC上か、Panel Browserと同じPC上で起動されている必要があります。Panel Serverが起動していない、あるいはユーザー名やパスワードが誤りの場合にはログインが失敗します。ログインが失敗した時、この設定がTRUEの場合はフォームを表示しません。FALSEの場合はPanel Serverと接続されていない状態でもフォームを表示します。
PSLoginStartupルートプロパティ(NONE/AUTO/MANUAL)は、システムの開始時にどのようにログインを行うかを選択します。AUTO設定時はログイン画面は表示されず、PSLoginUserルートプロパティ / PSLoginPwdルートプロパティで設定されたユーザー名及びパスワードを利用して自動的にログインします。MANUAL設定時はログイン画面が表示され、オペレータによるユーザー名及びパスワードの入力によってログインします。
以下は、PSLoginMustルートプロパティとPSLoginStartupルートプロパティの対応表です。各プロパティの詳細については、コントロールリファレンスの「ルートプロパティ」を参照下さい。
PSLoginMust |
PSLoginStartup |
解説 |
TRUE |
NONE |
この設定は通常行いません。PSLoginStartupルートプロパティがMANUALと同じ動作になります。 |
AUTO |
自動的ログイン設定です。ログイン画面は表示されず、PSLoginUserルートプロパティ及びPSLoginPasswdルートプロパティで設定されたユーザー名とパスワードによって自動的にログインします。ログインが失敗するとログイン画面が表示されます。 |
|
MANUAL |
手動ログイン設定です。システムの開始時にログイン画面が表示されます。ログインが成功するまでシステムを利用することはできません。 |
|
FALSE |
NONE |
システム開始時、ログイン画面は表示されず、ログインをしないままシステムが開始されます(Panel Browser単体で動作している状態になります)。 |
AUTO |
自動的ログイン設定です。ログイン画面は表示されず、PSLoginUserルートプロパティ及びPSLoginPasswdルートプロパティで設定されたユーザー名とパスワードで、自動的にログインします。但し、ログインが失敗するとログインをしないままシステムが開始されます(一旦はPanel Browser単体で動作した状態になり、後からPanel Serverが起動すると、自動的に接続が確立されます)。 |
|
MANUAL |
手動ログイン設定です。システムの開始時にログイン画面が表示されます。但し、ログインが失敗しても、ログインをしないままシステムが開始されます(一旦はPanel Browser単体で動作した状態になり、後からPanel Serverが起動すると、自動的に接続が確立されます)。 |
通常、特にユーザー管理を行う必要が無い場合は、以下のように設定します。
PSLoginMustルートプロパティ ・・・FALSE PSLoginStartupルートプロパティ ・・・AUTO
厳密にユーザー管理を行いたい場合には、以下のように設定します。
PSLoginMustルートプロパティ ・・・TRUE PSLoginStartupルートプロパティ ・・・MANUAL
|
セキュリティタグの作成
ユーザー情報(「ユーザー名」「パスワード」「ユーザーレベル」)は、Panel Serverによって集中的に管理されます。ログインが成功すると、Panel ServerからPanel Browserへ「ユーザーレベル」が通知され、ルートのPSUserLevelルートプロパティに設定されます。
このPSUserLevelルートプロパティにタグを出力バインドすることにより、ユーザーレベルの値と同期したタグを作成することができます。このタグのことを「セキュリティタグ」と呼びます。
セキュリティタグの設定手順は以下のとおりです。
1.Panel Editorを起動し、プロパティダイアログからルートを選択する。
2.バインドタブを開き、PSUserLevelルートプロパティにセキュリティタグとして動作させたいタグに出力バインドを行う。
ここでバインドするタグは、数値型であればどのタグでもかまいません。ここでは例として、内部タグ「$D0」をセキュリティタグとして使用します。
バインドダイアログの設定例(かんたん設定タブ)
プロパティ |
かんたん設定の内容(ダイレクトリンク) |
バインド式 |
PSUserLevel |
OUT:$D0 |
OUT:$D0 |
ユーザーレベルによるコントロールの操作ロック
前述にて作成したセキュリティタグを利用して、ユーザーレベルに応じてコントロールの操作可否を切り替えることができます。設定としてはコントロールのEnabledプロパティにセキュリティタグを入力バインドするだけです。
ここでは例として、エディットコントロールの操作をユーザーレベルに応じてロックする設定方法を紹介します。
※以下、内部タグ「$D0」がセキュリティタグとして設定されているものとします。
1)ユーザーレベルによる操作制限を設定したいコントロールを選択し、バインドタブを開く。
ここではエディットコントロールを例として解説をすすめます。
2)エディットコントロールのEnabledにセキュリティタグの比較式をバインドします。
ここでは例として、「$D0 >= 5」とします。
エディットコントロール
プロパティ |
かんたん設定の内容(ダイレクトリンク) |
バインド式 |
Enabled |
$D0 >= 5 |
$D0 >= 5 |
3)Panel Serverをオンラインの状態にし、Panel Browserを実行してみます。
ユーザーレベルが5未満の時、エディットコントロールは操作不能になります。
フォームに存在するすべてのコントロールを一括でまとめてロックしたい場合は、フォームのEnabledプロパティにセキュリティ条件をバインドします。 |
コントロールの中には、EnabledプロパティがFALSEになると、表示が淡色になるものがあります。表示色などの外観を変えずにマウスやキーボード操作のみをロックしたい場合は、EnabledInputプロパティの方にバインドする事で対応可能です。 |
スクリプトからのユーザーレベル参照
スクリプトからユーザーレベルを取得するには、ルートのPSUserLevelプロパティを直接参照します。
以下の例では、ボタンのクリックに応じて以下のような動作となります。
•ユーザーレベルが1の時はForm02を開く
•ユーザーレベルが2の時はForm03を開く
•ユーザーレベルが3の時はForm04を開く
event OnMouseUp(button) { switch (::PSUserLevel) // ユーザーレベルにより判定 { case 1 : ::OpenForm("Form02"); // Form02を開く break; case 2 : ::OpenForm("Form03"); // Form03を開く break; case 3 : ::OpenForm("Form04"); // Form04を開く break; default: ::OpenMsg("Can't open form"); // いずれでも無いときは開かない } }
クライアントからのユーザー情報の更新
Panel Serverに登録されているユーザー情報はPanel Serverの画面から編集する以外にも、以下のルートメソッドを利用する事によりクライアント側からオンライン中に変更する事ができます。
ユーザー情報へのアクセスには、ルートの以下のメソッドを使用します。
上メソッドを使用したログイン情報更新のサンプルは、以下から利用することができます。