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

时间:2014-08-25 20:00:39

标签: 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-preview-2.aspx

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

  

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

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

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

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

1 个答案:

答案 0 :(得分:1)

  1. High-Trust / S2S应用程序事件接收器肯定需要匿名访问。

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