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

如何在Postman中使用用户名密码而非客户端ID密钥连接SharePoint?

问题解答

1. 账号是否需要授权?

使用用户名密码(ROPC资源所有者密码凭证流程)连接SharePoint时,你的账号不需要像应用主体那样在appprincipals.aspx里配置授权——这是用户身份直接认证,而非应用身份认证:

  • 你在user.aspx中给账号设置的「完全控制」权限已经满足SharePoint的访问权限要求,这部分操作是正确的。
  • appprincipals.aspx页面仅显示应用程序主体(即你之前熟悉的客户端ID对应的应用),用户账号不属于应用主体范畴,所以找不到是正常现象,无需纠结。

2. 为什么返回「unsupported_grant_type」错误?

你的请求存在几个关键问题,导致授权服务器不支持该授权类型:

(1)缺少客户端ID和客户端密钥

ROPC流程本质仍需通过已注册的Azure AD应用发起请求,你的请求体里缺失client_id和client_secret参数,必须补充这两个值(即你之前了解的客户端ID与密钥)。

(2)使用了旧版授权端点

你调用的accounts.accesscontrol.windows.net是旧的ACS端点,对ROPC流程支持有限,建议改用Azure AD v2.0标准端点:
POST https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token

(3)应用未启用ROPC流程

需在Azure AD后台找到对应应用注册,开启「资源所有者密码凭证」授权流:
进入Azure AD应用注册 → 目标应用 → 「认证」 → 「高级设置」 → 「允许的授权类型」,勾选「资源所有者密码凭证」。

(4)账号不能启用多因素认证(MFA)

ROPC流程不支持开启了MFA的账号,若你的账号启用了MFA,必须关闭或改用其他认证方式。

3. 修正后的请求示例

调整后的Postman请求如下:

POST https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token

Headers:
Content-Type: application/x-www-form-urlencoded

Body (x-www-form-urlencoded):
grant_type: password
client_id: 你的客户端ID
client_secret: 你的客户端密钥
username: username@company.com
password: 你的账号密码
scope: https://{tenant}.sharepoint.com/.default

注:v2.0端点使用scope参数替代旧的resource,值为SharePoint资源标识符加上.default。

额外注意事项

  • ROPC属于安全性较低的认证方式,微软不推荐在生产环境使用,仅建议在无法采用授权码流等更安全流程的场景下临时使用。
  • 若你的账号是纯云账号(非本地AD同步账号),需确保账号未被其他安全策略限制密码登录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:45:44