COM+ 安全概念

COM+ 提供了多个安全功能,可用于帮助保护 COM+ 应用程序,从以管理方式配置的服务到可在代码中调用的 API。

如果可能,对于 COM+ 应用程序,最好使用自动安全性,例如基于角色的声明性安全性和身份验证,而不是在组件中配置安全性。 使用自动安全性可以更轻松地编写和维护组件,更轻松地在整个应用程序中设计安全性,并且由于以管理方式进行了配置,因此更易于修改应用程序的安全策略。 利用这些自动安全性服务,您可从组件中排除所有与安全相关的功能。 当可以打开服务并适当配置服务时,COM+ 将处理强制实施指定的安全策略的详细信息。

但是,当 COM+ 中的自动安全服务不精确执行所需的操作时,可以扩展它们,利用在 COM+提供的自动安全平台。 如果选择不使用自动安全性,或想要使用它但需要利用它来满足应用程序的安全要求,则可以使用以下选项以编程方式配置安全性:

  • 基于角色的编程安全性(例如,角色检查,在为应用程序启用基于角色的安全性时可用。
  • 模拟 - 适用于想要使用客户端的标识来访问受保护资源的情况。
  • 基于安全调用上下文信息的审核功能 - 在启用基于角色的安全性时也可用。

用于帮助保护给定应用程序的机制将取决于该应用程序的特定要求。 某些安全选项可能会影响编写组件的方式,有些选项可能会显著影响应用程序的设计。 在决定如何为应用程序实施安全策略之前,应考虑其整体设计(性能要求、数据访问、物理设计)的安全要求,并选择最适合的安全功能组合。 有关实现编程安全性的详细信息,请参阅编程组件安全性

此处提供了 COM+ 安全类别、功能和问题的简要说明,并提供了本部分中主题的链接,其中详细介绍了每个重要领域。

注意

虽然本部分未讨论,但排队组件还存在与哪些安全功能可用的特定问题。 有关详细信息,请参阅排队组件安全性开发排队组件

 

基于角色的安全性

基于角色的安全性是 COM+ 应用程序安全性的核心功能。 使用角色,可以采用管理方式为应用程序构造授权策略,并根据需要选择(如有必要)哪些用户可以访问哪些资源。 此外,如果应用程序需要精细的访问控制,则角色提供了一个框架,用于在代码中强制实施安全检查。

基于角色的安全性建立在一种通用机制之上,该机制使您能够检索有关组件调用链中所有上游调用方的安全信息。 如果希望进行详细的审核和日志记录,此功能特别有用。 有关 COM+提供的审核功能的说明,请参阅访问安全调用上下文信息

有关使用基于角色的安全和管理问题的说明,请参阅基于角色的安全性管理

客户端身份验证

在授权客户端能够访问资源之前,必须确信它们是它们所说的资源。 若要启用此身份验证,COM+ 提供身份验证服务。 虽然 COM 和 Microsoft Windows 实际上提供了这些服务,但 COM+ 应用程序允许简单地在管理上启用身份验证服务,使其在对应用程序透明的情况下工作。 有关身份验证服务的说明,请参阅客户端身份验证

客户端模拟和委托

在某些情况下,应用程序需要使用客户端标识代表客户端完成工作,例如,访问要对原始客户端进行身份验证的数据库时。 这要求应用程序模拟客户端。 COM+ 提供用于启用各种模拟级别的设施。 模拟可采用管理方式配置,但还必须支持使用应用程序组件代码进行模拟。 有关模拟及其使用问题的说明,请参阅客户端模拟和委托

在 COM+ 中使用软件限制策略

软件限制策略提供了一种在受约束的环境中运行不受信任的代码(因此可能有害)的方法,以便它不会滥用用户的特权。 它通过将信任级别分配给用户可以运行的文件来达到此目的。 例如,某些系统文件可以完全信任,并授予对用户特权的无限制访问权限,而从 Internet 下载的文件可能完全不受信任,因此只能在不允许使用任何安全敏感用户特权的受限环境中运行。

系统范围软件限制策略通过本地安全策略管理工具进行控制,使管理员能够为单个文件配置信任级别。 但是,所有 COM+ 服务器应用程序都在 dllhost.exe 文件中运行。 因此,COM+ 提供了一种方法来为每个服务器应用程序指定软件限制策略,以便它们不需要依赖于 dllhost.exe 文件的限制策略。 有关如何在 COM+ 中使用软件限制策略的讨论,请参阅在 COM+ 中使用软件限制策略

库应用程序安全性

库应用程序具有特殊的安全注意事项。 由于这些应用程序在客户端的进程中运行,因此受托管进程强制实施的安全影响,同时无法控制进程级别安全性。 有关库应用程序需要考虑的因素的说明,请参阅库应用程序安全性

多层应用程序安全性

COM+ 应用程序通常是中间层应用程序;也就是说,它们在客户端和后端资源(如数据库)之间移动信息。 在确定应强制实施安全性的位置和程度方面,可能会选择困难。 安全性本质上涉及性能权衡。 当必须在数据层和中间层强制实施安全检查时,会出现其中一些最严重的情况。 有关要考虑的问题的讨论,请参阅多层应用程序安全性

客户端身份验证

客户端模拟和委托

COM+ 安全性任务

库应用程序安全性

多层应用程序安全性

编程组件安全性

基于角色的安全管理

在 COM+ 中使用软件限制策略