アクセス管理とかなんとか

自分用思いつきメモ

思いつきを忘れないうちに殴り書き。

未だ練りきれていないと言い訳をしつつ、適当すぎるのは(俺という人間の)仕様です。


前提

各アイテムは次の3層構造を基にアクセス権を定義する。

  • アイテム
    • アクセス権の管理対象となる個々の情報を所有するオブジェクト→ユーザとか。
  • グループ
    • アイテムをまとめたもの
  • グループレイヤー
    • グループをまとめたもの


0:デフォルト参照条件

 
 デフォルトでは参照不可


1:グループレイヤーの定義

 グループをまとめたグループのレイヤーに関する属性を定義、各属性は順序性、排他性、階層性の3種類?

  • 順序性
    • 同一レイヤー内の各グループ間には順序関係が存在。偉いとか偉くないとかそんな関係
  • 排他性
    • 同一レイヤー内の各グループは排他関係をもつ。各アイテムは同一レイヤー内の他のグループに所属できない。2股禁止。
  • 階層性
    • 同一レイヤー内の各グループは階層関係の構造をもつ。階層性がないレイヤーは1階層のグループ構造(並列)。


2:グループ作成

 各グループレイヤー内に個々のアイテムをまとめるグループを作成。各グループ内のアイテムは相互参照可能になる。なお参照属性として読み込み、書き込み、編集を定義。(読み込みは必須にした方が良いかしら?)

  • 読み込み
    • 参照先グループの各アイテムの情報を読む事ができる
  • 書き込み
    • 参照先グループの各アイテムの情報に項目の新規追加する事ができる
  • 編集
    • 参照先グループの各アイテムの情報の項目を修正、削除することができる


3:グループ間関係性の定義

 各グループ間の参照関係性を定義。方向性は一方行のみ(A→Bのみで、A⇔Bはない)。参照属性として読み込み、書き込み、編集を定義。


4:グループ内権限の作成

 グループ内にグループ管理の権限を作成、権限は下記の通り

  • モデレータ
    • グループに所属するアイテム、グループ内の参照属性を変更する事ができる、グループに所属しなくても可
  • メンバー
    • グループに所属するアイテム


5:グループにアイテムを所属

 
 4で作成した権限に応じて各アイテムをグループに所属させる。


6:アクセス権の取得

 選択的に重ねた各グループレイヤーの射影からアクセス権を抽出。どのグループレイヤーを使用するかは、そのときに応じて任意に選択。各グループレイヤー内のグループ関係性は和で定義。

 なお、アクセス権として出力されるのはアイテム対アイテムの関係性。INPUT(アイテム), OUTPUT(複数アイテム)みたいな感じ


。。。と一通り殴り書いてみて

まだまだ穴だらけなんで、じっくり考えないとなぁ。。。精進します。


各機能ごとのアクセス権の定義とかはどうしたらよかんべ。。。