51CTO Blog地址:https://blog.51cto.com/u_13969817

自2013年以来,Office客户端应用程序默认为现代身份验证,并为最终用户提供无缝体验。但是,SharePoint Designer需要一些附加步骤来支持现代身份验证。

Microsoft 已经官宣:SharePoint Designer的IDCRL身份验证将于2024年6月15日失效,用户必须按照以下步骤启用现代身份验证,以确保SharePoint Designer在最终截止日期后继续工作。

1.      在注册表中,找到目录HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Identity,然后新注册一个key,EnableADAL,并将值改为1,如下所示:

Microsoft 365 开发:2024年6月15禁用SharePoint Designer Online基于IDCRL库的身份验证_Modern Authenticatio

2.      以下文件必须至少是这些最低版本,

1)      ADAL.dll

2)      MSO.dll

3)      CSI.dll

说明:默认情况下,这些DLL文件将位于以下位置之一,具体取决于是否安装了32位或64位版本的SharePoint Designer:

32-bit folder:

64-bit folder: C:\Program Files\Common Files\Microsoft Shared\OFFICE15\

另请注意,SharePoint Designer和其他Office应用程序会在Windows凭据管理器中缓存凭据。如果SharePoint Designer在更新文件后仍无法进行身份验证,请关闭所有Office 2013应用程序,打开凭据管理器(“控制面板”->“用户帐户”->“管理Windows凭据”),然后“删除”所有以“MicrosoftOffice15”开头的条目。

如何准确判断SharePoint Designer正在加载哪些DLL?

Process Explorer”工具非常适用于以下方面:https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

请确保SharePoint Designer和Process Explorer都在运行。

·       在Process Explorer中的“进程”列表中选择“SPDESIGN.EXE”。

·       单击“视图”菜单,然后选择“下窗格视图”>“DLL”

·       点击“查看”菜单,选择“选择列”,选择“DLL”选项卡,然后选中“版本”复选框。

·       现在,您可以轻松地验证DLL的版本和位置。

例如,以下是x86 SharePoint Designer SP1的外观。我按“路径”列排序,可以很容易地看到ADAL。DLL和MSO。DLL低于现代身份验证所需的最低要求:

Microsoft 365 开发:2024年6月15禁用SharePoint Designer Online基于IDCRL库的身份验证_Modern Authenticatio_02

运行Windows Update并确保安装了修补程序后,它看起来如下所示:

Microsoft 365 开发:2024年6月15禁用SharePoint Designer Online基于IDCRL库的身份验证_Modern Authenticatio_03

如何判断SharePoint Designer是否正在尝试使用现代身份验证?

Fiddler.exe来自https://www.telerik.com/fiddler是查看HTTP/HTTPS网络流量的好工具。要查看HTTPS流量的详细信息,您首先需要转到“工具”->“选项”->“HTTPS”->“解密HTTPS流量”。

当客户端应用程序尝试连接到SharePoint Online时,将协商现代身份验证与传统身份验证。此协商由添加到请求中的标头处理。客户端应用程序将包括广告其支持的身份验证方法的标头,SPO将返回HTTP 401 Unauthorized响应,该响应具有匹配的WWW-Authenticate标头,用于其也支持的每个方法。

旧式身份验证标头为:

X-IDCRL_ACCEPTED:t

X-FORMS_BASED_AUTH_ACCEPTED:T

现代身份验证标头是:

授权:不记名

如果服务器不支持客户端公布的任何身份验证方法,则不会返回WWW-Authenticate标头,并且客户端将显示一个通用凭据提示,该提示不适用于SPO。

以下是Fiddler中的一个例子。您可以看到SharePoint Designer(在“进程”列中显示为spdesign:9956)仅通过包含X-IDCRL_ACCEPTED:t标头来宣传其支持旧版身份验证。由于SharePoint Online租户当前禁用了传统身份验证,401响应不包括SharePoint Designer继续进行身份验证所需的WWW-Authenticate标头:

Microsoft 365 开发:2024年6月15禁用SharePoint Designer Online基于IDCRL库的身份验证_Modern Authenticatio_04

注意:此Fiddler跟踪中看到的svchost进程是进行WebDAV调用的WebClient服务,该调用试图填充SharePoint Designer的“文件打开”对话框。WebDAV无法直接向SPO进行身份验证,而是需要找到一个现有的持久cookie。我没有持久的cookie,因此所有这些请求都会导致401个未经授权的响应。

在运行Windows Update并确保我的组件得到正确修补后,Fiddler显示SharePoint Designer宣传支持Modern(Authorization:Bearer)和Legacy(X-IDCRL_ACCEPTED:t)。由于我的SharePoint Online租户已阻止传统身份验证,401响应仅包括用于现代/承载身份验证的WWW-Authenticate标头,该标头包括SharePoint Designer需要继续进行的信息。

Microsoft 365 开发:2024年6月15禁用SharePoint Designer Online基于IDCRL库的身份验证_Modern Authenticatio_05