本文へ移動
hs-sql-agent
2.0.3
ドキュメント 2.0.3
ドキュメント 管理

権限

hs-sql-agent 2.0.2 の管理操作で使用する permission path と action による認可モデルを説明します。

Permission path /runtime/db-management や /auth/user など、保護対象の管理リソースを識別します。
Action view、create、edit、delete、export など、許可する操作を識別します。
ロールへの選択 ロールには、サーバーのテンプレート一覧に存在する permission/action の組み合わせだけを保存できます。

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-managementview
Database Management エントリの作成/runtime/db-managementcreate
セマンティックメタデータの編集/runtime/db-management/semanticedit
MCP キーの発行/管理/runtime/mcp-keys + 該当する action
ユーザーの参照/auth/userview
ロールの編集/auth/roleedit
監査の参照/runtime/auditview
監査のエクスポート/runtime/auditexport
セキュリティポリシーの編集/runtime/securityedit
外向き配信の再試行/runtime/operabilityedit

したがって、これらの操作では認証済みであるだけでは不十分です。必要な 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/フルコントロール用ロールが別の権限セットへ暗黙に再定義されることを防ぎます。

関連ガイド