Известные проблемы в Microsoft Graph

Эта статья содержит сведения об известных проблемах, связанных с API Microsoft Graph.

Проверка подлинности

На странице согласия указано, что приложение командной строки, работающее с PowerShell и интерфейсом командной строки, получено от непроверенного издателя.

Обходной путь

Чтобы удалить сообщение "Не проверено", вы можете зарегистрировать собственное приложение, в которой вы можете установить себя в качестве проверенного издателя. Вам необходимо пройти проверку издателя и использовать идентификатор приложения в пакете SDK Microsoft Graph PowerShell следующим образом:

Connect-MgGraph -AppId "{your-own-app-id}" -Scopes "scope"

При определенных обстоятельствах предварительное согласие для приложений поставщика облачных решений (CSP) может не работать для некоторых клиентов клиента.

После первого входа в приложение, использующее делегированные разрешения, в новом клиенте может возникнуть эта ошибка: AADSTS50000: There was an error issuing a token.

Приложение, использующее разрешения для приложений, может получить маркер, но ему может быть неожиданно отказано в доступе при вызове Microsoft Graph.

Мы работаем над решением этой проблемы, чтобы предварительное согласие работало для всех клиентов CSP.

Обходной путь

Чтобы разблокировать разработку и тестирование, вы можете использовать следующее временное решение.

Примечание.

Это решение не является окончательным и предназначено только для разблокировки разработки. Это временное решение не потребуется после устранения проблемы. Это временное решение не нужно отменять после установки исправления.

  1. Откройте сеанс Azure AD v2 PowerShell и подключитесь к клиенту, введя свои учетные данные администратора в окне входа. Отсюда можно скачать и установить Azure AD PowerShell V2.

    Connect-AzureAd -TenantId {customerTenantIdOrDomainName}
    
  2. Создайте субъект-службу Microsoft Graph.

    New-AzureADServicePrincipal -AppId 00000003-0000-0000-c000-000000000000
    

Конечная точка Azure AD версии 2.0 не поддерживается для приложений CSP

Приложения поставщика облачных решений (CSP) должны получать маркеры от конечных точек Azure AD (v1), чтобы успешно вызывать Microsoft Graph у своих клиентов, управляемых партнерами. Сейчас получение маркера через более новую конечную точку Azure AD версии 2.0 не поддерживается.

Календарь

Ошибка при прикреплении больших файлов к событиям

Приложение с делегированными разрешениями возвращает HTTP 403 Forbidden при попытке присоединить большие файлы к сообщению Outlook или событию, которое находится в общем или делегированном почтовом ящике. С делегированными разрешениями createUploadSession завершается успешно, только если сообщение или событие находятся в почтовом ящике вошедшего в систему пользователя.

Уведомления об изменениях

События обновления для установки приложения Teams Уведомления об изменениях в областях чата не доставляются

Если создается уведомление об изменении установки приложения Teams, если область действия предназначена для чатов или включает их, подписчику не доставляются события и уведомления об обновлении.

Пример. Если пользователь подписан на /appCatalogs/teamsApps/{teams-app-id}/installations?$filter=(scopeInfo/scope eq 'groupChat'), он не будет получать уведомления о событиях обновления. Однако они получают другие уведомления об установках и удалениях.

Другой пример. Если клиент подписан на /appCatalogs/teamsApps/{teams-app-id}/installations, он не будет получать уведомления об обновлениях, происходящих именно в чатах. Однако они получают все остальные формы уведомлений в командах и личной области пользователя. Но в чатах они получают только уведомления об установке и удалении.

Обходной путь

В настоящее время временного решения этой проблемы нет.

Резервирование для пользователей

Ошибка при запросе bookingBusinesses

При получении списка bookingBusiness возникает ошибка со следующим кодом, если у организации есть несколько компаний Bookings и учетная запись, создавшая запрос, не является администратором:

{
  "error": {
    "code": "ErrorExceededFindCountLimit",
    "message": "The GetBookingMailboxes request returned too many results. Please specify a query to limit the results."
  }
}

Обходной путь

Вы можете ограничить набор предприятий, возвращаемых запросом, включив параметр запроса, например:

GET https://graph.microsoft.com/beta/bookingBusinesses?query=Fabrikam

Разностный запрос

Контекст OData возвращается неправильно

При отслеживании изменений в отношениях иногда неправильно возвращается контекст OData.

Управление устройствами и приложениями

Доступ к аудиториям развертывания и их обновление не поддерживаются

Доступ к аудиториям развертывания и их обновление для ресурсов deployment, созданных с помощь Intune, в настоящее время не поддерживается.

  • Перечисление членов аудитории развертывания и перечисление исключений из аудитории развертывания возвращает 404 Not Found.
  • Обновление состава и исключений из аудитории развертывания или обновление по идентификатору возвращает 202 Accepted, но аудитория не обновляется.

Группы

Пользователь, не являющийся администратором, не может добавить себя в качестве владельца группы во время создания или обновления группы

Когда пользователь, не являющийся администратором, вызывает API создания группы , API группы обновления или API группы Upsert и добавляет свой идентификатор пользователя в текст запроса в owners@odata.bind коллекции, запрос завершается сбоем с 400 Bad Request кодом ошибки и сообщением "Запрос содержит свойство с повторяющимися значениями". Пользователь, не являющийся администратором, не может явно добавить себя в качестве владельца группы.

Обходной путь

Временного решения этой ошибки нет.

По умолчанию пользователь, не являющийся администратором, создающий группу безопасности или Microsoft 365 с помощью API создания группы или API группы Upsert , автоматически добавляется в коллекцию владельцев группы, если не указаны владельцы группы. Если в качестве владельцев группы указаны другие пользователи, создатель группы, не являющийся администратором, все равно автоматически добавляется в коллекцию владельцев группы безопасности, но не в группу Microsoft 365. Пользователь по-прежнему не может добавить себя в коллекцию владельцев во время обновления группы.

GET /groups/{id}/members не возвращает субъекты-службы в версии 1.0

Операция API "Список членов группы" на конечной точке версии 1.0 в настоящее время не возвращает никаких субъектов-служб, которые могут быть членами запрашиваемой группы.

Обходной путь

В качестве временного решения используйте один из следующих вариантов:

Удостоверение и доступ

Использование определенных параметров запроса в /subscribedSkus и /domains не возвращает ожидаемых результатов

Последующее использование параметров запроса, нацеленных на subscribedSKU и сущности домена , может не вернуть ожидаемых результатов:

  • Использование обоих объектов subscribedSkus или домена$search
  • Использование объекта домена$top и $filter на объекте

В настоящее время эти параметры фактически игнорируются, и запросы не возвращают ожидаемых результатов.

Обходной путь

Чтобы предотвратить нарушение бизнес-процессов, рекомендуется изменить код приложения, чтобы исключить использование этих параметров запроса из запросов, нацеленных на объекты subscribedSkus или домена , и запустить поиск, сверху и фильтр на стороне клиента.

Для настройки федеративных доменов в делегированных сценариях требуется разрешение Directory.AccessAsUser.All

Чтобы создать internalDomainFederation, обновить internalDomainFederation и удалить internalDomainFederation, может потребоваться предоставить согласие на разрешение Directory.AccessAsUser.All. Это требование является временным решением, пока мы не предоставим более детальные делегированные разрешения для управления федеративными доменами.

API claimsMappingPolicy может требовать согласия на разрешения Policy.Read.All и Policy.ReadWrite.ConditionalAccess для методов LIST /policies/claimsMappingPolicies и GET /policies/claimsMappingPolicies/{id} следующим образом:

  • Если в операции LIST нет объектов claimsMappingPolicy для получения, для вызова этого метода достаточно любого разрешения.
  • Если необходимо получить объекты claimsMappingPolicy , приложение должно дать согласие на оба разрешения. В противном случае возвращается ошибка 403 Forbidden.

В будущем для вызова обоих методов будет достаточно любого разрешения.

API conditionalAccessPolicy в настоящее время требует согласия на разрешение Policy.Read.All для вызова методов POST и PATCH. В дальнейшем разрешение Policy.ReadWrite.ConditionalAccess позволит читать политики из каталога.

Подготовка предварительно зарегистрированных ключей доступа не поддерживается

API подготовки FIDO2 поддерживает добавление ключей доступа, активных при создании. Подготовка, при которой ключи доступа предварительно регистрируются в Microsoft Entra ID во время производства или распространения устройства и остаются отключенными до тех пор, пока администратор не включит их, не поддерживаются в текущем выпуске v1.0.

API подготовки FIDO2 требует включения самостоятельной настройки

Чтобы использовать API подготовки FIDO2 (Create fido2AuthenticationMethod), администраторы должны включить параметр "Разрешить самостоятельную настройку " в политике метода проверки подлинности FIDO2. В версии 1.0 этот параметр также позволяет конечным пользователям регистрироваться на FIDO2 в разделе "Мои входы". Включение подготовки на основе API независимо от самостоятельной регистрации в настоящее время не поддерживается.

Внешняя идентификация Microsoft Entra: Внешние пользователи не имеют доступа к моим учетным записям, поэтому включение этого параметра не влияет на самостоятельную регистрацию для внешних пользователей. Администраторы по-прежнему должны включить этот параметр, чтобы использовать API подготовки.

Пакетная обработка JSON

Зависимость запросов ограничена

Индивидуальные запросы могут зависеть от других индивидуальных запросов. В настоящее время запросы могут зависеть только от одного другого запроса и должны следовать одному из этих трех шаблонов:

  • Parallel — ни один отдельный запрос не указывает зависимость в свойстве dependsOn .
  • Последовательный — все индивидуальные запросы зависят от предыдущего индивидуального запроса.
  • Одинаково - все отдельные запросы, которые указывают зависимость в свойстве dependsOn , указывают одну и ту же зависимость. Примечание. Запросы, созданные с помощью этого шаблона, будут запускаться последовательно.

После усовершенствования пакетной обработки JSON эти ограничения будут удалены.

Почта

Разностные вызовы API сообщений с использованием неизменяемых идентификаторов

При вызовах /delta API сообщений с использованием неизменяемых идентификаторов в некоторых случаях (например, когда сообщение перемещается из папки, а затем перемещается обратно) вы можете пропустить некоторые уведомления об изменениях.

Параметр примечания для создания черновика не входит в текст сообщения

Параметр комментария для создания ответа или пересылаемого черновика (createReply, createReplyAll, createForward) не входит в текст черновика ответного сообщения.

Параметры запроса

$search для объектов каталога не работает для закодированного символа амперсанда (&)

В соответствии с RFC 3986 и как описано в разделе Кодировка параметров запроса, зарезервированные символы в строках запроса должны быть закодированы в процентах. Например, синтаксис для $search имени группы, такой как "Походы&отдых", будет следующим:

GET https://graph.microsoft.com/v1.0/groups?$search="displayName:Hiking%26Recreation group"

В настоящее время Microsoft Graph возвращает 400 Bad Request код ошибки в конечной точке версии 1.0 при поиске, включающем символы закодированного амперсанда (&), со следующим сообщением об ошибке: Unrecognized query argument specified: ''.. Этот же запрос выполняется успешно в конечной точке бета-версии.

В качестве временного решения в некоторых приложениях реализована двухпроцентная кодировка в конечной точке версии 1.0. Например, запрос с двойным процентом кодировки становится /users?$search="displayName:Hiking%2526Recreation group". Однако это не является официально рекомендованным решением.

Обходной путь

Обходной путь 1.

В конечной точке версии 1.0 при использовании соответствующей процентной кодировки установите Prefer для заголовка запроса значение legacySearch=false. Например, вы можете:

GET https://graph.microsoft.com/v1.0/groups?$search="displayName:Hiking%26Recreation group"
ConsistencyLevel: eventual
Prefer: legacySearch=false

В будущем поведение конечной точки версии 1.0 будет исправлено, и вам не потребуется включать этот заголовок.

Обходной путь 2.

При исправлении поведения в конечной точке версии 1.0 приложения с зависимостью от двойного процента кодировки могут столкнуться с критическими изменениями, если они не согласились на сохранение своей реализации, включая Prefer заголовок запроса, установленный на legacySearch=true. Например, вы можете:

GET https://graph.microsoft.com/v1.0/groups?$search="displayName:Hiking%2526Recreation group"
ConsistencyLevel: eventual
Prefer: legacySearch=true

Некоторые ограничения применяются к параметрам запроса

К параметрам запроса применяются следующие ограничения:

  • Несколько пространств имен не поддерживаются.
  • Запросы GET и $ref трансляция не поддерживаются для пользователей, групп, устройств, субъектов служб и приложений.
  • @odata.bind не поддерживается. Это означает, что вы не можете правильно задать свойство навигации acceptedSenders или rejectedSenders для группы.
  • @odata.id отсутствует в навигации без вложения (например, в сообщениях) при использовании минимального количества метаданных.
  • $expand О связях объектов каталога:
    • Возвращает максимум 20 объектов, кроме /users?$expand=registeredDevices, который возвращает до 100 объектов.
    • Отсутствует поддержка @odata.nextLink.
    • Поддерживается не более одного уровня развертывания.
    • Отсутствует поддержка вложения других параметров запроса, например $filter$select внутри $expand запроса.
  • $filter:
    • /attachments Конечная точка не поддерживает фильтры. При ее наличии параметр $filter игнорируется.
    • Фильтрация между рабочими нагрузками не поддерживается.
    • При использовании in этого оператора запрос по умолчанию ограничивается 15 выражениями в предложении filter ИЛИ длиной URL-адреса 2048 символов при использовании расширенных возможностей запроса.
    • При фильтрации с использованием eq оператора максимальный предел совпадающего значения составляет 120 символов. То есть, $filter=displayName eq 'value-to-match-max-120-char'. Это ограничение применяется даже к таким свойствам, как displayName объектов каталога, которые могут содержать до 256 символов. При использовании расширенных запросов ограничение применяется к длине URL-адреса в 2048 символов вместо совпадающего значения.
  • $search:
    • Полнотекстовый поиск доступен только для некоторых объектов, например сообщений.
    • Поиск между рабочими нагрузками не поддерживается.
    • Поиск не поддерживается в клиентах Azure AD B2C.
  • $count:
    • Не поддерживается в клиентах Azure AD B2C.
    • При использовании строки $count=true запроса к ресурсам каталога свойство @odata.count присутствует только на первой странице выгружаемых данных.
  • Указанные в запросе параметры могут просто не сработать. Это относится к неподдерживаемым параметрам запроса и неподдерживаемым сочетаниям параметров запроса.

При создании externalConnection с неисправной адаптивной картой возвращается ответ 503 "Служба недоступна", за которым следует ошибка 409 "Конфликт"

При использовании API Microsoft Graph для создания внешнего подключения с неисправной адаптивной картой для макета результатов первый вызов завершается 503 Service Unavailable ошибкой. Затем второй вызов завершается 409 Conflict ошибкой, указывающей, что подключение с тем же именем уже существует.

Хотя первый запрос завершился сбоем с ответом 503, подключение все же было создано. Однако шаблон адаптивной карты не зарегистрирован, так как он сломан.

Сайты и списки

Сайты, на которые подписаны и которые не подписаны, не синхронизируются с подписками SharePoint

При отправке запросов к отслеживаемым сайтам с помощью Microsoft Graph ответы могут давать неправильные результаты, и эти результаты могут не совпадать с результатами подписки на контент в SharePoint.

Обходной путь

Используйте следующие REST API пользователей и содержимого .

Командная работа и коммуникации

Перечисление callRecords participant_v2 может возвращать не всех участников

В некоторых пограничных случаях запрос на перечисление participants_v2 для callRecord может вернуть неполный список.

Обходной путь

Для получения полного списка участников можно использовать свойство существующих участниковcallRecord .

SDK для звонков по связи: в клиенте Teams отображается несогласованный записанный номер участника, когда включено группирование ботов

Если приложение для записи ботов включает группирование ботов, то количество участников, отображаемое клиентом Teams как записываемые, является неточным. Поскольку участники сгруппированы, отображаемое число записываемых участников меньше фактического.

Обходной путь

Отключите группировку ботов для отображения точного количества.

API callRecords представляет участников приложения как пользователей в communicationsIdentitySet

В ресурсе участника callRecord участники приложения или боты в настоящее время представлены с помощью communicationsUserIdentity , а не communicationsApplicationIdentity.

Обходной путь

Используйте значение headerValue агента пользователя ресурса participantEndpoint в сеансе callRecord для идентификации участников приложения и просмотра дополнительных сведений об удостоверении приложения.

SDK для звонков по связи: отсутствует поддержка варианта использования с несколькими конечными точками в режиме уведомлений разностного списка

Если одно и то же приложение или пользователь присоединяется к одному и тому же собранию с помощью нескольких конечных точек и включен разностный режим уведомления списка участников, обновления списка участников, предоставляемые пакетом Communications SDK, могут не регистрировать дополнительные конечные точки, добавленные в текущий вызов.

Обходной путь

Устаревший режим для списка поддерживает вариант использования с несколькими конечными точками. Используйте пакет SDK версии 1.2.0.7270 или более ранней.

SDK для вызовов связи: исключение обработки сообщений веб-перехватчика: System.Security.Cryptography.CryptographicException

В выпуске KB возникла проблема с приложениями, разработанными с помощью пакетов SDK для звонков по связи.

Метод Microsoft Graph AnswerAsync создает исключение, когда бот пытается ответить на входящие вызовы. Это относится к следующим обновлениям Windows:

  • Wk22 - KB5038282
  • Wk19 - KB5038283

Подробные сведения см. в статье SHA256 ComputeHash started throwing — Сообщество Microsoft.

Обходной путь

Откат KB в ожидании обновленного выпуска пакета SDK.

Запросы на отслеживание изменений для API, которые экспортируют артефакты собраний по сети, возвращают уже синхронизированные элементы

Запросы отслеживания изменений (/delta) к getAllTranscripts или getAllRecordings могут возвращать элементы, которые уже были синхронизированы в предыдущих запросах.

Это происходило, если к собранию относились другие, не связанные с собранием изменения, например при добавлении участников, заметок или файлов.

Обходной путь

Для каждого элемента в ответе проверка createdDateTime записи или расшифровки и сравните ее с предыдущей меткой времени синхронизации. Если createdDateTime предшествует последней метке времени синхронизации, элемент уже синхронизирован и его можно игнорировать.

API, экспортирующие артефакты собраний по сети, не возвращают записи собраний без включенной расшифровки

API getAllRecordings не возвращает записи собраний, для которых транскрибирование не включено.

При вызове API getAllRecordings или getAllTranscripts прохождение фильтра$top может не вернуть @odata.nextLink, даже если есть несколько элементов для экспорта.

Обходной путь

Не передавайте $top параметр запроса, пока проблема не будет устранена.

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

Во время планового обновления службы, которое должно быть завершено к 31 августа 2026 г., запросы с разбивкой на страницы к API getAllRecordings или getAllTranscripts могут автоматически сбрасывать маркер разбиения на страницы. Запрос может вернуть 200 OK ответ с пустой коллекцией и @odata.nextLink Затем разбиение на страницы перезапускается и может вернуть элементы записи или расшифровки, которые были возвращены ранее.

Обходной путь

Продолжайте следить даже @odata.nextLink при пустой коллекции. Удалите дублирование последующих элементов, отслеживая свойство id каждой записи или расшифровки.

При использовании разностных запросов с этими методами следуйте по возвращенной разностной ссылке, не добавляя и не применяя повторно фильтры. Маркер сохраняет фильтр из первоначального запроса. Предоставление фильтру маркера 400 Bad Request возвращает ответ со DeltaFilterNotAllowed значением innerError.code "AS".

API списка участников команды завершается ошибкой 401 во вновь созданных клиентах

Когда вновь созданный клиент отправляет запрос участников группы со списком с помощью расширенных возможностей запросов Azure AD, возникает ошибка HTTP 401.

Обходной путь

  1. Вызовите API групп списка и подождите несколько секунд.
  2. Звонок /teams/{id}/members и проверка для успешного ответа.

Метод команды клонирования не включает всех владельцев исходной команды в клонированной команде

Если в исходной команде больше одного владельца, при вызове метода команды клонирования сохраняется только один владелец. Остальные владельцы становятся членами новой клонированной команды. Невозможно выбрать или настроить, какой владелец будет сохранен в качестве владельца новой команды.

Обходной путь

Используйте метод Add members после клонирования команды, чтобы обновить первоначальных владельцев с участников обратно на владельцев.

Создаваемый канал может возвращать ответ об ошибке

При создании канала при использовании специальных символов в имени канала API Get filesFolder вернет ответ об 400 Bad Request ошибке. При создании канала убедитесь, что параметр displayName для канала не отображается:

  • Добавьте любой из следующих специальных символов: ~ # % & * { } + / \ : < > ? | ' ".
  • Начните с символа подчеркивания (_) или точки (.) либо закончите точкой (.).

Невозможно получить доступ к общему каналу между арендаторами, когда URL-адрес запроса содержит tenants/{cross-tenant-id}

API вызывает teams/{team-id}/incomingChannels и teams/{team-id}/allChannels возвращает @odata.id свойство, которое можно использовать для доступа к каналу и выполнения других операций с объектом канала. Если вы вызовете URL-адрес, возвращенный @odata.id из свойства, запрос завершится сбоем со следующей ошибкой при попытке доступа к общему каналу между клиентами:

GET /tenants/{tenant-id}/teams/{team-id}/channels/{channel-id}
{
    "error": {
        "code": "BadRequest",
        "message": "TenantId in the optional tenants/{tenantId} segment should match the tenantId(tid) in the token used to call Graph.",
        "innerError": {
            "date": "2022-03-08T07:33:50",
            "request-id": "dff19596-b5b2-421d-97d3-8d4b023263f3",
            "client-request-id": "32ee2cbd-27f8-2441-e3be-477dbe0cedfa"
        }
    }
}

Обходной путь

Удалите /tenants/{tenant-id} часть из URL-адреса, прежде чем вызывать API для доступа к общему каналу между клиентами.

В запросах на фильтрацию участников групп по ролям необходимо указывать один параметр

Все запросы на фильтрацию участников команды по ролям ожидают либо параметр skipToken , либо верхний параметр в запросе, но не оба сразу. Если в запросе будут переданы оба параметра, параметр top будет проигнорирован.

Не удается отфильтровать участников команды по ролям

Фильтры запросов ролей, а также другие фильтры GET /teams/team-id/members?$filter=roles/any(r:r eq 'owner') and displayName eq 'dummy' могут не работать. Сервер может вернуть BAD REQUEST.

Меню "Просмотр сведений о собрании" недоступно в клиенте Microsoft Teams

В клиенте Microsoft Teams не отображается меню "Просмотр сведений о собрании " для собраний канала, созданных с помощью API облачных коммуникаций.

Метка конфиденциальности не отображается в пользовательском интерфейсе Teams

Метки конфиденциальности, которые время от времени применяются к Teams, не отображаются в пользовательском интерфейсе Teams, хотя они хорошо видны как на базовом сайте SharePoint, так и в Центре администраторов.

Некоторые свойства для участников чата могут отсутствовать в ответе на запрос GET

В некоторых случаях свойствоdisplayNameэлектронной почты/tenantId/ для отдельных участников чата может не заполняться в GET /chats/chat-id/members запросе OR.GET /chats/chat-id/members/membership-id

Обновление лимита чатов для расширения участников

Этот API работает по-разному в одном или нескольких национальных облаках. Дополнительные сведения см. в статье "Различия в реализации в национальных облаках". При $expand=members включении этот API возвращает максимум 25 элементов, даже если указано большее $top значение.

layoutType возвращает null значение свойства layoutType при перечислении всех каналов

Свойство layoutType возвращает значение null при перечислении всех каналов. Чтобы получить тип макета определенного канала, используйте API Get channel .

Пользователи

API, экспортирующие артефакты собраний по сети, могут возвращать URL-адреса расшифровки, не содержащие контента

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

Обходной путь

Убедитесь, что собрание транскрибировано и существует ли допустимое содержимое. При наличии сообщите об этом для дальнейшего расследования. В противном случае игнорируйте URL-адрес содержимого.

Свойство showInAddressList не синхронизировано с Microsoft Exchange

При запросе пользователей через Microsoft Graph свойство showInAddressList может не указывать то же состояние, которое отображается в Microsoft Exchange. Рекомендуется управлять этой функцией непосредственно с помощью Microsoft Exchange через Центр администрирования Microsoft 365 и не использовать это свойство в Microsoft Graph.

Доступ к фотографии профиля пользователя ограничен

Просмотреть и обновить фотографию профиля пользователя можно, только если у пользователя есть почтовый ящик. Если в таком случае не удастся прочитать или изменить фотографию, возникнет следующая ошибка:

{
  "error": {
    "code": "ErrorNonExistentMailbox",
    "message": "The SMTP address has no mailbox associated with it."
  }
}

Все фотографии, которые ранее могли храниться с помощью свойства thumbnailPhoto (с помощью Azure AD API Graph (в настоящее время в цикле выбытия) или путем синхронизации AD Connect), больше не будут доступны через свойство фотографииMicrosoft Graph пользовательского ресурса.

Управление фотографиями пользователей с помощью ресурса profilePhoto Microsoft API Graph в настоящее время не поддерживается в клиентах Azure AD B2C.