モデル単位の制御
最終更新日: 2021年7月28日
権限はプリンシパルという単位で用意します。ここでは新しいプリンシパル「業務管理者」を用意する例を説明します。
"環境 > 権限" タブ内の "プリンシパル" を開きます。ギアアイコンから "新規" を選択し、プリンシパルを追加してください。
「顧客」モデルについて、次の制御を行うようにします。
"権限 > 機能権限" タブを開きます。標準では「一般ユーザ」プリンシパルが用意されています。
ギアアイコンから、"プリンシパル追加" を選びます。
追加するプリンシパルを選択します。環境のプリンシパル一覧で、"選択肢表示" が有効となっているプリンシパルが選択肢に表示されます。
一般ユーザと、業務管理者プリンシパルにパーミッションを割り当てます。ここでは一般ユーザは閲覧のみとし、業務管理者プリンシパルに更新系のパーミッションを割り当てるとします。
設定後、ビルドを行い、アプリケーションを起動します。
プリンシパルには、一つ以上有効なパーミッションが必要です。パーミッションが未設定(一つも選択されていない)プリンシパルは作成されません。
上の例では、業務管理者プリンシパルに閲覧用パーミッションを付与していません。この意図は、一般利用は「一般」プリンシパルのみとし、業務管理者は「一般」と「業務管理者」の二つのプリンシパルをもつようにするためです。(具体的方方法をこのあと説明します。)このように、複数のプリンシパルを持つ場合、両者をあわせたパーミッションとなります。
はじめに、システム管理者でログオンします。管理処理メニューから「アカウント一覧表示」を選択します。
アカウントの新規登録を行います。
アカウント「user」(一般利用者)を作成します。
もう一つのアカウント「manager」(マスタデータ管理者)を作成します。
複数のプリンシパル(「一般ユーザ」と「業務管理者」)を有効にしたとき、このアカウントが持つパーミッションは、各プリンシパルに紐づくパーミッションすべて(和集合)となります。
この二つのテスト用アカウントを作成後、システム管理者からログオフします。
業務管理者のアカウントでログオンします。
メニューから「顧客検索」を選択します。登録ボタンが表示されています。
顧客データ登録後の詳細画面では、登録・更新・削除といった操作が行えるようになっていることがわかります。
次に一般利用者でログオンします。
このアカウントは検索と表示のみ行えるようになっています。
すべての画面遷移のボタンは、権限管理によって表示制御されます。例えば更新権限をもたない利用者では、「更新」ボタンは表示されない、という動作になります。
権限管理の動作テストでは、システム管理者を用いないようにしてください。(システム管理者はすべての権限を持つという設定になっています。)
システム管理者でログオンすると、すべてのメニューが表示されます。それ以外のユーザでログオンすると、許可された権限に対応したメニューだけが表示されます。
権限を持たない利用者が、許可されていないモデルの操作を行おうとアドレスバーにURLを直接入力するとエラー画面が表示されます。
また、ログファイル (wagbyapp/logs/system.log) には次のような記録が残ります。
ログレベルは ERROR ではなく INFO です。セキュリティエラーの検出は正常な処理であるためです。この検出を行う場合は、ログコード "JFC-00108" で検索してください。
ここでは更新処理の制御方法を紹介しましたが、用途に合わせてパーミッションを組み合わせることができます。例えば「削除」を許可しないプリンシパルや、「ダウンロード・アップロード更新」処理専用のプリンシパルなどを作成し、これをアカウントに割り当てるといったことができます。
新しいプリンシパルの追加
モデルにプリンシパルを設定する
重要
業務管理者プリンシパルに閲覧用パーミッションは不要?
テストアカウントの作成
プリンシパルに「共通処理」「パスワード変更」「一般ユーザ」を選択します。
プリンシパルに「共通処理」「パスワード変更」「一般ユーザ」「業務管理者」を選択します。
ワンポイント
実行例
メニューから「顧客検索」を選択します。登録ボタンは表示されていません。
ワンポイント
重要
メニューの扱い
権限外の機能を操作しようとした場合
[INFO jp.jasminesoft.jfc.controller.BaseController checkPermission] (user) JFC-00108:セキュリティエラーです。権限は [JFCAppPermission [JFCBasePermission Name:MODEL1 Actionlist:insert ] ] となっています。
応用