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