権限を1人ずつ付けていると、異動のたびに平均2.1回手を入れることになります。役割経由なら1.0回です。
ただし役割の数は条件を足すごとに増えます。部署と職位だけなら32個ですが、軸を5つにすると960個になりました。
利用者200人の組織で数えました。手数は減りますが、役割の数は条件を足すたびに掛け算で増えます。
RBACで何が減って何が増えるのかを、実際に走らせて数えました。用意したのは利用者200人・部署8・職位4・機能10の組織です。
権限は部署と職位から決まるようにしました。経理課なら請求と支払、法務課なら契約といった形です。
const roleKey = (u) => `${u.dept}/${u.rank}`;
const roles = new Map();
for (const u of users) {
const k = roleKey(u);
if (!roles.has(k)) roles.set(k, should(u));
}
持たせ方 管理する項目の数 内訳 利用者ごとに付ける 698件 利用者×機能の付与 役割にまとめる 312件 役割の定義 112件 + 割り当て 200件 役割の数: 32個(部署 8 × 職位 4 の組のうち実在するもの) 持たせ方 手を入れた回数 1件あたり 利用者ごとに付ける 42回 2.1回 役割にまとめる 20回 1.0回
上の表を見てください。管理する項目は698件から312件に減りました。
本当に効くのは異動のときです。個別付与では1件あたり2.1回手を入れています。外す権限と足す権限を1つずつ触るためです。
役割経由なら1.0回です。割り当てを1つ差し替えるだけで、権限は自動的に入れ替わります。
区分の軸 役割の数 部署のみ 8個 部署 × 職位 32個 部署 × 職位 × 勤務地3 96個 部署 × 職位 × 勤務地3 × 雇用形態2 192個 部署 × 職位 × 勤務地3 × 雇用形態2 × 案件5 960個
軸を1つ足すたびに、役割の数は掛け算で増えます。5つの軸で960個になりました。
利用者は200人です。役割のほうが人数より多くなると、まとめる意味がなくなります。
軸を足すごとに、役割は掛け算で増える。
Each user is assigned one or more roles, and each role is assigned one or more privileges原文NIST「Role Based Access Control」 この内容の有効期限2027-02-18
権限を役割に付け、利用者には役割を割り当てます。人と権限の間に1つ層を挟む形です。
RBACは、権限を役割に付けて、利用者には役割を割り当てる仕組みです。日本語では役割にもとづく制御と呼ばれます。
NISTの説明では、それぞれの役割に、その役割の利用者に許される1つ以上の権限が割り当てられるとされています。
利用者の側も同じです。各利用者に1つ以上の役割が割り当てられ、各役割に1つ以上の権限が割り当てられるという2段の構えになります。
4番目が実務では効きます。個別に付けていると、同じ立場の人でも持っている権限が違うという状態が生まれます。
NISTは、RBACでの管理は、実行されなければならない操作を見極めることから成るとしています。役割の名前より先に、操作の洗い出しです。
前の節でも機能を10個に絞ってから役割を作りました。操作が定まらないと、役割も決まりません。
組織の形と権限の対応はこちらで置いた値です。実際の組織では例外がもっと多く、役割に収まらない人が出ます。ここで見せているのは、管理する項目の数と変更の手数がどう動くかという関係です。属性で判定する方式はABACの記事で扱います。
each role is assigned one or more privileges that are permitted to users in that role原文NIST「Role Based Access Control」 この内容の有効期限2027-02-18
役割が増えすぎると、まとめる利点が消えます。例外を役割で表そうとすると、この形になります。
RBACがうまくいかなくなるのは、役割の数が人数に近づいたときです。前の節では960個まで増えました。
増える原因は例外を役割で表そうとすることです。「この案件だけ見られる営業一課の主任」という役割を作ると、案件の数だけ役割が増えます。
前の節の表がその形です。案件という軸を1つ足しただけで、192個から960個になりました。
判断の目安は単純です。役割の数が利用者数に近づいたら、まとめられていません。
前の節では利用者200人に対して役割32個でした。1つの役割を平均6人が共有しています。ここが960個なら、ほとんどの役割が1人のためのものになります。
役割どうしの関係も決められます。NISTは、互いに排他的な役割や役割の階層がもたらす複雑さは、RBACの側で扱われるとしています。
申請と承認を同じ人が持たないようにする、といった決まりです。詳しくは職務分離の記事で扱います。
役割の数が人数に近づいたら、まとめられていない。
Complexities introduced by mutually exclusive roles or role hierarchies are handled by the RBAC原文NIST「Role Based Access Control」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る