サポート > リポジトリ > 認証・認可 > モデル単位の制御

特定の権限をもった利用者のみデータを操作する方法を説明します。

ここでは「商品」モデルを対象に、設定を行います。

"環境 > 権限" タブ内の "プリンシパル" を開きます。ギアアイコンから "新規" を選択し、プリンシパルを追加してみます。

図1 機能権限

新しいプリンシパルが用意されました。名前は仮で設定されていますので、適切な名前(英語/日本語) をセットします。

英語名は国際化対応のためと、システム内部での管理用IDとして用いられます。
図2 プリンシパルの追加 (1)
図3 プリンシパルの追加 (2)

プリンシパル名は国際化に対応した特別表記ルールに基づいて設定してください。[詳細...] ここでは次のように設定しています。

{"en":"productmgr","ja":"商品管理者"}

また、プリンシパルIDは、プリンシパル名の英語表記と同じとしてください。

開発者が「商品」モデルを用意した、とします。このモデルを「商品管理者」プリンシパルで制御できるようにします。

"権限 > 機能権限" タブを開きます。標準では「一般ユーザ」プリンシパルが用意されています。

図4 モデルに設定されたプリンシパル

ギアアイコンから、"プリンシパル追加" を選びます。

図5 プリンシパルの追加 (1)
図6 プリンシパルの追加 (2)

追加するプリンシパルを選択します。環境のプリンシパル一覧で、"選択肢表示" が有効となっているプリンシパルが選択肢に表示されます。(図2を参照)

図7 プリンシパルの選択

一般ユーザと、商品管理者プリンシパルにパーミッションを割り当てます。ここでは一般ユーザは閲覧のみとし、商品管理者プリンシパルは更新系のパーミッションを割り当てた例を示します。

図8 プリンシパルにパーミッションを割り当てる
プリンシパルには、一つ以上有効なパーミッションが必要です。パーミッションが未設定(一つも選択されていない)プリンシパルは作成されません。

ビルド後の手順

設定後、ビルドを行い、アプリケーションを起動します。

外部データベースご利用時は、「プリンシパルを追加したときに行うこと」の記載に従いデータのインポートを行ってください。

以下のテストはトライアルキットではお試しいただけません。アカウントの追加処理を行うためです。開発キットをご利用ください。

はじめに、システム管理者でログオンします。管理処理メニューから「アカウント一覧表示」を選択します。

図9 アカウント一覧表示へ

アカウントの新規登録を行います。

図10 アカウント新規登録画面へ

アカウント「user」(一般利用者)を作成します。
プリンシパルに「共通処理」「パスワード変更」「一般ユーザ」を選択します。

図11 アカウントuserの作成 (1)
図12 アカウントuserの作成 (2)

もう一つのアカウント「manager」(マスタデータ管理者)を作成します。
プリンシパルに「共通処理」「パスワード変更」「一般ユーザ」「商品管理者」を選択します。

複数のプリンシパルを選択することができます。このとき「一般ユーザ」かつ「商品管理者」のロールを持ちます。
図13 アカウントmanagerの作成
複数のプリンシパル(例「一般ユーザ」と「商品管理者」)を有効にしたとき、このアカウントが持つパーミッションは、各プリンシパルに紐づくパーミッションすべて(和集合)となります。

この二つのテスト用アカウントを作成後、システム管理者をログオフします。

マスタデータ管理者でログオンします。 メニューから「商品検索」を選択します。登録ボタンが表示されています。

図14 商品の登録画面へ

商品データを登録後の詳細画面では、登録・更新・削除といった操作が行えるようになっていることがわかります。

図15 更新に関する処理ボタンが表示される

ログオフし、次に一般利用者でログオンします。
メニューから「商品検索」を選択します。登録ボタンは表示されていません。

図16 商品検索画面

このアカウントは検索と表示のみ行えるようになっています。

図17 更新に関する処理ボタンは表示されない
すべての画面遷移のボタンは、権限管理によって表示制御されます。例えば更新権限をもたない利用者では、「更新」ボタンは表示されない、という動作になります。
権限管理の動作テストでは、システム管理者を用いないようにしてください。(システム管理者はすべての権限を持つという設定になっています。)

ここでは更新権限の制御方法を紹介しましたが、用途に合わせてパーミッションを組み合わせることができます。例えば「削除」を許可しないプリンシパルや、「CSVダウンロード・アップロード更新」処理専用のプリンシパルなどを作成することができます。