我可以修改应用清单并重新签名SharePoint .app文件吗?

时间:2015-05-27 16:17:34

标签: visual-studio-2012 sharepoint sharepoint-2013 manifest digital-signature

我正在使用高信任模型构建SharePoint 2013提供程序托管的应用程序。这允许客户将.app部署到他们的应用程序目录,并使其可供所有SharePoint站点使用。应用程序的提供程序托管部分在IIS框(集群)中运行,客户还使用安装说明和自动化工具部署(内部部署)。

.app文件结构包括应用程序清单 - 它指定提供程序托管部分所在的精确端点,还指定加载项可以调用的列入白名单的端点。这些都是通过在“部署应用程序”中的Visual Studio中的URL编辑字段中输入URL,主机名和端口号来指定的。在.app文件构建和数字签名之前的表单。

对于内部IT人员构建的单个应用程序,如果组织足够小,这似乎工作得很好......但我真的希望能够将此解决方案分发给多个客户。为了做到这一点,我将不得不向客户询问他们各自的端点,将它们输入到我的构建工具中,并为它们重建.app。这似乎并不合适......没有客户想先与开发人员交谈并拥有一个定制的应用程序。他们为什么要这样?没有代码正在改变......

调查.app文件格式后,事实证明它实际上只是一个简单的.zip文件 - 而且里面(瞧!)有应用程序清单!不幸的是,如果您编辑应用程序清单并重新压缩文件,则数字签名将被破坏,并且.app不再有效。 (GRRRR ...)

我想要做的只是重新配置应用清单以匹配部署它的环境。这可以在设置/安装期间以编程方式发生,或者甚至可能在下载之前发生,但不能是涉及开发人员键入visual studio并按下Rebuild的过程。这简直不会扩大规模。

是否存在可以帮助解决此问题的工具?如果没有,有没有人有编程方式签署.app文件的经验?我打算以任何可能的方式给这只猫上皮。

2 个答案:

答案 0 :(得分:0)

这是一个疯狂的想法,甚至可能无法实现。

  1. 创建web ui,客户端进入其端点。

  2. 让内部流程调用MSBUILD / TFS将应用程序打包到端点

    • 使用pre-build powershell更改应用清单
  3. 然后通过电子邮件或下载提供应用程序?

  4. http://www.sharepointconfig.com/2013/10/building-sharepoint-2013-apps-with-tfs-2013/

答案 1 :(得分:0)

这更像是一种解决方法,而不是一个真正的答案 - 但是可行:

对于高可信赖SharePoint 2013应用程序的内部部署 - 使用“已知端点”构建应用程序 - 基本上可以在本地部署的硬编码端点。然后指示客户使用DNS记录或hosts文件条目重定向这些端点。此外,客户端需要生成由其自己的受信任根签名的本地通配符证书,以满足SharePoint 2013应用程序模型对appdomain和服务器到服务器通信的要求。

这绝不是理想的,但对于某些环境,它可能是最实用的方法。这也允许将IIS WebApp扩展到客户站点,它实际上属于高信任度的应用程序。

这种方法避免了自动化构建工具的需要,也避免了为每个客户构建单独的实例 - 这两者都有些不受欢迎。出于这些原因,它可能会稍微降低成本 - 但它也会给客户带来一些责任。即 - 为拓扑中的计算机本地硬编码DNS条目。