Azure SCIM组预配未同步成员问题求助
Azure SCIM组预配未同步成员信息排查方案
问题描述
通过Azure执行SCIM预配,已配置默认属性映射,将5个用户添加至devtestgroup组后,Azure发送的POST v1/scim/Groups请求仅传递externalId和displayName,成员字段为空,未同步组内用户信息。
相关配置与代码
映射设置

成员配置

成员字段为空的请求示例

SCIM服务端POST接口代码
[HttpPost] public async Task<IHttpActionResult> Post([FromBody] Core2Group group) { try { if (!groups.ContainsKey(group.ExternalIdentifier)) groups.Add(group.ExternalIdentifier, group); return ScimResult(HttpStatusCode.OK, group); } catch (Exception ex) { return ScimError(HttpStatusCode.InternalServerError, ex.Message); } }
排查步骤
1. 确认Azure AD组成员同步开关状态
- 检查Azure AD预配配置的组设置,确保已启用「同步组成员」功能,且成员属性映射关联正确(例如将Azure AD用户的
objectId映射到SCIM组的members.value)。 - 核对「成员配置」截图中的设置,确认是否勾选了同步成员,以及源/目标属性的映射逻辑符合SCIM 2.0规范。
2. 验证组属性映射的完整性
- 检查「映射设置」中是否包含
members字段的映射规则:- 源属性需选择Azure AD用户的唯一标识符(如
objectId); - 目标属性需对应SCIM规范的
members数组结构(包含value和type子字段)。
- 源属性需选择Azure AD用户的唯一标识符(如
- 若使用自定义映射,需确保未遗漏
members字段的配置。
3. 触发立即同步并检查预配日志
- 在Azure AD预配页面手动触发立即同步,跳过默认的30分钟周期,观察同步结果。
- 查看Azure AD预配日志,筛选组同步相关条目,确认是否存在成员同步的错误提示(如用户未完成预配、属性匹配失败等)。
4. 检查SCIM服务端模型定义
- 确认
Core2Group模型是否正确实现了SCIM 2.0组规范,需包含Members属性(类型为List<Core2GroupMember>,每个成员对象需有Value和Type属性)。 - 若模型未定义
Members字段,会导致请求体中的成员信息无法被反序列化,最终出现成员字段为空的情况。
5. 捕获并分析实际SCIM请求
- 使用工具(如Fiddler、Postman)捕获Azure发送的SCIM请求,确认请求体中是否包含
members字段:- 若请求体无
members字段,问题出在Azure AD配置; - 若请求体有
members但服务端接收为空,需排查服务端的反序列化逻辑或模型定义。
- 若请求体无
验证方案
手动构造符合SCIM 2.0规范的组创建请求,示例如下:
{ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"], "externalId": "devtestgroup", "displayName": "devtestgroup", "members": [ { "value": "user1-external-id", "type": "User" }, { "value": "user2-external-id", "type": "User" } ] }
将该请求发送到v1/scim/Groups接口,测试服务端是否能正确接收并存储成员信息,以此排除服务端自身的问题。
内容的提问来源于stack exchange,提问作者Samadhan
相关产品推荐
相关产品推荐

