客户端身份验证

身份验证是确定调用方真实存在(验证标识声明的真实性)的过程。 通常,服务器和客户端都可以执行此操作,相互进行身份验证。 但是,对于授权客户端(与基于角色的安全性一样)执行身份验证的服务器应用程序尤其重要。 对客户端进行身份验证是有意义的授权策略的先决条件。 可以执行所需的所有角色检查,但是如果不确定所检查的客户端标识是否真实,则应用程序基本上通过认可系统来确定。

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

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

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

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

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

注意

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

 

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

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

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

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

客户端模拟和委托

库应用程序安全性

多层应用程序安全性

编程组件安全性

基于角色的安全管理

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