0 / 4
NIST RBACの段階(NIST RBAC Levels)
ロールベースアクセス制御(RBAC)は、権限を役割に割り当て、ユーザーをその役割に割り当てることで、ユーザーが役割を通じて権限を得るようにする方式である。人が変わっても権限を一つずつ直さず、役割だけを移せばよい。NISTが2000年に出した論文は、これを四つの段階に分ける。いちばん単純なFlatを土台にして、その上に段階ごとに新しい要件が一つずつ加わる。
例:銀行の支店の職員が役割を通じて権限を得る様子を、Flatから始めて段階ごとに新しい要件を一つずつ加えていく。
1 / 4
Flat RBAC
ユーザーを役割に割り当て、権限も役割に割り当てる。ユーザーは役割を通じて権限を得る。どちらの割り当ても多対多なので、職員一人が複数の役割を持ってその権限を合わせて使え、権限一つが複数の役割に入ることもある。図では職員Aは役割が二つで、顧客閲覧の権限は二つの役割に入っている。ユーザーが持つ役割も、役割を持つユーザーも照会できなければならない。
2 / 4
Hierarchical RBAC
役割どうしに上下関係を置く。支店長は窓口担当の上位の役割である。上位の役割が下位の役割の権限を得るこの関係を一般に継承と呼び、継承で見れば支店長は入金処理の権限を別に割り当てられなくても使える。ただし、継承とするか、上位の役割が下位の役割を自分で有効にする必要があるとするかは、NISTのモデルでは決めていない。循環さえなければどんな形でもよいものを一般階層、木のような単純な形に限ったものを制限階層と呼び、NISTは両方を認める。
3 / 4
Constrained RBAC
一人で業務の全体を担えないように分けることを職務分離(SOD、Separation of Duty)という。融資の受付と承認を一人がすべて行うと、一人で不正を働ける。そこで融資担当と支店長は一人が兼任できないように定める。融資担当である職員Aに支店長を割り当てようとする試みは拒否される。割り当てるときに防げば静的方式、二つの役割を両方割り当てることは認めつつ、接続して働く間に同時に有効にできないようにすれば動的方式である。NISTのモデルはどちらを使うか決めておらず、図は静的方式の例である。
4 / 4
Symmetric RBAC
ユーザーと役割の間の照会は第1段階ですでに求められている。ここでは役割と権限の間も照会できなければならない。顧客閲覧の権限を持つ役割も探せなければならず、逆に一つの役割が持つ権限も探せなければならない。性能もユーザー側の照会と同程度でなければならないが、規模の大きい分散システムでは実装が難しく、最後の段階に回した。
参考:この論文は付録で、ConstrainedとSymmetricを順序のない独立した機能として扱うほうが望ましいとも述べている。2004年のANSI標準は、段階ではなくCore、Hierarchical、SSD(静的職務分離)、DSD(動的職務分離)の四つの独立した構成要素に分けている。必須なのはCoreだけで、権限側からの照会はCoreの任意機能である。RBAC0〜3はまた別の分類である。