Azure Guest API添加Sponsors属性失败:无效属性异常求助
解决Azure AD来宾用户邀请中Sponsors属性添加失败的问题
问题根源
你当前的代码写法不符合Graph API的请求规范,导致抛出"invalid property sponsor0"异常:
- 错误地在
DirectoryObject的AdditionalData中嵌套sponsors键,API解析时无法识别这种格式 - Sponsors集合需要直接传入代表赞助人的
DirectoryObject实例,而非通过AdditionalData包装属性
正确实现方式
Sponsors属性要求传入DirectoryObject类型的集合,每个元素需指定赞助用户的Id(或通过资源引用定位用户)。以下是修正后的代码示例:
方式1:直接指定用户ObjectId
Sponsors = new List<DirectoryObject> { new DirectoryObject { Id = "赞助用户的ObjectId" // 替换为实际的Azure AD用户ID } }
方式2:使用OData资源引用(适用于JSON请求体)
如果是构造原始JSON请求负载,可通过@odata.id指定用户资源路径:
"sponsors": [ { "@odata.id": "https://graph.microsoft.com/v1.0/users/赞助用户的ObjectId" } ]
额外注意事项
- 确保应用拥有
User.Invite.All权限(仅User.ReadWrite可能不足以完成来宾邀请及赞助人配置) - 赞助用户必须是Azure AD中已存在的用户,不能仅传入用户名,必须使用ObjectId或完整资源引用
内容的提问来源于stack exchange,提问作者Aluri Balahari
相关产品推荐
相关产品推荐

