公司中的每个工作都有一个角色来完成它。如果某个员工要做好自己的工作,他需要有特权(做某件事的权限)和许可(访问特定的资源并利用它们做特定的事情的权限)。早期计算机系统的设计者认识到,系统使用者的需求并不一样,并不是所有用户都应给予管理系统的权限。
早期的计算机系统有两个用户角色,分别是普通用户和管理员。早期的系统根据用户更适合哪个组(普通用户组和管理员组)来定义角色并赋予相应的权限。管理员(超级用户、Root用户等)被赋予特别的权限,可以访问比普通用户更多的计算机资源。例如,管理员能够添加用户、分配口令、访问系统文件和程序,以及重启计算机。普通用户能够登录系统,读取他自己的文件,修改它和执行程序。这种分组后来被扩展,增加了审计员的角色。审计员能够读取系统信息和其他人在系统中的活动信息,但是不能修改系统数据或执行管理员角色的其他功能。
随着系统的发展,用户角色更加细化了。例如,通过用户的安全许可来量化用户,并赋予相应的访问特定数据或运行某些程序的权限。用户的其他差别可能根据用户在数据库或其他应用系统中的角色而定。一般而言,角色由部门分配,如财务、人力资源、信息技术,以及销售部门。
一般来说,RBAC(Role-Based Authorization)把角色定义为组织中的一项工作职责。RBAC给角色而不是给单独的用户分配访问权。一般情况下,用户比角色多得多。用户与角色的关系是多对多的关系,角色与资源或系统对象的关系也是多对多的关系,如图3-7所示。
(www.daowen.com)
图3-7 RBAC系统中用户、角色和资源的关系
在基于角色的系统的最简单的例子中,用户被简单地添加到拥有特定的权限和特权的组中。其他基于角色的系统使用更加复杂的访问控制系统,包括某些只有得到操作系统的支持才能实现的访问控制系统。例如,在Bell-LaPadula安全模型中,数据资源被分成不同的层或域。每个域代表一种数据分类。没有特定的授权,数据不能从一个域移到另一个域。并且,用户必须有权访问域才能使用数据。在这种角色中,用户不能向低级的域中写数据(例如,从绝密级向秘密级写数据),也不能从比他们能访问的域高级的域中读数据(例如,被赋予访问公共域的用户,不能读取秘密级或机密级的域)。
Unix的基于角色的访问控制工具可用于将管理员权限委派给普通用户。这是通过定义角色账户,或者定义能够用于执行某些管理任务的账户实现的。角色账户无法用于登录,他们只能通过Su命令进行访问。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。