RBACマトリクス(MVPサンプル)
本書は、HBKヒューマンクラウドのMVP範囲におけるRBAC(Role-Based Access Control/役割ベースアクセス制御)のたたき台です。ロールごとに「どの画面・機能で」「どの操作(閲覧/作成/編集/提出/削除/承認等)が可能か」を表で明示し、要件定義・実装・テストを整合させるための基準とします。
記号ルール
- ○: 許可
- △: 制限付き許可(注記参照)
- ×: 不可
- ー: 該当なし/操作なし
対象ロール(MVP)
- 管理者
- 評価者
- 被評価者(評価対象者)
画面・機能 × 操作 マトリクス
| 画面/機能 | 操作 | 管理者 | 評価者 | 被評価者 | 備考 |
|---|---|---|---|---|---|
| ログイン/認証 | ログイン | ○ | ○ | ○ | ー |
| ダッシュボード | 閲覧 | ○ | ○ | ○ | ロール別表示 |
| 初期設定ウィザード | 実行/編集 | ○ | × | × | 初期導入時のみ想定 |
| 等級・役職マスタ | 作成 | ○ | × | × | |
| 等級・役職マスタ | 編集 | ○ | × | × | |
| 等級・役職マスタ | 閲覧 | ○ | × | × | |
| 評価項目設定 | 作成/編集 | ○ | × | × | |
| 組織構造設定 | 作成/編集 | ○ | × | × | |
| 従業員登録(CSV/手入力) | 作成 | ○ | × | × | CSVインポート含む |
| 従業員登録(CSV/手入力) | 編集 | ○ | × | × | |
| 評価者割当 | 編集 | ○ | × | × | |
| 評価タスク一覧 | 閲覧 | ○ | ○ | ○ | 自身関連タスクにフィルタ |
| 自己評価 | 閲覧 | × | × | ○ | 自分のタスクのみ |
| 自己評価 | 編集 | × | × | ○ | 期内のみ |
| 自己評価 | 提出 | × | × | ○ | 提出後は編集不可 |
| 評価入力(評価者) | 閲覧 | △ | ○ | × | 管理者は監査目的の閲覧のみ |
| 評価入力(評価者) | 編集 | × | ○ | × | 担当割当対象のみ |
| 評価入力(評価者) | 提出 | × | ○ | × | 提出後は編集不可 |
| 評価進捗一覧 | 閲覧 | ○ | △ | × | 評価者は担当範囲のみ |
| 個人評価結果 | 閲覧 | △ | △ | ○ | 管理者/評価者は権限範囲のみ |
| プロフィール | 閲覧 | ○ | ○ | ○ | 自分の情報 |
| プロフィール | 編集 | ○ | ○ | ○ | 自分の情報 |
| パスワード変更 | 更新 | ○ | ○ | ○ | 自分のアカウント |
| 通知 | 閲覧 | ○ | ○ | ○ | |
| CSVエクスポート(従業員/組織) | 実行 | ○ | × | × | 個人情報保護の観点で限定 |
注記(△の解釈)
- 評価入力(評価者)・個人評価結果の「管理者の閲覧(△)」は、監査・問い合わせ対応・運用サポート目的での限定閲覧を想定(全件閲覧可否は運用方針に合わせて最終決定)。
- 評価進捗一覧の「評価者の閲覧(△)」は、担当する被評価者範囲に限定。
- 「提出」後のデータは原則ロック(再開は管理者の再オープン操作など、運用フロー要件次第)。
実装上の扱い(要点)
- フロントエンド(Next.js 14 App Router)
- ルートごとに
requiredRoleやpermissionKeyを定義し、ガードで遷移制御。 - UI要素(ボタン等)は許可された操作のみ表示/活性化。
- ルートごとに
- バックエンド(Laravel 12 / Sanctum)
- ミドルウェア/ポリシーでエンドポイントごとの認可を強制。
- クエリ段階でスコープ制限(例:評価者は担当被評価者のみ取得)。
例:権限キーの最小構成(たたき台)
roles:
- admin
- evaluator
- evaluee
permissions:
# 画面レベル
- dashboard.view
- setup.run
- master.grade.read
- master.grade.write
- org.structure.write
- employee.write
- assignment.write
- tasks.view
- self.eval.edit
- self.eval.submit
- reviewer.eval.edit
- reviewer.eval.submit
- progress.view
- result.view
- profile.edit
- notifications.view
- csv.export
roleBindings:
admin:
- '*'
- '!reviewer.eval.edit'
- '!reviewer.eval.submit'
- '!self.eval.edit'
- '!self.eval.submit'
evaluator:
- dashboard.view
- tasks.view
- reviewer.eval.edit
- reviewer.eval.submit
- progress.view
- result.view
- profile.edit
- notifications.view
evaluee:
- dashboard.view
- tasks.view
- self.eval.edit
- self.eval.submit
- result.view
- profile.edit
- notifications.view
テスト観点(抜粋)
- 認可ミドルウェアが未許可の操作をブロックすること。
- クエリでデータスコープが適切に絞られること(N+1/情報漏えい対策)。
- UIで未許可のボタン/リンクが非表示または非活性化であること。
- 「提出後ロック」など状態遷移の制約が一貫していること。
本マトリクスはMVP向けの初期案です。運用方針・法的要件・監査要件に応じて△の範囲やCSV出力範囲等を調整してください。