Azure Graph API 邀请接口返回400 Bad Request 故障求助
问题根因
你调用POST https://graph.microsoft.com/v1.0/invitations接口时,请求头声明了Content-Type: application/json,但实际请求体使用url编码的表单格式,格式不匹配是触发400错误的直接原因。近期微软Graph API收紧了请求格式校验逻辑,之前兼容的不规范请求会被直接拦截,这就解释了你服务长期正常运行、无配置变更突然报错的现象。
修复方案
1. 修正请求格式
将请求体替换为标准JSON格式,不要使用--data-urlencode传递参数,调整后的curl请求参考如下:
curl --location --request POST 'https://graph.microsoft.com/v1.0/invitations' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{token}}' \ --data-raw '{ "invitedUserEmailAddress": "{{userEmailAddress}}", "invitedUserDisplayName": "{{userName}}", "inviteRedirectUrl": "https://portal.azure.com", "sendInvitationMessage": true }'
2. 额外校验排查项
如果调整格式后仍有问题,可同步检查以下配置:
- 确认待邀请的邮箱地址格式合规,且对应域名未被租户添加到外部协作的禁止邀请列表
- 确认你获取令牌所用的用户账号未启用多因素认证(MFA),ROPC密码授权流不支持MFA,开启后即使能拿到令牌,调用接口时也会被权限校验拦截
- 生产环境建议替换安全性较低的ROPC密码授权流,改用客户端凭证流获取令牌,权限配置更稳定,不会受用户账号配置变更影响
内容的提问来源于stack exchange,提问作者liwani
相关产品推荐
相关产品推荐

