记录一个SPS2010中RSS Web Part报错的问题
2012-03-13 15:08
274 查看
SharePoint中的RSS WebPart只要访问需要认证的RSS Feed的时候就会失败.
错误信息
================
“The RSS webpart does not support authenticated feeds”
当RSS Web Part试图展示SharePoint站点自身上的列表内容的时候, 如果SharePoint站点不支持匿名访问, 那么上面的错误就会报出来了.
那么有没有办法既让RSS web part可以显示站点自身的数据, 同时又需要用户通过认证才能访问站点呢?
答案是可以的. 那就是让站点使用Kerberos认证. RSS Web Part只支持一种认证模式, 那就是Kerberos.
然而有一个客户她的环境里就配了Kerberos, 但是她的RSS web part还是会报上面的错误.
她的场里有两台WFE, 使用一个Host Header作为Network Load Balancer的名字.
1. 用户请求带有RSS web part的页面 –> WFE1
2. WFE1试图展示页面上所有的web part, 发现有个RSS web part, 于是再发一个http请求给Rss web part里配置的RSS Feed URL. 即再发一个请求给站点自己.
3. 由于有两个WFE, 那么这个请求有可能被另一个WFE处理, 也有可能自己处理.
4. 两个WFE之间通信的时候使用NTLM认证, 于是RSS Web Part显示失败.
尝试过的步骤
=================
通过下面的方式禁止任何的NTLM认证.
1. 修改每台WFE上的host文件, 让Host Header指向127.0.0.1. 防止请求发给另一个WFE.
2. 删除下面的注册表键值
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\BackConnectionHostNames"
3. 执行下面的步骤, 禁止LoopBackCheck.
locate and then click the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Right-click Lsa, point to New, and then click DWORD Value.
Type DisableLoopbackCheck, and then press ENTER.
Right-click DisableLoopbackCheck, and then click Modify.
In the Value data box, type 1, and then click OK.
Quit Registry Editor, and then restart your computer.
经过上面的步骤, 我们发现该问题依然存在. SharePoint服务器在修改了host文件的情况下依然会发出Internal RSS request.
经过进一步的研究, 我们发现该客户的内外网络间配置了防火墙, 该防火墙还扮演着Proxy的角色.
因为SharePoint两台前端上都配置了代理, 因为这个原因, 请求在修改了host文件的情况下还是会发到网络上, 从而被另一台WFE接收.
防火墙在转发请求的时候却使用了不该使用的NTLM认证方式, SharePoint于是向用户发出认证要求, 方式正是NTLM. 由于NTLM认证不会被RSS web part所接受, 于是错误发生了.
解决方案
=============
为"Use any authentication protocol"配置constrained delegation.
将SharePoint所使用的apppool帐号, farm admin帐号都添加到该配置中.
这里的配置(即"Use any authentication protocol")可以让用户使用NTLM认证协议访问WFE服务器, 然后WFE服务器可以impersonate该用户并使用Kerberos认证协议来访问其他服务器.
问题解决.
错误信息
================
“The RSS webpart does not support authenticated feeds”
当RSS Web Part试图展示SharePoint站点自身上的列表内容的时候, 如果SharePoint站点不支持匿名访问, 那么上面的错误就会报出来了.
那么有没有办法既让RSS web part可以显示站点自身的数据, 同时又需要用户通过认证才能访问站点呢?
答案是可以的. 那就是让站点使用Kerberos认证. RSS Web Part只支持一种认证模式, 那就是Kerberos.
然而有一个客户她的环境里就配了Kerberos, 但是她的RSS web part还是会报上面的错误.
她的场里有两台WFE, 使用一个Host Header作为Network Load Balancer的名字.
1. 用户请求带有RSS web part的页面 –> WFE1
2. WFE1试图展示页面上所有的web part, 发现有个RSS web part, 于是再发一个http请求给Rss web part里配置的RSS Feed URL. 即再发一个请求给站点自己.
3. 由于有两个WFE, 那么这个请求有可能被另一个WFE处理, 也有可能自己处理.
4. 两个WFE之间通信的时候使用NTLM认证, 于是RSS Web Part显示失败.
尝试过的步骤
=================
通过下面的方式禁止任何的NTLM认证.
1. 修改每台WFE上的host文件, 让Host Header指向127.0.0.1. 防止请求发给另一个WFE.
2. 删除下面的注册表键值
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\BackConnectionHostNames"
3. 执行下面的步骤, 禁止LoopBackCheck.
locate and then click the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Right-click Lsa, point to New, and then click DWORD Value.
Type DisableLoopbackCheck, and then press ENTER.
Right-click DisableLoopbackCheck, and then click Modify.
In the Value data box, type 1, and then click OK.
Quit Registry Editor, and then restart your computer.
经过上面的步骤, 我们发现该问题依然存在. SharePoint服务器在修改了host文件的情况下依然会发出Internal RSS request.
经过进一步的研究, 我们发现该客户的内外网络间配置了防火墙, 该防火墙还扮演着Proxy的角色.
因为SharePoint两台前端上都配置了代理, 因为这个原因, 请求在修改了host文件的情况下还是会发到网络上, 从而被另一台WFE接收.
防火墙在转发请求的时候却使用了不该使用的NTLM认证方式, SharePoint于是向用户发出认证要求, 方式正是NTLM. 由于NTLM认证不会被RSS web part所接受, 于是错误发生了.
解决方案
=============
为"Use any authentication protocol"配置constrained delegation.
将SharePoint所使用的apppool帐号, farm admin帐号都添加到该配置中.
这里的配置(即"Use any authentication protocol")可以让用户使用NTLM认证协议访问WFE服务器, 然后WFE服务器可以impersonate该用户并使用Kerberos认证协议来访问其他服务器.
问题解决.
相关文章推荐
- 记录一个问题 lua_tinker中load_file 的lua文件包含require报错解决办法
- Sharepoint 2010 解决DFWP - Unable to display this Web Part 的问题
- Web项目中使用NLog记录日志,利用单件模式控制整个项目只有一个Logger对象的问题
- 2017-6-14 关于使用history.go的问题!配合原生应用嵌入H5页面(只有一个webview的的单页应用)返回历史列表记录的问题
- 记录一个PADS下遇到的奇怪的问题----ECO更新报错
- RFS的web自动化验收测试——Selenium2Library升级指南(补充一个问题)
- 记录一个linux进程不运行不崩溃的问题
- 关于.net 开发web遇到的一个奇葩问题 drowdown未放置在runat="server"标记里
- Office 2010的一个小问题
- 问题记录:同一台电脑上,两台Tomcat运行同样的webapp项目,只能一个启动成功
- ASP.net 让窗口WEB打开后,弹出一个选择窗口供应选择,注意Page_Load顺序,JS产生的找不到对象的问题
- Web服务器异常问题记录
- 一个小Forum Web程序示例,ASP.NET MVC Framework,TDD简介(Part 2)
- SharePoint 2010 集成Window Live 认证遇到的问题 part-1
- XP 安装后使用vc2010,进入类视图后,点击一个函数,后vs报错退出问题
- MOSS 2010:Visual Studio 2010开发体验(7)——AJAX Web Part
- 记录一个找问题的经过
- 用WebCollector制作一个爬取《知乎》并进行问题精准抽取的爬虫(JAVA)
- Sping.net1.3.2 srping.web.mvc3 用于mvc3 一个cshtml页面不能用多个controller的问题
- Web开发中的Globalization问题记录