客户端身份验证

身份验证是确定调用方实际上是他们所说的人- 验证标识声明的真实性的过程。 一般情况下,服务器和客户端都可以执行此作,每个服务器和客户端都对另一个进行身份验证。 但是,对于授权客户端(与基于角色的安全性一样)执行身份验证的服务器应用程序尤其重要。 对客户端进行身份验证是有意义的授权策略的先决条件。 可以执行所需的所有角色检查,但如果不知道要检查的客户端标识是真实的,则应用程序基本上依赖于荣誉系统。

对于 COM+ 应用程序,可以通过管理方式启用和配置身份验证,之后它可以以透明方式对应用程序运行。 使用组件服务管理工具或管理功能以管理方式指定身份验证级别。 有关设置身份验证的详细信息,请参阅 为服务器应用程序 设置身份验证级别,为库应用程序启用身份验证。

设置身份验证意味着不同的内容,具体取决于应用程序的类型是服务器应用程序还是库应用程序。

设置 COM+ 服务器应用程序的身份验证

对于 COM+ 服务器应用程序,可以设置一个身份验证级别,用于确定客户端在应用程序内调用组件时将如何执行身份验证。 可以从提供不同程度的安全性的多个身份验证级别中进行选择,从无身份验证到每个数据包和所有方法调用参数的加密。 有关详细信息,请参阅 为服务器应用程序设置身份验证级别。

但是,更高的安全性会带来一些性能成本,但在配置应用程序时应考虑这些成本。 COM+ 将在客户端和服务器指定的身份验证级别之间进行协商。 执行此协商的方式具有使你能够单独从服务器端管理控制身份验证的好处。 有关详细信息,请参阅身份验证级别 协商。

注意

绝不应在 COM+ 应用程序中使用 CoInitializeSecurity 以编程方式指定身份验证级别。 COM+ 调用 CoInitializeSecurity,每个进程只能调用一次。

 

基础身份验证服务由 COM 提供,Microsoft Windows 提供。 在身份验证服务中,第三方为用户提供证书,证明用户的标识真实性。 这种认证与认证机构一样可信,而且,这与驾驶执照或护照作为认证文件的方式大致相同,这取决于颁发者的权威。 有关身份验证服务的更多详细信息,请参阅 COM 文档中 COM 和安全包

设置 COM+ 库应用程序的身份验证

对于 COM+ 库应用程序,可以启用或禁用身份验证,以确定应用程序是否受托管进程执行的身份验证的约束。 尽管 COM+ 库应用程序的身份验证在很大程度上由托管进程控制,但你可以配置库应用程序,使其不参与身份验证。 也就是说,对应用程序的调用可以进行身份验证或未经身份验证,在后一种情况下,客户端的“身份验证”始终成功。 有关详细信息,请参阅 为库应用程序启用身份验证。

此外,可能需要或要求在数据库或某些下游应用程序中对客户端进行身份验证 - 仅对 COM+ 应用程序的客户端进行身份验证可能是不够的。 如果是这种情况,则需要模拟客户端,以便客户端的标识在下游传播。 有关模拟的详细信息,请参阅 客户端模拟和委派。 有关确定是否在数据层执行身份验证所涉及的问题的讨论,请参阅 多层应用程序安全性

客户端模拟和委派

库应用程序安全性

多层应用程序安全性

编程组件安全性

Role-Based 安全管理

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