Azure AD SCIM 2.0预配报必填属性缺失但响应中存在该属性如何解决
问题排查结果
你返回的SCIM响应存在多个不符合RFC7644规范的问题,正好匹配Azure AD预配服务的校验规则,具体错误点按优先级排序如下:
- 响应结构不匹配请求类型:如果该响应是
POST /Users创建用户接口的返回,属于严重结构错误。创建用户成功的响应应该直接返回单个User资源、HTTP状态码为201,不能将用户资源封装在ListResponse列表结构中,Azure AD无法从列表结构中读取创建后的用户属性,会直接报「缺少必填属性」。 - 列表查询参数不符合规范:如果该响应是
GET /Users查询接口的返回(用于存量用户匹配),则startIndex字段取值错误,SCIM 2.0规范明确要求列表分页的起始索引从1开始计数,你填写的0不符合规范会导致解析异常。 - meta字段结构错误:用户资源的
meta字段下,存储资源访问路径的键应为location,你当前写的是meta,属于键名写错,不符合标准结构要求。 - 自定义属性未正确声明:你自定义的顶层
Identifier属性不属于标准SCIM Core User Schema的属性,如果需要保留该属性,必须先定义自定义schema,将schema加入到用户资源的schemas数组中,且属性要放在对应命名空间下,不能直接放在资源顶层。Azure AD默认会忽略未声明的自定义属性,你需要的用户标识符直接用标准的id字段即可,无需额外自定义Identifier属性。
修改完上述问题后即可解决报错。
内容的提问来源于stack exchange,提问作者leheinlein
相关产品推荐
相关产品推荐

