<< Click to Display Table of Contents >> Panel Serverのユーザ認証 |
ここでは、Panel Serverのセキュリティ機能について学習します。
プロジェクトを作成する
1.プロジェクトの保存先となるフォルダを作成します。
2.Panel Editorを起動し、「新規プロジェクト作成」をクリックします。右エリアに新規プロジェクトのベースとなるフレームワークが表示されるので、「新規フレームワーク」を選択し、「作成」ボタンをクリックします。確認画面が表示されるので、「はい」を選択します。
3.プロジェクトの保存場所として「1」で作成したフォルダを選択し、プロジェクトファイル名を入力します。その後、「開く」をクリックします。
4.ブランクのフレームプロジェクトとして、クライアント設定ファイル(client.xml)とサーバ設定ファイル(server.xml)が登録されたプロジェクトが表示されます。また、プロジェクトとしての推奨フォルダがプロジェクトの保存場所に作成されます。作成フォルダの用途は以下の通りです。
作成フォルダの用途
|
5.クライアント設定ファイル(client.xml)には、初期状態でFolder01とその中にForm01が入っています。
6.ここで一旦、設定を保存します。
ユーザ情報の登録
まずは、Panel Serverで設定ファイルを新規作成し、ユーザ情報の登録を行います。
1.Panel Serverを起動します。Panel Editorの下図のアイコンをクリックすると、Panel Serverが起動し本プロジェクトのサーバ設定ファイルを開きます。
2.Panel Serverにユーザ情報を登録する
ツリーからInterfaceを開き、“Panel”を右クリックしてプロパティを表示してください。
プロパティダイアログが表示されるので、ログインユーザタブを選択してください。
初期の状態では、“user”というユーザがデフォルトで登録されています。実は、Panel Browser側の設定が自動ログイン(PSLoginStartupルートプロパティにAUTOと設定)の場合、このデフォルトユーザによってPanel Serverへのログインが自動的に行われます。新たにユーザ情報を登録してセキュリティ機能を利用する場合、デフォルトユーザの情報を残しておくのはセキュリティ上好ましくないため、“user”は登録から削除しておきます。
デフォルトユーザ“user”のパスワードには“pass”が設定されています。もしも、userを削除してしまった後で再び自動ログイン設定に戻したい場合には、ユーザ名“user”、パスワード“pass”として再度ユーザ情報の登録を行ってください(※自動ログインで使用されるユーザ名とパスワードはPSLoginUserルートプロパティ、PSLoginPwdルートプロパティに設定されています。もしもuser以外のユーザ名で自動ログインを行いたい場合は、これらのプロパティの設定を変更して下さい)。 |
ログイン設定の詳細等、セキュリティ機能の詳細については、「セキュリティ」を参照してください。 |
一覧から“user”を選択した状態で、削除ボタンをクリックしてください。デフォルトユーザが削除されました。
続いて、新たにユーザ情報を追加します。プロパティダイアログから追加ボタンをクリックして下さい。ユーザ追加ダイアログが表示されます。
このダイアログから、以下の2つのユーザ情報を登録してください。
ユーザ名 |
パスワード |
レベル |
解説 |
admin |
adm |
5 |
管理者ユーザと想定 |
operator |
oper |
1 |
一般ユーザと想定 |
本トレーニングでは、上表2つのユーザレベルに応じた機能制限を設定することとします。
上表のユーザ名とパスワードは一例です。実際のシステム開発の際には、要件に応じて自由に設定して下さい。尚、ユーザ名とパスワードは、大文字・小文字を区別する必要があります。 |
adminとoperatorユーザが追加された状態です。OKボタンでプロパティダイアログを閉じて下さい。
3.設定ファイルを保存する
ユーザ情報の登録が終わったら、サーバ側の設定ファイルを一旦保存します。
Panel Browserからのログイン設定
続いて、Panel BrowserからPanel Serverに接続する際のログイン設定を行います。
1.Panel Editorからログイン設定の変更
ログイン設定はルートプロパティで設定します。ここでは以下のとおり設定しておきます。
プロパティ |
設定内容 |
PSLoginMust |
“True” |
PSLoginStartup |
“MANUAL” |
PSLoginUser |
設定しない(ブランク) |
PSLoginPwd |
設定しない(ブランク) |
PSLoginMustルートプロパティは、ログインが必須か否かの設定です。これを“True”に設定することで、Panel Serverへのログイン認証が必須となります。PSLoginStartupルートプロパティに“MANUAL”を設定すると、ログイン画面が表示されるようになります。PSLoginMustルートプロパティと組み合わせることで、ログインされるまで常にログイン画面が表示されるようになります。 |
PSLoginUserルートプロパティにユーザ名を設定すると、ログイン時に表示されるログイン画面にユーザ名をデフォルト表示させることができます。運用上、ログインする頻度が高いユーザがほぼ決まっている場合は、そのユーザ名を指定するのも良い方法です。 但し、PSLoginPwdルートプロパティにパスワードを設定してしまうと、パスワードもデフォルト表示されてしまうため(“*****”などで表示されます)、PSLoginPwdルートプロパティは必ず空白としてください。 |
ログアウト
続いて、画面上にログアウトを行うためのボタンを作成してみます。
1.ログアウトボタン
デフォルトで生成されている“Form01”に、ログアウトを行うためのボタンを作成します。フォームの右上あたりにボタンを貼り付け、Textを“ログアウト”として下さい。
ログアウトボタンのOnMouseUpイベントに、以下のスクリプトを記述します。
event OnMouseUp(button) { ::Logout(); ::PSLoginPwd = ""; } |
以上で、設定ファイルを一旦保存してください。
以降の作業でも、引き続きこの設定ファイルを使って作業を行います。
(解説) |
動作確認
作成したログイン・ログアウトの動作を確認してみます。Panel Serverがオンライン状態で確認して下さい。
1.Panel Editorの下図のアイコンをクリックすると、Panel Browserが起動し、クライアント設定ファイルが開かれて実行されます。
ログイン画面が表示されました。
試しに、存在しないユーザとパスワードでログインしてみてください。以下のエラーメッセージが表示され、ログインが失敗することを確認してください。
続いて、“admin”のユーザ名とパスワードを入力してOKボタンをクリックして下さい。
ログインが成功し、画面が表示されました。
ここで、ログアウトボタンをクリックして下さい。
ログアウトが行われ、自動的にログイン画面が表示されました(ユーザ名には前回ログインに成功したユーザが表示され、パスワードは空欄になっています)。
ここで、“operator”のユーザ名とパスワードを入力してOKボタンをクリックして下さい。ログインが成功し、画面が再び表示されることを確認してください。このように、PSLoginMustルートプロパティをTrueに設定すると、ログアウトしたタイミングでログイン画面が自動的に表示されるようになります。ログインが成功するまで、システムを利用することはできません。
ユーザレベルの利用方法
続いて、ユーザレベルの取得と、ユーザレベルに応じた機能制限を設定します。ここでは単純に、ユーザレベルに応じてボタンのEnabledを有効/無効に切り替えてみます。
ログインが成功すると、PSUserLevelルートプロパティにユーザレベルが格納されます。このプロパティに出力バインド“OUT:”として“$D0”などの内部タグを割り付けることにより、割り付けた内部タグにユーザレベルが自動的に格納されるようになります。このタグのことを、ここでは「セキュリティタグ」と呼びます。機能制限の判定には、このセキュリティタグを使用します。
1.セキュリティタグの設定
ルートのバインドタブを開き、PSUserLevelに“OUT:$D0”と設定します。
セキュリティタグは、必ずしも$D0である必要はありません。実際にシステムを構築する際には、使用可能な内部タグを自由に設定してください。 |
2.確認用のテストボタンを作成する
ユーザレベルのテスト用にボタンを1つ作成し、Textを“テスト”としてください。
テストボタンを選択した状態で、バインドタブからEnabledに“$D0==5”と設定します。つまり、ユーザレベルが5の時のみEnabledがTrueになります
続いて、テストボタンのOnMouseUpイベントに、以下のスクリプトを記述します(※確認用の単純なメッセージ表示です。文言は何でもかまいません)。
event OnMouseUp(button) { ::OpenMsg("操作を受け付けました"); } |
以上で画面の作成は完了です。設定ファイルを保存してください。
動作確認
作成したユーザレベルの動作を確認してみます。Panel Serverがオンライン状態で確認して下さい。
1.Panel Editorの下図のアイコンをクリックすると、Panel Browserが起動し、クライアント設定ファイルが開かれて実行されます。
2.ログイン画面が表示されるので、“admin”ユーザでログインしてください。
画面が表示されるので、テストボタンをクリックして下さい。テスト用のメッセージが正しく表示されることを確認して下さい。
メッセージを閉じて、ログアウトボタンをクリックしてログアウトしてください。
続いて、“operator”ユーザでログインしてください。
画面が表示されました。テストボタンが無効になり、操作できないことを確認して下さい。このように、ログインしたユーザのレベルに応じて、画面表示に制約を設けることができます。
今回の作成例ではボタンの有効/無効の切り替えを行いましたが、ユーザレベルをスクリプト内で判定することにより、さらに柔軟な機能制約を設けることができます。例えば、ボタンクリック時にユーザレベルに応じて表示する画面を切り替える、といった制御も可能です。 |