Не получил запрос на нашем MS Graph Webhook для удаления пользователя в AAD - PullRequest
1 голос
/ 29 апреля 2019

Мы создали Webhook для получения уведомлений «Удалить», когда пользователь удаляется из Azure AD. Но мы не получаем никаких уведомлений, когда мы удаляем пользователя. В AAD пользователь сначала помещается в корзину, но также, если мы удаляем пользователя из корзины, мы не получаем никаких уведомлений. Мы попробовали наш код с получением писем -> это сработало. И с изменением пользователя в AAD -> это тоже сработало. Таким образом, мы изменили «обновлено» на «удалено», и звонки не выполняются.

Мы начали с документации (https://docs.microsoft.com/en-us/graph/webhooks) и примера кода, предоставленного Microsoft (https://github.com/microsoftgraph/aspnet-webhooks-rest-sample)

).

Мы используем области разрешения: User.Read.All & Directory.Read.All

График подписки на Webhook: Ресурс: «пользователи» ChangeType: "удалено"

Когда мы указываем «updated» в качестве ChangeType, мы получали уведомления, как и ожидалось. Но ChangeType «удален» не давал никаких уведомлений. Это не поддерживается, или мы пропускаем разрешение ... Я надеюсь, что кто-то может помочь.

1 Ответ

2 голосов
/ 29 апреля 2019

Когда вы подписались на 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"
        }
    ]
}
...