使用 NodeJS 应用程序访问 Sharepoint 2019 OnProm Web 服务

Access to Sharepoint 2019 OnProm Web Services using NodeJS app

我公司I/T刚刚设置了一个新的 Sharepoint 2019 OnPromise,它是混合的,使用 Azure AD 进行身份验证。

我是我的 Sharepoint 网站的网站 collection 管理员。假设 Sharepoint 的 URL 是 https://aymeric.sp.my-company.com

当我访问此 URL 时,我会自动重定向到 https://login.microsoftonline.com/TENANT-ID/wsfed?wa=wsignin1.0&wtrealm=urn%3aSharepoint%3afederation&wctx=https%3a%2f%2faymeric.sp.my-company.com%2f_layouts%2f15%2fAuthenticate.aspx%3fSource%3d%252F&wreply=https%3a%2f%2faymeric.sp.my-company.com%2f_trust%2fdefault.aspx&sso_nonce=AQABAAAAAABeAFzDwllzTYGDLh_qYbH87qVvvwM4pLiqYXloFo6Il7_-ry9WsQiAA&client-request-id=8dacdcfb-c68f-4ec2-a3e7-7760cecf3699&mscrid=8dacdcfb-c86f-4ec2-a3e7-7760cecf3699 – 我会被自动识别并使用正确的配置文件重定向回 Sharepoint。

我的一位 I/T 联系人给了我以下信息:

现在我正在尝试使用 JavaScript 和节点应用程序 (node index.js) 访问 Sharepoint Web 服务(如 https://aymeric.sp.my-company.com/_vti_bin/UserProfileService.asmx)。 我将此技术与 Sharepoint 2013 OnProm 一起使用,我没有遇到任何问题:我只是使用 https://github.com/s-KaiNet/node-sp-auth 传递了我的凭据,它就可以正常工作。

如果我尝试在浏览器中访问 SP 2019 Web 服务,它也能正常工作。

但是将节点应用程序与基于 Azure AD 的 Sharepoint Hybrid 结合使用时,我找不到如何传递凭据…… 要发送什么?如何认证?我是否需要使用 Azure AD 应用程序连接到我的 Sharepoint OnProm?如果是,如何配置?我是否应该只发送带有 "Bearer" 和访问令牌的 "Authentication" header:如果是,如何获取此访问令牌?

无论我尝试什么(而且我尝试了很多事情)我总是以(在最好的情况下)错误 403“访问被拒绝。您无权执行此操作或访问此资源。”。

我尝试了 different authentications, I also tried adal-node with an Azure AD App created from https://portal.azure.com/,但它令人困惑。经过两天的搜索和尝试,我觉得我需要帮助。

谢谢

最后,因为我不是 farm/server 管理员,所以我的最后一个选择是检索 FedAuth cookie,该 cookie 可用于 Sharepoint 识别的所有请求。

我已经 "just" 通过创建一个重现所有必需步骤的 NodeJs script 来模仿浏览器的行为。

需要 10 次调用,包括重定向、post 表单和 Kerberos 身份验证才能最终获得宝贵的 FedAuth cookie。