当您在 SharePoint Server 2016 中匿名打开文档时,系统SharePoint凭据
2021/8/13
适用于:
SharePoint Server 2016
本文内容
应用于:
Microsoft SharePoint Server 2016 年
Windows安装程序 (MSI) 版本的 Microsoft Office 2016 应用程序 (不适用于 Office 365 应用程序)
为网站或库SharePoint匿名访问
匿名Office访问文档
使用Office登录文档时所使用的帐户访问文档Windows
症状
当您使用 Windows Installer (MSI) 版本的 Office 应用程序在 SharePoint Server 2016 中打开文档时,如果满足"适用于"部分中的条件,系统将提示您输入凭据。
出现此问题的原因
Office应用程序发送 Authorization: Bearer 标头,SharePoint Online 和 OneDrive for Business。 SharePoint服务器 2016 发送 HTTP 401 身份验证提示,因为 SharePoint Server 2016 本地处理具有 Authorization: Bearer 标头的请求的方式问题,以及缺少 X-IDCRL_ACCEPTED: t 标头的原因。
如何解决此问题
若要解决此问题,请禁用受影响的 Web 应用程序的 OPTIONS 请求,然后使用 URL 重写规则有效删除 HEAD 请求中的 Authorization: Bearer 标头。 仅使用 SharePoint Server 2016 支持的 URL 重写规则来删除请求头值。 有关详细信息,请参阅 SharePoint 2016、2013、2010 和 2007中重写和重定向的支持性。
若要实现此解决方法,请按照以下步骤操作。
步骤 1:阻止 Web 应用程序的 OPTIONS Web.config
若要阻止 OPTIONS 请求,Web.config Web 应用程序的文件,如下所示:
…
备注
对于 Web 分布式创作和版本控制 WebDav 请求,不会 (OPTIONS) 请求。
步骤 2:下载并安装 IIS URL 重写扩展
下载IIS URL 重写扩展,SharePoint WFE (Web 前端) 扩展。
步骤 3:将HTTP_Authorization服务器变量添加到 IIS
启动 Internet Information Services (IIS) 管理器",在左窗格中选择 SharePoint 服务器,然后在中央窗格中选择 "URL 重写"。
在右侧窗格中,选择"查看服务器变量"。
若要添加新的服务器变量,请选择"添加 "。
键入服务器变量名称(如 HTTP_Authorization,然后选择"确定 "。
在右侧窗格中,选择"返回到规则"。
验证 HTTP_Authorization 服务器变量是否添加到 ApplicationHost.config 文件中,如下所示:
….
步骤 4:添加规则以停止处理其他请求方法的 URL 重写规则
如果请求方法不是 HEAD,您可以添加规则以停止处理进一步的 URL 重写规则, (更改 HEAD 请求) 。 为此,请按照下列步骤操作:
选择 Web 应用程序,然后选择 "URL 重写"。
在右侧窗格中,选择" (规则) 添加新规则。
键入规则名称,如 Authrule-HEADonly。
在" 匹配 URL" 部分,指定以下值:
请求的 URL:匹配模式
使用: 正则表达式
模式: ^(?!.*\.aspx).*$
忽略大小写 选项:已选中
在" 条件"部分, 选择"添加",然后指定以下值:
条件输入: {REQUEST_METHOD}
检查输入字符串:是否与模式不匹配
模式: HEAD
忽略大小写 选项:已选中
编辑 "操作"部分 ,如下所示:
操作类型:无
停止处理后续规则选项 :已选中
在右侧窗格中,选择"应用到 -> 规则"。
备注
确保已启用该规则。 为此,在右 窗格中 查找"禁用规则"选项。 选择规则后,将显示此选项。
步骤 5:添加 URL 重写规则以删除 Authorization: Bearer 标头
若要有效删除 请求的 Authorization: Bearer 标头,请使用 URL 重写规则,如下所示:
选择 Web 应用程序,然后选择 "URL 重写"。
在右侧窗格中,选择" (规则) 添加新规则。
键入规则名称,如 Authrule。
在" 匹配 URL" 部分,指定以下值:
请求的 URL:匹配模式
使用: 正则表达式
模式: ^(?!.*\.aspx).*$
忽略大小写 选项:已选中
在" 服务器变量 "部分,选择" 添加", 指定以下值,然后选择"确定":
服务器变量名称 :HTTP_Authorization
值:无
替换现有值 选项:已选中
在 "操作 "部分,指定以下值
操作类型:无
停止处理后续规则:已选中
在右侧窗格中,选择"应用到 -> 规则"。
备注
确保已启用该规则。 为此,在右 窗格中 查找"禁用规则"选项。 选择规则后,将显示此选项。
在 SharePoint Server 2016 服务器场中解决此问题
在服务器场中的每个 SharePoint Web 前端 (WFE) 服务器上重复上一节的所有步骤,以确保所有服务器的配置都相同。 如果已使用重写规则,则需要将上一节中的两个规则设置为列表中的最后两个规则,因为 HEAD 规则将禁用后续规则。
由于 IIS URL 重写扩展中的限制,当前无法以允许它们正常工作的方式组合规则。 此情况在扩展的未来修订中可能会更改,或者将来可能会找到备用配置。 目前,这些方法是使用 URL 重写解决此问题的最佳确认方法。
更多信息