2.0.2 の管理認可では canonical permission path + action code を使用します。canonical path は安定した認可リソース識別子であり、Admin UI の route や HTTP mount path ではありません。たとえば /runtime/db-management と /auth/role は、ナビゲーションや controller URL の構成が変わっても同じ認可 ID を表します。
同じ canonical identifier は、相互排他的な 2 つの管理認可モードで使われます。組み込み ID を使う場合は HsSqlAgent の member / role が permission/action template を解決します。host authorization を使う場合は、HsSqlAgent が要求された canonical permission key を HsSqlAgentPermissionResource.Permissions でホストへ渡し、ホスト側が自身の policy model に対応付けます。特記がない限り、以下の role / template の説明は 組み込み ID モード を対象とします。
ランタイムでの例
| 保護される操作 | 必要な組み合わせ |
|---|---|
| Database Management の参照 | /runtime/db-management → view |
| Database Management エントリの作成 | /runtime/db-management → create |
| セマンティックメタデータの編集 | /runtime/db-management/semantic → edit |
| MCP キーの発行/管理 | /runtime/mcp-keys + 該当する action |
| ユーザーの参照 | /auth/user → view |
| ロールの編集 | /auth/role → edit |
| 監査の参照 | /runtime/audit → view |
| 監査のエクスポート | /runtime/audit → export |
| セキュリティポリシーの編集 | /runtime/security → edit |
| 外向き配信の再試行 | /runtime/operability → edit |
したがって、これらの操作では認証済みであるだけでは不十分です。必要な path/action の組み合わせが、メンバーに割り当てられたロールから解決される必要があります。
Permission-action テンプレートが基準です
Role API は permission-action-templates の一覧を公開します。各テンプレートには次が含まれます。
- permission の ID、名前、path
- action の ID、code、名前
ロールの payload は { PermissionId, ActionId } の組み合わせとして選択内容を送信します。ロールサービスは重複を正規化し、テンプレート一覧に存在する組み合わせだけを保存します。
割り当て単位はロールです
メンバーにはロールを割り当て、ロールが permission/action の選択内容を持ちます。これによりユーザーのライフサイクルと、再利用可能なアクセスポリシーを分離できます。
Member
└─ Role(s)
└─ Permission path + Action
1 人のメンバーが複数ロールを持つこともできます。実効的な管理アクセス権は、割り当てられたロールが持つ権限サーフェスの合算です。
認可変更時は古い状態を無効化します
ロール編集はセキュリティ上重要な変更です。ロールの権限が変わると、ロールサービスは影響を受けるメンバーを特定し、security version を増加させ、auth runtime-state cache barrier を通して変更を実行します。
これは、以前に認証されたセッションがロール定義変更後も古い認可を保持し続けることを防ぐためです。
保護された SuperUser ロール
SuperUser は 2.0.2 の組み込み保護ロールです。通常のロール管理から編集・削除できません。これにより、bootstrap/フルコントロール用ロールが別の権限セットへ暗黙に再定義されることを防ぎます。
関連ガイド
- メンバーとロール — メンバーのライフサイクルとロールのガードレール
- データベース管理 — DB とセマンティック権限の例
- MCP キー — MCP 認証情報は管理ロールとは別の認可境界です
- セキュリティポリシー — 独自の管理権限で操作するランタイム SQL/レート/同時実行ポリシー