高信任,S2S配置中SharePoint 2013应用程序生命周期事件接收器标注的身份验证选项

Sea*_*ter 7 authentication configuration sharepoint-2013

我有一个使用标准Visual Studio 2013 PHA模板编写的内部部署,高信任提供商托管应用程序(PHA).我已经按照Kirk Evans在他的博客中提供的High-Trust/S2S应用程序的配置步骤:

http://blogs.msdn.com/b/kaevans/archive/2012/11/27/creating-high-trust-sharepoint-apps-with-microsoft-office-developer-tools-for-visual-studio-2012-预览2.aspx

在我添加一项服务来托管AppInstalled事件的事件接收器之前,一切都按预期工作,而不需要太多修改.当我尝试在启用事件的情况下安装应用程序时,我从SharePoint收到以下错误:

远程事件接收器标注失败.详细信息:HTTP请求未经授权,客户端身份验证方案为"匿名".从服务器收到的身份验证标头是"NTLM; Negotiate".

开箱即用的PHA未配置为在其服务绑定中支持匿名身份验证.当我通过web.config添加对匿名身份验证的支持时,应用程序将安装并且所有事件接收器逻辑都按预期执行,包括将列表和安全组添加到主机Web的CSOM调用.

这让我有一个由两部分组成的问题:

  1. 匿名访问是否对High-Trust/S2S应用程序事件接收器有明确要求?一方面,这似乎是一个安全漏洞.另一方面,我没有找到任何方法强制SharePoint在应用程序生命周期事件期间使用除匿名之外的身份验证方案.我错过了什么吗?
  2. 如果需要匿名访问,是否有人建议(测试和确认)最佳实践以获得保护通信的其他方法?我想到了IP地址限制,但我还没有完全考虑过它.

TIA

Jig*_*gar 1

  1. 高信任/S2S 应用程序事件接收器肯定需要匿名访问。

  2. 您可以使用 HTTPs 来保护与应用程序事件接收器的通信。建议阻止来自外部域的应用程序事件接收器的访问,因为 SharePoint 将从网络内部调用 Web 服务。