Azure 如何在多个用户上创建具有相同id的MS Graph open扩展?

Azure 如何在多个用户上创建具有相同id的MS Graph open扩展?,azure,azure-active-directory,microsoft-graph-api,Azure,Azure Active Directory,Microsoft Graph Api,我正在尝试向AAD租户中的用户添加一些配置文件数据。使用MicrosoftGraph,我可以为一个用户添加一个开放的扩展名 URL (POST): https://graph.microsoft.com/v1.0/me/extensions Body: { "@odata.type": "Microsoft.Graph.OpenTypeExtension", "extensionName": "mydev.profile", "value1": "1000",

我正在尝试向AAD租户中的用户添加一些配置文件数据。使用MicrosoftGraph,我可以为一个用户添加一个开放的扩展名

URL (POST): https://graph.microsoft.com/v1.0/me/extensions

Body: {
    "@odata.type": "Microsoft.Graph.OpenTypeExtension",
    "extensionName": "mydev.profile",
    "value1": "1000",
    "value2": "3"
}
这是可行的,我可以用

PATCH https://graph.microsoft.com/v1.0/me/extensions/mydev.profile
但是,如果我尝试向不同的用户添加相同的扩展名,则会出现一个错误,表明该id已被使用

Request (POST): https://graph.microsoft.com/v1.0/users/{object-id}/extensions

Body: {
    "@odata.type": "Microsoft.Graph.OpenTypeExtension",
    "extensionName": "mydev.profile",
    "value1": "1000",
    "value2": "3"
}

Response (409 Conflict): {
  "error": {
    "code": "Request_BadRequest",
    "message": "An extension already exists with given id.",
    "innerError": {
      "request-id": "27c9c777-d4ce-4466-adce-a18505fffb30",
      "date": "2017-05-23T14:43:17"
    }
  }
}
没有说id在任何范围内都必须是唯一的。我错过什么了吗


(我已经通过Microsoft Graph Explorer和Postman尝试过了。结果相同。)

感谢您的报告。我们将调查这个错误。我们这里有几件事。我认为不需要在请求中指定
@odata.type
,但是当您添加它时,我们将
id
设置为与提供的
扩展名相同。其次,我们还将
id
的范围限定为每个租户都是唯一的(至少对于
user
这样的目录资源),这是错误的。我认为这对于每个对象来说是唯一的更有意义,特别是如果您希望筛选所有具有扩展名(公共)id的用户

如果希望使用相同的
扩展名创建多个打开的扩展名
,则无需在有效负载中指定
@odata.type
。当您这样做时,我们将生成一个唯一的
id
。或者可以指定其他打开属性来标记扩展名。缺点是,在我们修复之前,您将无法执行上述过滤器

当我们对此进行一些修复时,我将作出回应


希望这有帮助,

谢谢你的回答。我同意每个对象的id应该是唯一的。否则,它将失去很多有用性。我经常看到的例子,创建漫游配置文件,如果每个用户的扩展必须有一个唯一的id,则根本不起作用。我想我将尝试根据用户的广告对象id生成一个唯一的扩展名。我将无法筛选,但我至少能够查找扩展名。这符合我现在的用例。不过,我很想知道这一问题何时得到解决。再次感谢!