Panel Serverのユーザ認証

<< Click to Display Table of Contents >>

トレーニング > 応用編 > セキュリティ機能 >

Panel Serverのユーザ認証

ここでは、Panel Serverのセキュリティ機能について学習します。

 

プロジェクトを作成する

1.プロジェクトの保存先となるフォルダを作成します。
 

2.Panel Editorを起動し、「新規プロジェクト作成」をクリックします。右エリアに新規プロジェクトのベースとなるフレームワークが表示されるので、「新規フレームワーク」を選択し、「作成」ボタンをクリックします。確認画面が表示されるので、「はい」を選択します。
 
tra_0104_zoom70
 

3.プロジェクトの保存場所として「1」で作成したフォルダを選択し、プロジェクトファイル名を入力します。その後、「開く」をクリックします。

 

4.ブランクのフレームプロジェクトとして、クライアント設定ファイル(client.xml)とサーバ設定ファイル(server.xml)が登録されたプロジェクトが表示されます。また、プロジェクトとしての推奨フォルダがプロジェクトの保存場所に作成されます。作成フォルダの用途は以下の通りです。
 

tra_0106

作成フォルダの用途

フォルダ

用途

build

Panel Editorのセットアップ機能により、クライアント画面実行時の全ファイルを本フォルダに吐き出す為のフォルダです。

client

クライアント設定ファイル及びクライアント画面実行に必要な画像、サウンド及び設定ファイルを本フォルダに含めます。

server

サーバ設定ファイル及びサーバでの必要な設定ファイル等を本フォルダに含めます。

server_data

サーバ実行時に出力されるデータを格納するフォルダです。実行時にはじめて作成されます。また、保存データをクリアする場合は、本フォルダを削除します。

 

5.クライアント設定ファイル(client.xml)には、初期状態でFolder01とその中にForm01が入っています。

 

6.ここで一旦、設定を保存します。
 
tra_0121

 

 

ユーザ情報の登録

まずは、Panel Serverで設定ファイルを新規作成し、ユーザ情報の登録を行います。

 

1.Panel Serverを起動します。Panel Editorの下図のアイコンをクリックすると、Panel Serverが起動し本プロジェクトのサーバ設定ファイルを開きます。
 
tra_0010
 

2.Panel Serverにユーザ情報を登録する
ツリーからInterfaceを開き、“Panel”を右クリックしてプロパティを表示してください。
 
tra_0629
 
プロパティダイアログが表示されるので、ログインユーザタブを選択してください。
tra_0630
 
初期の状態では、“user”というユーザがデフォルトで登録されています。実は、Panel Browser側の設定が自動ログイン(PSLoginStartupルートプロパティにAUTOと設定)の場合、このデフォルトユーザによってPanel Serverへのログインが自動的に行われます。新たにユーザ情報を登録してセキュリティ機能を利用する場合、デフォルトユーザの情報を残しておくのはセキュリティ上好ましくないため、“user”は登録から削除しておきます。

 

hint

デフォルトユーザ“user”のパスワードには“pass”が設定されています。もしも、userを削除してしまった後で再び自動ログイン設定に戻したい場合には、ユーザ名“user”、パスワード“pass”として再度ユーザ情報の登録を行ってください(※自動ログインで使用されるユーザ名とパスワードはPSLoginUserルートプロパティ、PSLoginPwdルートプロパティに設定されています。もしもuser以外のユーザ名で自動ログインを行いたい場合は、これらのプロパティの設定を変更して下さい)。

 

hint

ログイン設定の詳細等、セキュリティ機能の詳細については、「セキュリティ」を参照してください。

 
一覧から“user”を選択した状態で、削除ボタンをクリックしてください。デフォルトユーザが削除されました。
tra_0631
 
続いて、新たにユーザ情報を追加します。プロパティダイアログから追加ボタンをクリックして下さい。ユーザ追加ダイアログが表示されます。
tra_0632
 
このダイアログから、以下の2つのユーザ情報を登録してください。

 

ユーザ名

パスワード

レベル

解説

admin

adm

5

管理者ユーザと想定

operator

oper

1

一般ユーザと想定

 

本トレーニングでは、上表2つのユーザレベルに応じた機能制限を設定することとします。
 

hint

上表のユーザ名とパスワードは一例です。実際のシステム開発の際には、要件に応じて自由に設定して下さい。尚、ユーザ名とパスワードは、大文字・小文字を区別する必要があります。

 

adminとoperatorユーザが追加された状態です。OKボタンでプロパティダイアログを閉じて下さい。
tra_0633
 

 

3.設定ファイルを保存する
ユーザ情報の登録が終わったら、サーバ側の設定ファイルを一旦保存します。
 

 

Panel Browserからのログイン設定

続いて、Panel BrowserからPanel Serverに接続する際のログイン設定を行います。

 

1.Panel Editorからログイン設定の変更
 
ログイン設定はルートプロパティで設定します。ここでは以下のとおり設定しておきます。
 
tra_0634

 

プロパティ

設定内容

PSLoginMust

“True”

PSLoginStartup

“MANUAL”

PSLoginUser

設定しない(ブランク)

PSLoginPwd

設定しない(ブランク)

 

 

hint

PSLoginMustルートプロパティは、ログインが必須か否かの設定です。これを“True”に設定することで、Panel Serverへのログイン認証が必須となります。PSLoginStartupルートプロパティに“MANUAL”を設定すると、ログイン画面が表示されるようになります。PSLoginMustルートプロパティと組み合わせることで、ログインされるまで常にログイン画面が表示されるようになります。

 

hint

PSLoginUserルートプロパティにユーザ名を設定すると、ログイン時に表示されるログイン画面にユーザ名をデフォルト表示させることができます。運用上、ログインする頻度が高いユーザがほぼ決まっている場合は、そのユーザ名を指定するのも良い方法です。

但し、PSLoginPwdルートプロパティにパスワードを設定してしまうと、パスワードもデフォルト表示されてしまうため(“*****”などで表示されます)、PSLoginPwdルートプロパティは必ず空白としてください。

 

 

ログアウト

続いて、画面上にログアウトを行うためのボタンを作成してみます。

 

1.ログアウトボタン
デフォルトで生成されている“Form01”に、ログアウトを行うためのボタンを作成します。フォームの右上あたりにボタンを貼り付け、Textを“ログアウト”として下さい。
tra_0635
 
ログアウトボタンのOnMouseUpイベントに、以下のスクリプトを記述します。

event OnMouseUp(button)

{

   ::Logout();

   ::PSLoginPwd = "";

}

 
以上で、設定ファイルを一旦保存してください。
以降の作業でも、引き続きこの設定ファイルを使って作業を行います。

 

hint

(解説)
Panel ServerからのログアウトはLogoutメソッドによって行います。一度ログインに成功すると、PSLoginPwdルートプロパティにパスワードが格納されます。そのままの状態でログアウトを行うと、ログイン画面が表示された時にパスワードがアスタリスクでデフォルト表示されてしまいます。そのため、ここではログアウト後にPSLoginPwdルートプロパティを初期化しています。
 

 

 


 

動作確認

 

作成したログイン・ログアウトの動作を確認してみます。Panel Serverがオンライン状態で確認して下さい。

 

1.Panel Editorの下図のアイコンをクリックすると、Panel Browserが起動し、クライアント設定ファイルが開かれて実行されます。
 
tra_0013
 
ログイン画面が表示されました。
tra_0636
 
試しに、存在しないユーザとパスワードでログインしてみてください。以下のエラーメッセージが表示され、ログインが失敗することを確認してください。
tra_0637
 
続いて、“admin”のユーザ名とパスワードを入力してOKボタンをクリックして下さい。
tra_0638
 
ログインが成功し、画面が表示されました。
tra_0639
 
ここで、ログアウトボタンをクリックして下さい。
ログアウトが行われ、自動的にログイン画面が表示されました(ユーザ名には前回ログインに成功したユーザが表示され、パスワードは空欄になっています)。
tra_0640
 
ここで、“operator”のユーザ名とパスワードを入力してOKボタンをクリックして下さい。ログインが成功し、画面が再び表示されることを確認してください。このように、PSLoginMustルートプロパティをTrueに設定すると、ログアウトしたタイミングでログイン画面が自動的に表示されるようになります。ログインが成功するまで、システムを利用することはできません。
 
 

ユーザレベルの利用方法

続いて、ユーザレベルの取得と、ユーザレベルに応じた機能制限を設定します。ここでは単純に、ユーザレベルに応じてボタンのEnabledを有効/無効に切り替えてみます。

 

ログインが成功すると、PSUserLevelルートプロパティにユーザレベルが格納されます。このプロパティに出力バインド“OUT:”として“$D0”などの内部タグを割り付けることにより、割り付けた内部タグにユーザレベルが自動的に格納されるようになります。このタグのことを、ここでは「セキュリティタグ」と呼びます。機能制限の判定には、このセキュリティタグを使用します。

 

1.セキュリティタグの設定
ルートのバインドタブを開き、PSUserLevelに“OUT:$D0”と設定します。
tra_0641
 

hint

セキュリティタグは、必ずしも$D0である必要はありません。実際にシステムを構築する際には、使用可能な内部タグを自由に設定してください。

 

2.確認用のテストボタンを作成する
ユーザレベルのテスト用にボタンを1つ作成し、Textを“テスト”としてください。
tra_0642
 
テストボタンを選択した状態で、バインドタブからEnabledに“$D0==5”と設定します。つまり、ユーザレベルが5の時のみEnabledがTrueになります
tra_0643
 
続いて、テストボタンのOnMouseUpイベントに、以下のスクリプトを記述します(※確認用の単純なメッセージ表示です。文言は何でもかまいません)。

event OnMouseUp(button)

{

 ::OpenMsg("操作を受け付けました");

}

 

以上で画面の作成は完了です。設定ファイルを保存してください。
 
 


 

動作確認

 

作成したユーザレベルの動作を確認してみます。Panel Serverがオンライン状態で確認して下さい。

 

1.Panel Editorの下図のアイコンをクリックすると、Panel Browserが起動し、クライアント設定ファイルが開かれて実行されます。
 
tra_0013
 
 

2.ログイン画面が表示されるので、“admin”ユーザでログインしてください。
 
tra_0638
 
画面が表示されるので、テストボタンをクリックして下さい。テスト用のメッセージが正しく表示されることを確認して下さい。
tra_0644
 
メッセージを閉じて、ログアウトボタンをクリックしてログアウトしてください。
続いて、“operator”ユーザでログインしてください。
tra_0645
 
画面が表示されました。テストボタンが無効になり、操作できないことを確認して下さい。このように、ログインしたユーザのレベルに応じて、画面表示に制約を設けることができます。

 

 

hint

今回の作成例ではボタンの有効/無効の切り替えを行いましたが、ユーザレベルをスクリプト内で判定することにより、さらに柔軟な機能制約を設けることができます。例えば、ボタンクリック時にユーザレベルに応じて表示する画面を切り替える、といった制御も可能です。