Введение

Vitextra Organizational Chart не хранит собственных данных о сотрудниках. Всё, что отображается на схеме — имена, должности, связи с руководителями, фотографии и статус присутствия, — считывается во время работы из Microsoft Entra ID через Microsoft Graph API. Для этого веб-части требуется небольшой набор разрешений API, которые администратор тенанта утверждает один раз.

В этой статье перечислены эти разрешения, объяснено назначение каждого из них, показано, как их утвердить, и описано, как выглядит схема при отсутствии разрешения. Статья предназначена для администраторов SharePoint и Microsoft 365, а также для специалистов по безопасности, которым необходимо оценить продукт перед развёртыванием.

Разрешения

Organizational Chart запрашивает три делегированных разрешения для Microsoft Graph:

РазрешениеНазначениеБез него
Directory.Read.AllЧтение списка пользователей и связи с руководителем для каждой учётной записи — данных, на основе которых строится иерархияСхема не может загрузить ни одного сотрудника и показывает ошибку
User.Read.AllЧтение атрибутов профиля, отображаемых на карточках (должность, отдел, расположение офиса, номера телефонов, адрес и т. д.), и фотографий сотрудниковСхема не может загрузить профили сотрудников и показывает ошибку
Presence.Read.AllОтображение актуального индикатора присутствия Microsoft Teams (Доступен, Занят, Нет на месте, Не беспокоить, Не в сети) на каждой карточкеСхема работает, но индикаторы присутствия не отображаются

Все три разрешения — делегированные: веб-часть всегда обращается к Microsoft Graph от имени вошедшего пользователя и никогда не использует собственное удостоверение приложения. Поэтому схема никогда не показывает посетителю ничего, что он не смог бы увидеть сам, просматривая каталог в Microsoft 365, — она лишь представляет эти данные в более удобной форме.

📝 Заметка
Разрешения запрашиваются на уровне субъекта приложения SharePoint Online Client Extensibility, общего для всех решений SPFx в тенанте. Если другой продукт Vitextra — например, Employee Directory — уже утверждён для той же области, запрос для Organizational Chart удовлетворяется автоматически и не отображается среди ожидающих.

Утверждение разрешений

Запросы разрешений регистрируются автоматически при развёртывании пакета Organizational Chart в каталоге приложений тенанта. Чтобы утвердить их:

  1. Войдите в Центр администрирования SharePoint с учётной записью, имеющей роль Глобальный администратор или Администратор SharePoint.
  2. В левой области навигации разверните раздел Дополнительно и выберите Доступ к API.
  3. В разделе Ожидающие запросы найдите запросы от пакета Organizational Chart для ресурса Microsoft Graph — Directory.Read.All, User.Read.All и Presence.Read.All.
  4. Выберите каждый запрос и нажмите Утвердить. Подтвердите утверждение в открывшейся панели.

Ожидающие запросы доступа к API в Центре администрирования SharePoint

Ожидающие запросы доступа к API в Центре администрирования SharePoint

Утверждённые разрешения перемещаются в список Утверждённые запросы, где их в любой момент можно просмотреть или отозвать.

❗ Важно
Утверждение вступает в силу немедленно, однако пользователям, у которых страница уже открыта, необходимо перезагрузить её. Кроме того, браузеры некоторое время кэшируют предыдущий результат авторизации, поэтому если через несколько минут после утверждения схема всё ещё показывает ошибку, подождите немного и обновите страницу, прежде чем искать другие причины.

💡 Совет
Полная процедура развёртывания — загрузка пакета в каталог приложений, включение его для всех сайтов и утверждение разрешений — описана в статье KB10035. Установка облачного продукта.

Что происходит при отсутствии разрешения

Отсутствие каждого из трёх разрешений проявляется по-разному, что помогает диагностировать проблему:

  • Не утверждено Directory.Read.All или User.Read.All. Схема вообще не может загрузить каталог. Вместо дерева веб-часть показывает сообщение К сожалению, что-то пошло не так. Обновите страницу и попробуйте ещё раз. и кнопку Настроить для редакторов страницы. Утвердите ожидающие запросы и перезагрузите страницу.
  • Не утверждено Presence.Read.All. Схема загружается и все карточки отображаются, но индикатор присутствия на фотографиях отсутствует у всех. Это самое распространённое частичное состояние: два разрешения на чтение каталога утверждены, а запрос на присутствие упущен из виду.
  • Разрешение отозвано после развёртывания. Симптомы те же, что описаны выше. Отозванные разрешения снова появляются в разделе Ожидающие запросы, и их можно утвердить повторно.

📝 Заметка
Для отображения присутствия одного разрешения недостаточно: у сотрудника должна быть лицензия Microsoft Teams, и он должен быть вошедшим в Teams. Пользователь без Teams всегда отображается без индикатора присутствия, даже если Presence.Read.All утверждено.

Кто может видеть схему

Поскольку веб-часть использует делегированные разрешения, доступ к схеме определяется двумя условиями:

  • Доступ к странице. Посетитель должен иметь возможность открыть страницу SharePoint или вкладку Teams, на которой размещена веб-часть, — действуют обычные разрешения SharePoint и Teams.
  • Доступ к каталогу. По умолчанию каждый участник организации может читать основные сведения каталога в Microsoft 365, поэтому все посетители с доступом к странице видят одну и ту же схему. Гостевые пользователи, напротив, в схему не загружаются и, как правило, также не могут читать полный каталог.

Organizational Chart не добавляет собственного уровня разрешений: веб-часть не скрывает отдельных сотрудников от конкретных посетителей и не предоставляет никому доступ к данным, которые он не смог бы прочитать в других частях Microsoft 365. Чтобы полностью убрать со схемы определённые учётные записи — служебные учётные записи, общие почтовые ящики, тестовых пользователей, — используйте параметры фильтрации и исключения веб-части, описанные в статье KB10233. Как добавить и настроить веб-часть Organizational Chart.

Обработка данных

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

  • Данные о сотрудниках считываются из Microsoft Graph напрямую браузером пользователя и не передаются ни в Vitextra, ни в какие-либо сторонние сервисы.
  • Снимок загруженного каталога хранится в локальном хранилище браузера до 12 часов для ускорения повторных посещений; он хранится отдельно для каждого пользователя и каждого браузера и никогда не покидает устройство.
  • Фотографии и статус присутствия запрашиваются только для карточек, видимых на экране, и не кэшируются дольше сеанса страницы.
  • Веб-часть обращается к серверам Vitextra только для проверки состояния лицензии тенанта, загрузки статических ресурсов, таких как значки, и сбора анонимной телеметрии об использовании продукта. Данные каталога в эти запросы не включаются.

💡 Совет
Обзор продукта приведён в статье KB10232. Organizational Chart. Обзор решения. Если сотрудники отсутствуют на схеме, хотя все разрешения утверждены, см. статью KB10236. Почему сотрудника нет на организационной структуре?.

Поделиться