Microsoft Entra SCIM配置创建用户时POST /Users/请求体为空求助
解决Node Express中SCIM请求req.body为空的问题
问题根源
Microsoft Entra ID发送的SCIM创建用户请求,Content-Type是application/scim+json,但Express默认的express.json()中间件只处理application/json类型的请求体,导致req.body被解析为空对象。
具体解决方案
- 调整Express JSON解析配置:修改
express.json()的type参数,让它同时支持SCIM的内容类型:app.use(express.json({ type: ['application/json', 'application/scim+json'] })); - 添加调试验证:在/Users端点里加日志,确认请求头和解析结果:
app.post('/Users', (req, res) => { console.log('请求Content-Type:', req.get('Content-Type')); console.log('解析后的req.body:', req.body); // 你的SCIM用户创建逻辑 }); - 排查中间件冲突:如果项目里用了旧版
body-parser包,建议改用Express内置的express.json(),避免不同解析中间件互相干扰。 - 确认Entra配置:在Entra ID的SCIM设置里,保持默认的SCIM 2.0格式配置,不要修改请求内容类型。
内容的提问来源于stack exchange,提问作者Cameron Payton
相关产品推荐
相关产品推荐

