MSGraph Delete Group Push-уведомления: неправильный changeType при удалении событий - PullRequest
0 голосов
/ 22 ноября 2018

Когда я выполняю удаление группы на портале Azure AD и задаю свое push-уведомление changeType = 'updated, delete', push-уведомление принимается в течение 10-15 секунд, как и ожидалось, с правильным идентификатором ресурса длягруппа, которую я удалил, но changeType = 'updated'.См. Фактическое событие, полученное ниже:

{
   "value":[
      {
         "changeType":"updated",
         "clientState":"<<redacted>>",
         "resource":"Groups/f0a5993b-5c2d-49cc-bb2f-8cb0060fef8e",
         "resourceData":{
            "@odata.type":"#Microsoft.Graph.Group",
            "@odata.id":"Groups/f0a5993b-5c2d-49cc-bb2f-8cb0060fef8e",
            "id":"f0a5993b-5c2d-49cc-bb2f-8cb0060fef8e",
            "organizationId":"<<redacted>>",
            "eventTime":"2018-11-22T01:47:00.2455823Z",
            "sequenceNumber":636784480202455800
         },
         "subscriptionExpirationDateTime":"2018-11-24T18:13:08.914+00:00",
         "subscriptionId":"d850b120-19bb-4291-b9c4-845ea04dd38d",
         "tenantId":"<<readacted>>"
      }
   ]
}

После обработки этого запроса невозможно определить, что текущий групповой ресурс был УДАЛЕН.Может ли кто-нибудь из команды Graph API посмотреть / решить?

1 Ответ

0 голосов
/ 22 ноября 2018

Возможно, что удаленная вами группа была Группа Office 365 .Когда группы Office 365 удаляются, они удаляются программно, что представляется как событие updated, а не тип изменения deleted.Такое же поведение вы заметите и при удалении пользователей, если вы подпишетесь на updated,deleted для users, которая также поддерживает мягкое удаление.

(для группы Office 365 с мягким удалением может быть восстанавливается в течение 30 дней . Напротив, другие типы групп немедленно удаляются без возможности восстановления и не могут быть восстановлены.)

Если вы используете дельта-запрос в сочетании с уведомлениями об изменениях (aтипичным примером является использование события updated в качестве триггера для опроса дополнительных изменений с помощью дельта-запроса), мягкое удаление группы будет выглядеть так:

GET https://graph.microsoft.com/v1.0/groups/delta?$deltatoken=1yN...
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups",
    "@odata.deltaLink": "https://graph.microsoft.com/v1.0/groups/delta?$deltatoken=1yN...",
    "value": [
        {
            "id": "0ed62d01-7c00-4866-9220-74fdd034eea7",
            "@removed": {
                "reason": "changed"
            }
        }
    ]
}

КогдаСофт-удаленная группа Office 365 удаляется безвозвратно (естественно, через 30 дней или вручную, потому что кто-то окончательно удалил ее ), и вы получите ожидаемый deleted тип изменения в подписке:

{
    "value": [
        {
            "changeType": "deleted",
            "resource": "Groups/0ed62d01-7c00-4866-9220-74fdd034eea7",
            "resourceData": ...
            ...
        }
    ]
}

В дельта-запросе для групп постоянное удаление группы будет представлено следующим образом:

GET https://graph.microsoft.com/v1.0/groups/delta?$deltatoken=1yN...
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups",
    "@odata.deltaLink": "https://graph.microsoft.com/v1.0/groups/delta?$deltatoken=1yN...",
    "value": [
        {
            "id": "0ed62d01-7c00-4866-9220-74fdd034eea7",
            "@removed": {
                "reason": "deleted"
            }
        }
    ]
}

Другая информация

OffГруппы Ice 365 могут быть идентифицированы в Microsoft Graph по их атрибуту groupTypes, который будет содержать строку Unified, если это группа Office 365.

GET https://graph.microsoft.com/v1.0/groups/{id}?$select=id,displayName,groupTypes
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups(id,groupTypes)/$entity",
    "id": "0ed62d01-7c00-4866-9220-74fdd034eea7",
    "displayName": "My Office 365 group",
    "groupTypes": [
        "Unified"
    ]
}

В списке могут быть мягко удаленные группыс Microsoft Graph:

GET https://graph.microsoft.com/v1.0/directory/deletedItems/microsoft.graph.group

Для окончательного удаления мягко удаленного объекта с помощью Microsoft Graph:

DELETE https://graph.microsoft.com/v1.0/directory/deletedItems/{id}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...