Microsoft Graph API - список всех пользователей, имеющих доступ к почтовому элементу? - PullRequest
0 голосов
/ 24 октября 2019

Я хочу иметь возможность иметь список всех пользователей, которые могут просматривать определенный элемент почты. Как администратор внешнего интерфейса онлайн-обмена, я могу просматривать почту всех своих пользователей, но когда я звоню в API, я только возвращаю свою почту. Я хочу иметь возможность совершать звонки, чтобы точно определить, кто имеет разрешение на просмотр каждого почтового элемента, и не могу найти путь через API.

Я могу получить список всех пользователей и список всех писемдля каждого пользователя список всех почтовых ящиков, список всех групп, но не разрешения для каждого почтового элемента

GET /users/{id | userPrincipalName}/messages

возвращает всю почту, но почтовые элементы имеют следующую структуру:

{
  "bccRecipients": [{"@odata.type": "microsoft.graph.recipient"}],
  "body": {"@odata.type": "microsoft.graph.itemBody"},
  "bodyPreview": "string",
  "categories": ["string"],
  "ccRecipients": [{"@odata.type": "microsoft.graph.recipient"}],
  "changeKey": "string",
  "conversationId": "string",
  "createdDateTime": "String (timestamp)",
  "flag": {"@odata.type": "microsoft.graph.followupFlag"},
  "from": {"@odata.type": "microsoft.graph.recipient"},
  "hasAttachments": true,
  "id": "string (identifier)",
  "importance": "String",
  "inferenceClassification": "String",
  "internetMessageHeaders": [{"@odata.type": "microsoft.graph.internetMessageHeader"}],
  "internetMessageId": "String",
  "isDeliveryReceiptRequested": true,
  "isDraft": true,
  "isRead": true,
  "isReadReceiptRequested": true,
  "lastModifiedDateTime": "String (timestamp)",
  "parentFolderId": "string",
  "receivedDateTime": "String (timestamp)",
  "replyTo": [{"@odata.type": "microsoft.graph.recipient"}],
  "sender": {"@odata.type": "microsoft.graph.recipient"},
  "sentDateTime": "String (timestamp)",
  "subject": "string",
  "toRecipients": [{"@odata.type": "microsoft.graph.recipient"}],
  "uniqueBody": {"@odata.type": "microsoft.graph.itemBody"},
  "webLink": "string",

  "attachments": [{"@odata.type": "microsoft.graph.attachment"}],
  "extensions": [{"@odata.type": "microsoft.graph.extension"}],
  "multiValueExtendedProperties": [{"@odata.type": "microsoft.graph.multiValueLegacyExtendedProperty"}],
  "singleValueExtendedProperties": [{"@odata.type": "microsoft.graph.singleValueLegacyExtendedProperty"}]
}

это не содержит ничего о полных правах на элемент. Кто-нибудь знает способ получить это?

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

Вы не можете получить разрешение на уровне предмета, так как предмет не хранит ACL, связанный с ним. Однако вы можете получить разрешение на уровне папки, запросив PR_NT_SECURITY_DESCRIPTOR (0x0E270102) для папки.

Я действительно написал сценарий для этого на основе моего старого клиентского ядра REST API: Start-MailboxFolderPermissionReport

Я могу, если сценария недостаточно, написать C # способделает это через Graph Managed API

0 голосов
/ 25 октября 2019

Похоже, нет способа выставить права доступа к почтовому ящику или папке через Graph API. Они доступны через модуль PowerShell в Exchange Online, например Get-MailboxFolderPermission.

...