Skip to content

認証・権限モデル(RBAC)

ステータス: ドラフト(2026-04-15 起案) 対象: ロール定義と権限マトリクス。関連: usecases.md, api.md, data-model.md 注意: 本書はロジック側の正規仕様。画面は docs/screens/*.md で、API 強制は api.md §1.0 に従う。


1. 認証方式

  • メール+パスワード(bcrypt)+ NextAuth セッション(将来)
  • パスワード要件:最低12文字、英数混在、パスワードマネージャ想定
  • MFA:将来対応(OA/SU は必須、TA 推奨)
  • セッション有効期限:LR/TA/TM/EM/SA 7日、OA/SU 1日
  • リフレッシュ・再認証:重要操作(削除請求実行、ロール付与、監査エクスポート)前に再認証

2. テナント・組織モデル

  • Organization をテナント単位とする
  • 1 User が複数 RoleAssignment を持てる(送出し機関+受入企業の兼務など)
  • セッション内でアクティブテナントを明示的に指定。ロールを跨ぐ操作は OA の承認フローを経由
  • データアクセスは常に「アクティブテナント × ロール」で評価

3. ロール一覧と責務境界

略号:LR = learner, TA = teacher, OA = org_admin, TM = trainer, EM = employer, SA = sending_manager, SU = operator

ロールコード略号主要責務禁止/制限
学習者learnerLR自己の学習・進捗閲覧・同意管理他ユーザーデータ不可
講師teacherTA担当学習者の支援・試験・面談メモ削除/撤回対応・監査ログ・権限管理
組織管理者org_adminOA同意/削除/異議対応・ロール管理・監査目的外データ閲覧(業務要件の範囲に限定)
研修責任者trainerTM引継ぎ学習者の参照・補強ポイント特定編集・成績改変不可
企業採用employerEM公開同意済み候補者の要約閲覧・比較生ログ・個別回答は閲覧不可、改変不可
送出し機関Mgrsending_managerSAコホート運営・レポート生成・公開管理個別ログは OA 権限に昇格
運用operatorSU匿名化運用メトリクス閲覧・障害調査個別特定操作は不可

4. 権限マトリクス

凡例:✓ = 許可 / △ = 条件付き / ✗ = 禁止 / -(該当なし)

リソース / 操作learnerteacherorg_admintraineremployersending_manageroperator
自プロファイル 閲覧/編集
学習者一覧✗(自己のみ参照可)△ (担当)✓ (自組織)△ (引継)△ (配下)
学習者詳細・学習履歴(自分)✓(自分)------
学習者詳細・学習履歴(他者)△ (担当)✓ (自組織)△ (引継)△ (配下、OA 昇格時)
回答生ログ・視聴生ログ△ (担当)✓ (自組織)
単語習得率 (集計)自分のみ△ (担当)✓ (自組織)△ (引継)△ (要約)△ (配下)
一貫性ビュー(閲覧)自分のみ△ (OA有効時)✓ (自組織)△ (要約)
一貫性ビュー(機能ON/OFF)
試験成績 入力/編集✓ (担当)✓ (自組織)
カリキュラム編成✓ (担当クラス)△ (配下)
候補者レポート(要約)✓ (自組織)✓ (公開同意済)△ (配下)
候補者比較✓ (自組織)
お気に入り登録
候補者PDF出力✓ (監査ログ記録)
同意付与 / 撤回 (自分)
同意・撤回の受理・実行
削除請求 (自分)
削除請求の実行
異議申立 (自分)------
異議申立 対応
ロール付与 / 剥奪✓ (自組織)
監査ログ閲覧自操作履歴のみ✓ (自組織)自閲覧履歴のみ△ (匿名化済)
メトリクス/運用

5. 最小権限原則

  • デフォルト拒否:明示的に許可されていない組合せは 403
  • 権限昇格:必要時は OA による一時昇格(監査ログ必須)
  • 兼務ロール:同一ユーザーが複数ロールを持つ場合でも、現在のアクティブテナント/ロール内の許可に従う
  • 機能トグル(一貫性ビューなど):OA が組織単位で制御し、法務レビュー未了の組織では既定で OFF

6. 特別操作のガード

操作ガード
候補者 PDF 出力EM の閲覧権限 + 監査ログ記録 + 再認証
監査ログエクスポートOA + MFA + 再認証
ロール付与/剥奪OA + MFA + 再認証
一貫性ビュー 機能 ONOA + 法務レビュー完了フラグ必須
削除請求の実行OA + 二重確認 + 監査ログ

7. セッション・監査

  • セッション毎に session_id を発行し、すべての監査ログへ付与
  • IP・UA を監査ログに記録(プライバシーポリシーで明示)
  • 失効・ログアウト操作も監査対象

8. モック(M1)での扱い

  • M1 では実認証なし。URL クエリ ?role=learner|teacher|org_admin|trainer|employer|sending_manager|operator疑似切替
  • 画面は常にロールに沿った表示/非表示を行い、RBAC を視覚的に示す
  • モックデータは テナント境界を実装時と同じ方針で分離(他組織データが混入しないこと)

9. 未確定事項

  • MFA 実装方式(TOTP / WebAuthn)
  • OA の承認フローUI(兼務ロール切替時)
  • 越境移転を伴う場合の契約/同意条件との組合せ

10. 改訂履歴

  • 2026-04-15: 初版ドラフト作成

Internal — thriveJobs