本主题概述如何使用受信任的应用程序部署技术部署具有提升权限的 ClickOnce 应用程序。
Trusted Application Deployment(ClickOnce 部署技术的一部分)使任何规模的组织能够更轻松地以更安全、更安全的方式向托管应用程序授予其他权限,而无需用户提示。 借助受信任的应用程序部署,组织只需将客户端计算机配置为具有受信任的发布者列表,这些发布者是使用 Authenticode 证书标识的。 此后,由其中一个受信任的发布者签名的任何 ClickOnce 应用程序都会收到更高级别的信任。
注释
受信任的应用程序部署需要用户计算机的一次性配置。 在托管桌面环境中,可以使用全局策略执行此配置。 如果这不是应用程序所需的,请改用权限提升。 有关详细信息,请参阅 保护 ClickOnce 应用程序。
受信任的应用程序部署基础知识
下表显示了受信任应用程序部署中涉及的对象和角色。
| 对象或角色 | Description |
|---|---|
| 管理员 | 负责更新和维护客户端计算机的组织实体 |
| 信任管理器 | 公共语言运行时(CLR)中的子系统负责强制实施客户端应用程序安全性。 |
| 发布服务器 | 编写和维护应用程序的实体。 |
| 部署者 | 打包应用程序并将其分发给用户的实体。 |
| 证书 | 由公钥和私钥组成的加密签名;通常由证书颁发机构(CA)颁发,可以保证其真实性。 |
| 验证码证书 | 具有嵌入元数据的证书,其中介绍了可以使用证书的用途等。 |
| 证书颁发机构 | 一个负责验证发布者身份并颁发包含发布者元数据的证书的组织。 |
| 根权限 | 授权其他证书颁发机构颁发证书的证书颁发机构。 |
| 密钥容器 | Microsoft Windows 中用于存储证书的逻辑存储空间。 |
| 受信任的发布者 | 一个发布者,其Authenticode证书已被添加到客户端计算机上的证书信任列表(CTL)中。 |
在较大的组织中,发布者和部署者通常是两个单独的实体:
发布者是创建 ClickOnce 应用程序的组。
部署者是将 ClickOnce 应用程序分发给企业企业台式计算机的组,通常是信息技术(IT)部门。
必须按照以下步骤来利用受信任的应用程序部署:
获取发布者的证书。
将发布者添加到所有计算机的客户端上的受信任发布者存储库。
创建 ClickOnce 应用程序。
使用发布者的证书对部署清单进行签名。
将应用程序部署发布到客户端计算机。
获取发布者的证书
数字证书是Microsoft验证码身份验证和安全系统的核心组件。 验证码是 Windows作系统的标准部分。 所有 ClickOnce 应用程序都必须使用数字证书进行签名,无论它们是否参与受信任的应用程序部署。 有关 Authenticode 如何与 ClickOnce 配合使用的完整说明,请参阅 ClickOnce 和 Authenticode。
将发布者添加到受信任的发布者存储区
要使 ClickOnce 应用程序获得更高的信任级别,必须将证书作为受信任的发布者添加到运行该应用程序的每个客户端计算机。 要完成此任务,只需进行一次性配置。 完成后,您可以部署任意数量的使用发布者证书签名的 ClickOnce 应用程序,它们都将以高信任方式运行。
如果要在托管桌面环境中部署应用程序,例如运行 Windows 操作系统的企业内网,可以通过使用组策略创建新的证书信任列表(CTL),将受信任的发布者添加到客户端的存储中。 有关详细信息,请参阅 为组策略对象创建证书信任列表。
如果不在托管桌面环境中部署应用程序,可以使用以下选项将证书添加到受信任的发布者存储:
命名空间 System.Security.Cryptography 。
CertMgr.exe,随 Windows SDK 一起安装。 有关详细信息,请参阅 Certmgr.exe(证书管理器工具)。
创建 ClickOnce 应用程序
ClickOnce 应用程序是一个 .NET Framework 客户端应用程序,与描述应用程序和提供安装参数的清单文件组合在一起。 可以在 Visual Studio 中使用 Publish 命令将程序转换为 ClickOnce 应用程序。 或者,可以使用 Windows 软件开发工具包(SDK)附带的工具生成 ClickOnce 部署所需的所有文件。 有关 ClickOnce 部署的详细步骤,请参阅 演练:手动部署 ClickOnce 应用程序。
受信任的应用程序部署特定于 ClickOnce,只能与 ClickOnce 应用程序一起使用。
对部署进行签名
获取证书后,必须使用它对部署进行签名。 如果使用 Visual Studio 发布向导部署应用程序,则如果未自行指定证书,向导将自动生成测试证书。 但是,还可以使用 Visual Studio 项目设计器窗口提供 CA 提供的证书。 另请参阅 如何:使用发布向导发布 ClickOnce 应用程序。
注意
不建议使用测试证书部署应用程序。
还可以使用 Mage.exe 或 MageUI.exe SDK 工具对应用程序进行签名。 有关详细信息,请参阅 演练:手动部署 ClickOnce 应用程序。 有关与部署签名相关的命令行选项的完整列表,请参阅 Mage.exe(清单生成和编辑工具)。
发布应用程序
签署 ClickOnce 清单后,应用程序即可发布到安装位置。 安装位置可以是 Web 服务器、文件共享或本地磁盘。 当客户端首次访问部署清单时,信任管理器必须选择 ClickOnce 应用程序是否已获得授权,或者是否由已安装的受信任发布者在更高级别的信任下运行。 信任管理器通过将用于对部署进行签名的证书与存储在客户端受信任发布者存储中的证书进行比较来做出此选择。 如果信任管理器找到匹配项,则应用程序以高信任运行。
受信任的应用程序部署和权限提升
如果当前发布者不是受信任的发布者,信任管理器将使用权限提升来查询用户,了解他或她是否要授予应用程序提升的权限。 但是,如果管理员禁用了权限提升,则应用程序无法获取运行的权限。 应用程序不会运行,不会向用户显示通知。 有关权限提升的详细信息,请参阅 保护 ClickOnce 应用程序。
受信任的应用程序部署的限制
可以使用受信任的应用程序部署向通过 Web 部署或通过企业文件共享部署的 ClickOnce 应用程序授予提升的信任。 不必对 CD 上分发的 ClickOnce 应用程序使用受信任的应用程序部署,因为默认情况下,这些应用程序被授予完全信任。