基于角色的安全性
小结
致谢
附录 A:MsCorCfg.msc
简介
在传统的程序开发模式中,管理员通常将软件安装到本地磁盘的一个固定位置;当从这种模式转向支持动态下载和执行、甚至支持远程执行的环境时,安全性是要考虑的一个最重要的因素。为了支持这种模式,Microsoft .NET 框架提供了一个强健的安全系统,该系统能够限制代码在严格约束的、管理员定义的安全上下文中运行。本文研究了 .NET 框架中的一些基本安全性特性。
许多安全模型将安全性与用户和它们的组(或角色)关联起来。这就意味着,用户和代表这些用户运行的所有代码或者被允许对重要资源执行操作,或者不被允许执行操作。在大多数操作系统中,安全性都是按照这种模型构建的。.NET 框架提供了一种开发人员定义的安全模型,称为基于角色的安全性,它也是按照这种类似的结构运行的。基于角色的安全性的主要抽象是 Principals 和 Identity。此外,.NET 框架也在代码上提供了安全性,这种安全性称为代码访问安全性(也称为基于证据的安全性)。使用代码访问安全性,某个用户可以获得信任以访问某个资源,但是如果用户执行的代码不受信任,那么访问资源将会被拒绝。与基于特定用户的安全性对比,基于代码的安全性是允许安全性得以在可移动代码 (mobile code) 上体现的一个基本工具。可移动代码可以由任意数量的用户下载和执行,而这些用户在开发时都是不了解的。代码访问安全性主要集中于一些核心的抽象,它们是:证据、策略和权限。基于角色的安全性和代码访问安全性的安全抽象是用 .NET 框架类库中的类型来表示的,而且是用户可扩展的。这里有两点需要注意:以一致和连贯的方式向一些编程语言公开安全模型,以及保护和公开 .NET 框架类库中代表资源(使用这些资源可能会破坏安全性)的类型。
.NET 框架安全系统是在传统操作系统安全性的上层运行的。这种方式在操作系统安全性上又增加了一层更具表现力和可扩展的安全性。这两层安全性相互补充。(操作系统安全系统也可以将一些责任委托给托管代码的公共语言运行库安全系统,因为该运行库安全系统比传统的操作系统安全性粒度更细,可配置性也更强。)
本文提供了 .NET 框架安全性方面的概述,具体讲述基于角色的安全性、验证、代码访问安全性和堆栈审核方面的内容,并使用一些小型编程示例揭示一些概念。本文没有论及其他的运行库安全工具,如加密和独立存储。
顺便提一下,本文通常描述的是上面这些安全特性的默认行为。然而,.NET 框架安全系统具有极强的可配置性和可扩展性。这就是该系统的一个主要优点,但遗憾的是,在这篇概念性描述的文章中不能详细地对这一点进行讨论。
返回页首
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/