Я написал приложение Python, которое использует MS Graph API (разрешения приложения: User.Read.All и Mail.ReadWrite): вариант использования - поиск и удаление фишинговых писем из почтовых ящиков O365 Exchange Online по всему клиенту. .
Я разработал приложение, используя учетную запись разработчика Microsoft 365 E5, и приложение отлично работает в этом небольшом клиенте, но теперь, когда я пробую его с большим 10-тысячным пользовательским клиентом, у меня возникают проблемы с масштабированием (ошибки 503) . Приложение получает список пользователей в клиенте, а затем запрашивает сообщения в каждом почтовом ящике на основе определенных критериев. Многие коды состояния 404 (почтовый ящик не найден) возвращаются при поиске всех пользовательских почтовых ящиков клиента. Часто статус 404 поступает из почтовых ящиков, которые начинаются с "##" или связаны с номерами ФАКСОВ. Я хотел бы исключить поиск в этих почтовых ящиках, чтобы уменьшить количество вызовов API.
Тестирование на моем клиенте разработчика. Я могу получить licenseDetails
пользователя и проверить servicePlanName
(EXCHANGE_S_ENTERPRISE) и provisioningStatus
, но в арендаторе 10k я, кажется, не получаю никаких licenseDetails
при запросе пользователей. Это связано с тем, что лицензии связаны с группами, а не с пользователями?
Есть ли способ получить всех пользователей, у которых есть действующая лицензия O365 Exchange Online, с помощью MS Graph API?