【问题标题】:Not receiving a request on our MS Graph Webhook for deleting a User in AAD在我们的 MS Graph Webhook 上未收到删除 AAD 中用户的请求
【发布时间】:2019-04-30 18:37:49
【问题描述】:

我们创建了一个 Webhook,用于在从 Azure AD 中删除用户时接收“删除”通知。但是当我们删除用户时,我们没有收到任何通知。在 AAD 中,用户首先被放入回收站,但如果我们将用户从回收站中删除,我们也不会收到任何通知。 我们已经尝试了接收电子邮件的代码-> 有效。并且在 AAD 中更改用户-> 这也有效。所以我们将“updated”改为“deleted”,并没有触发调用。

我们从 de 文档 (https://docs.microsoft.com/en-us/graph/webhooks) 和 Microsoft 提供的示例代码 (https://github.com/microsoftgraph/aspnet-webhooks-rest-sample) 开始

我们使用权限范围: User.Read.All & Directory.Read.All

Graph Webhook 订阅: 资源:“用户” ChangeType:“已删除”

当我们将“更新”指定为 ChangeType 时,我们收到了预期的通知。但是 ChangeType "deleted" 没有给出任何通知。 这是不支持的,还是我们缺少权限... 我希望有人可以提供帮助。

【问题讨论】:

标签: azure azure-active-directory microsoft-graph-api webhooks


【解决方案1】:

订阅deleted 事件后,您只会收到硬删除用户的通知。用户一开始几乎总是被“软删除”,然后在 30 天后被自动永久删除。

对于这两种情况,User.Read.All 的权限就足够了。

当用户被“软删除”时,会向订阅了updated 更改的应用发送一个事件。这是一个示例(您必须相信我,这是由于软删除,因为它与常规属性更改相同):

{
    "value": [
        {
            "changeType": "updated",
            "clientState": null,
            "resource": "Users/514ffc40-afef-4ad9-bc1f-4ad3e425fcec",
            "resourceData": {
                "@odata.type": "#Microsoft.Graph.User",
                "@odata.id": "Users/514ffc40-afef-4ad9-bc1f-4ad3e425fcec",
                "id": "514ffc40-afef-4ad9-bc1f-4ad3e425fcec",
                "organizationId": "1c411c5e-78cc-4e89-af5e-169408a540b7",
                "sequenceNumber": 636921552671905776
            },
            "subscriptionExpirationDateTime": "2019-05-01T17:13:30.289+00:00",
            "subscriptionId": "cfbfa7fc-0771-4394-b563-cff3f8140d02",
            "tenantId": "1c411c5e-78cc-4e89-af5e-169408a540b7"
        }
    ]
}

当用户被永久删除(30 天后自然删除或由管理员手动删除)时,订阅 deleted 的应用会收到通知。这是一个例子:

{
    "value": [
        {
            "changeType": "deleted",
            "clientState": null,
            "resource": "Users/514ffc40-afef-4ad9-bc1f-4ad3e425fcec",
            "resourceData": {
                "@odata.type": "#Microsoft.Graph.User",
                "@odata.id": "Users/514ffc40-afef-4ad9-bc1f-4ad3e425fcec",
                "id": "514ffc40-afef-4ad9-bc1f-4ad3e425fcec",
                "organizationId": "1c411c5e-78cc-4e89-af5e-169408a540b7",
                "sequenceNumber": 636921556468034066
            },
            "subscriptionExpirationDateTime": "2019-05-01T17:13:30.289+00:00",
            "subscriptionId": "ce04c176-370d-4b67-9da6-05c441186756",
            "tenantId": "1c411c5e-78cc-4e89-af5e-169408a540b7"
        }
    ]
}

【讨论】:

  • 感谢您的回答。我们现在已经开始工作了。可以帮助其他开发人员的一句话:通知将在几分钟内到达。在使用“接收电子邮件”调试示例时,我们会在几秒钟内收到通知。在调试已删除的用户时,我们似乎没有收到通知。大约 5 到 10 分钟后,我们收到了通知,所以请耐心等待 ;-)
  • 你能以类似的方式订阅新的 AD 用户吗?还是仅更新或删除用户?谢谢。
  • @finisterre 当我将“created”添加为 changeType 时,我收到一个错误,指出这是一个无效的 changeType。所以我认为答案是“不,你不能”。 “更新”和“删除”确实有效。
  • 来自docs:“用户和组通知支持updateddeletedchangeType。”创建新用户时,订阅updated 的应用会收到通知。
猜你喜欢
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 2022-01-15
  • 2020-12-25
相关资源
最近更新 更多