認可とアクセス制御 (Authorization)
ステータス
担当者: Tech lead · ステータス: draft · 正式な情報源: flezi.app.api.backend/app/authz/matrix.py、app/authz/scopes.py
Flezi Galaxy は、SRS v1.1 §2.3 の仕様に基づき、scope と組み合わせたロールベースアクセス制御 (Role-Based Access Control with Scoping - Scoped RBAC) を適用します。
5 つのユーザーロール (User Roles)
| ロール | 権限の範囲 |
|---|---|
SYSTEM_ADMIN | システム全体の設定、組織の作成、共通インフラストラクチャの管理を行う全権限。 |
ORG_ADMIN | 1 つの Organization の管理者: Workspace、メンバー、billing、共通ポリシーを管理します。 |
WORKSPACE_ADMIN | 1 つの Workspace の管理者: メンバーを管理し、Workspace 内でリソースを共有します。 |
WORKSPACE_MEMBER | 通常のメンバー: Chat を使用し、個人 Agent を作成し、共有されたリソースにアクセスします。 |
AI_BUILDER | 高度なメンバー: Member の全権限に加え、AGT Policy YAML の編集と publish の権限を持ちます。 |
Scope Context
すべてのデータ query 操作は、dependency require_permission(uc_id) と class ScopeContext によって厳格にチェックされます。
- ユーザーは、自分がメンバーである Workspace に属するデータだけを閲覧・編集できます。
- Organization A のユーザーが Organization B のリソースにアクセスしたり、表示したりすることはできません (Multi-tenant Isolation)。
現在の対策
- 59 Use Cases の権限マトリクスを test suite
tests/authz/test_matrix.pyで 100% 自動テストしています。 - すべての機密性の高い endpoint は、業務処理関数に入る前に権限チェック dependency でラップされています。
証跡 (file / config)
flezi.app.api.backend/app/authz/matrix.pyflezi.app.api.backend/app/authz/dependencies.pyflezi.app.api.backend/tests/authz/test_matrix.py
制限事項とロードマップ
- 各エンタープライズ顧客の固有要件に合わせて権限をカスタマイズできる Custom Roles の作成機能を追加します。