SharePoint REST API如何获取Access Token?求官方文档及实操方案
官方文档说明
微软官方针对SharePoint的身份认证文档(隶属于Microsoft Entra ID体系)里,详细写了Access Token的获取流程,这是最权威的依据。
针对你指定请求的Token获取方法
下面是实际开发中最常用的两种方式,对应不同业务场景:
1. 客户端凭据流(无用户交互,后台服务适用)
- 准备工作:在Microsoft Entra ID中注册应用,为该应用分配SharePoint的应用权限(比如
Sites.Read.All),获取三个关键信息:客户端ID、客户端密钥、租户ID - 发起Token请求:
POST https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials &client_id={你的客户端ID} &client_secret={你的客户端密钥} &scope=https://{你的站点域名}.sharepoint.com/.default
- 接口返回的
access_token就是所需的Bearer Token,直接放入请求头即可使用
2. 授权码流(需用户登录,前端/桌面应用适用)
- 准备工作:在Microsoft Entra ID中注册应用,配置重定向URI,分配Delegated类型的权限(比如
Sites.Read.All),获取客户端ID - 分两步获取Token:
- 引导用户跳转至授权页面获取授权码:
https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/authorize? client_id={你的客户端ID} &response_type=code &redirect_uri={你的重定向URI} &scope=https://{你的站点域名}.sharepoint.com/Sites.Read.All &response_mode=query - 使用授权码兑换Token:
POST https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &client_id={你的客户端ID} &client_secret={你的客户端密钥}(仅机密客户端需要填写) &code={刚获取的授权码} &redirect_uri={你的重定向URI} &scope=https://{你的站点域名}.sharepoint.com/Sites.Read.All
- 引导用户跳转至授权页面获取授权码:
- 返回的
access_token可直接用于你指定的GET请求
两种方法的核心差异
- 客户端凭据流:无需用户登录,使用应用自身权限,适合后台定时同步、服务端自动化操作等场景
- 授权码流:必须用户登录授权,使用用户实际访问权限,适合需要代用户操作的前端、桌面应用
内容的提问来源于stack exchange,提问作者HC LW
相关产品推荐
相关产品推荐

