ロールベースアクセス制御
制限を置くことで、相反するロールを1人の個人が持つことがないようにする。つまり、職務の適切な分離を達成する。例えば、1人の個人がログインアカウントの作成とアカウント作成のための手続きが可能になっているのは適切ではない。
集合論的記法を使うと、次のようになる。
PA ⊆ P × R - 多対多のパーミッションとロールの割り当て関係
SA ⊆ S × R - 多対多の個人とロールの割り当て関係
RH ⊆ R × R
x ≥ y と書いた場合、x が y のパーミッションを継承することを意味する。
ユーザー権限の管理をRBACで行うことは、ベストプラクティスとして単一システムやアプリケーションでは広く使われている手法である。マイクロソフトの Active Directory、SELinux、FreeBSD、Solaris、Oracle DBMS、PostgreSQL 8.1、SAP R/3 などで RBAC が何らかの形で実装されている。
異機種混在型のIT基盤のある大きな組織では、ロールを階層化しないとRBACを全体で運用することは非常に複雑で困難となる。このような大規模な権限設定についての戦略は、Beyond Roles: A Practical Approach to Enterprise User Provisioning で論じられている。RBAC の企業全体への展開の問題に対処するため、NISTモデルを拡張した新たなシステムもある。このテーマの研究論文はいくつかあり、商用システムでこれを実装した Beyond NIST がある。