You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharePoint On-Premise 2016获取Access Token时出现401未授权错误

SharePoint On-Premise 2016 ACS模式获取Access Token 401问题排查

问题概述

已按官方文档创建应用并获取Client ID、Client Secret,但通过授权URL无法获取Code,后续获取Access Token时返回401未授权错误:

error=server_error&error_description=The%20remote%20server%20returned%20an%20error%3A%20%28401%29%20Unauthorized%2E

使用管理员账号,目标是通过API上传文件到SharePoint站点。

排查与解决方案

1. 确认应用权限配置

  • 创建应用时,需确保已为目标站点分配对应权限级别(如Web.Manage),且完成权限授予操作:在应用注册页面的"权限"部分,添加目标站点并选择权限后,点击"授予权限"按钮完成授权。
  • 检查权限范围是否匹配,避免使用On-Premise不支持的scope值。

2. 校验授权URL参数

  • client_id:确认是否为应用注册页面生成的正确ID,无复制错误。
  • redirect_uri:必须与应用注册时填写的回调地址完全一致,包括协议、域名、端口、路径,任何差异都会导致授权失败。
  • scope:确保使用SharePoint On-Premise支持的权限范围,Web.Manage是有效范围,但需确认该权限已被授予给应用。

3. 检查授权流程完整性

  • 访问授权URL时,需使用管理员账号完成登录,确认是否出现应用授权同意页面:
    • 若未出现同意页面,大概率是redirect_uri不匹配或应用权限未正确配置。
    • 若登录后未跳转至redirect_uri并携带code参数,检查浏览器是否拦截了跳转,或服务器是否存在反向代理导致跳转异常。

4. 验证ACS端点访问性

  • SharePoint On-Premise 2016依赖Azure ACS服务,需确认SharePoint服务器能正常访问https://accounts.accesscontrol.windows.net/,排查防火墙、代理是否拦截了该地址的请求。

5. 检查Token请求参数正确性

获取Code后,换Token的POST请求需包含以下参数(示例):

POST https://accounts.accesscontrol.windows.net/{tenant-id}/tokens/OAuth/2.0
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code={your-code}
&client_id={your-client-id}
&client_secret={your-client-secret}
&redirect_uri={your-redirect-uri}
&scope={your-scope}
  • 确认client_secret无输入错误,特殊字符需做URL编码。
  • 确认ACS端点中的{tenant-id}为SharePoint服务器对应的ACS租户ID(可通过SharePoint管理中心查看)。

6. 检查SharePoint OAuth服务状态

在SharePoint服务器上,确认以下服务是否正常运行:

  • SharePoint OAuth Authentication Service
  • SharePoint Subscription Settings Service

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 17:54:55