Microsoft Graph已删除用户的“更新”通知类型

时间:2019-01-15 13:50:41

标签: notifications microsoft-graph subscription

从Active Directory(AD)删除用户后,收到此通知(使用Microsoft Graph订阅):

{
  "value": [
{
  "changeType": "updated",
  "clientState": null,
  "resource": "Users/{user-id}",
  "resourceData": {
    "@odata.type": "#Microsoft.Graph.User",
    "@odata.id": "Users/{user-id}",
    "id": "{user-id}",
    "organizationId": "{organisation-id}",
    "sequenceNumber": hidden
  },
  "subscriptionExpirationDateTime": "2019-01-17T12:48:43.7825578+00:00",
  "subscriptionId": "hidden",
  "tenantId": "hidden"
}
]
}

下一步试图从Microsoft Graph获取该用户

/GET https://graph.microsoft.com/v1.0/users/{user-id}

然后得到

{
  "error": {
  "code": "Request_ResourceNotFound",
  "message": "Resource '{user-id}' does not exist or one of its queried reference-property objects are not present.",
  "innerError": {
  "request-id": "{user-id}",
  "date": "2019-01-15T13:41:49"
   }
  }
}

如果用户不存在,为什么通知带有changeType =“ updated”?

1 个答案:

答案 0 :(得分:1)

从目录中删除用户后,将对其“软删除”(这意味着仍可以访问该对象-参见下文,并进行了还原)。这种类型的更改被建模为“更新”。我们计划在将来的版本中对此进行改进。

资源将最终被硬删除(通常在30天后),当这种情况发生时,您将看到“已删除”通知。

使用users/id无法访问被软件删除的用户-因此,您看到的错误。

但是,可以使用特殊的deletedItems API来访问Azure AD中的软删除资源:

https://docs.microsoft.com/en-us/graph/api/directory-deleteditems-get?view=graph-rest-1.0