使用 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 联系人给了我以下信息:
- 我们不使用 ADFS
- URL的签到是https://login.microsoftonline.com/TENANT-ID/saml2
- Azure AD 标识符是 https://sts.windows.net/TENANT-ID/
现在我正在尝试使用 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。
我公司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 联系人给了我以下信息:
- 我们不使用 ADFS
- URL的签到是https://login.microsoftonline.com/TENANT-ID/saml2
- Azure AD 标识符是 https://sts.windows.net/TENANT-ID/
现在我正在尝试使用 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。