AB Projects запрашивает разрешения в двух местах. Ваш администратор один раз видит экран согласия Microsoft для всей организации, а владелец команды принимает короткий список разрешений команды, когда приложение добавляется в команду или обновляется. Каждый пункт соответствует функции, которую вы видите в продукте, и большая часть доступа — делегированная: приложение действует от вашего имени и никогда не может сделать больше, чем можете вы сами.
Что такое Microsoft Graph и для чего нужны разрешения?
Microsoft Graph — это встроенный API Microsoft 365 — официальный путь, через который приложения работают с Teams, Outlook и вашим профилем. AB Projects использует его для четырёх задач:
Связывание каналов и синхронизация состава
Подключение проекта к нужному каналу Teams и автоматическое добавление участников канала в проект — см. Добавление и удаление участников.
Карточки задач и синхронизация комментариев
Публикация карточек задач и комментариев в ветке канала и синхронизация ответов из этой ветки обратно в задачу — см. Комментирование с упоминаниями в каналах.
Планирование в календаре
Создание события в календаре Outlook для задачи, когда вы решаете зарезервировать под неё время, и планирование собраний.
Вход (SSO)
Вход без пароля с учётной записью Microsoft 365 — см. SSO и вход через Microsoft.
Разрешения на уровне организации
На эти разрешения ваш администратор один раз даёт согласие в Microsoft Entra ID. Делегированное = приложение действует от имени вошедшего пользователя и ограничено тем, что этот пользователь уже может делать. Приложение = используется AB Projects без вошедшего пользователя для фоновой работы, например чтобы состав проекта соответствовал составу его канала.
| Разрешение | Тип | Зачем это нужно AB Projects |
|---|---|---|
User.Read | Делегированное | Вход и чтение вашего базового профиля Microsoft 365. Требуется любому приложению, использующему вход через Microsoft. |
openid, profile, email | Делегированное | Стандартные области входа: проверка вашей подлинности и чтение имени, аватара и адреса электронной почты, чтобы задачи и комментарии приписывались нужному человеку. |
offline_access | Делегированное | Позволяет приложению обновлять доступ в фоновом режиме (например, для синхронизации календаря), не запрашивая повторный вход при каждом истечении срока действия токена. |
Team.ReadBasic.All | Делегированное | Читает названия команд Teams, в которых вы состоите, чтобы проект можно было связать с нужной командой. |
Channel.ReadBasic.All | Делегированное | Читает базовые названия каналов, чтобы при настройке вкладки можно было выбрать нужный канал и корректно его отобразить. |
Group.Read.All | Делегированное | Читает группы Microsoft 365, на которых основаны ваши команды, — используется для связывания проекта ↔ канала и автоматической синхронизации состава, которая добавляет участников канала в проект. |
ChannelMessage.Send | Делегированное | Публикует в связанном канале от вашего имени, когда вы изменяете задачу или добавляете комментарий (включая @упоминания выбранных вами участников). |
ChannelMessage.ReadWrite | Делегированное | Читает и публикует сообщения канала, чтобы комментарии и обновления задачи попадали в собственную ветку этой задачи в Teams. |
Calendars.ReadWrite | Делегированное | Создаёт и обновляет событие календаря Outlook для задачи, когда вы решаете её синхронизировать (блокирование времени). Запрашивается при входе, чтобы позже не появлялся дополнительный запрос согласия. |
Schedule.Read.All | Делегированное | Читает расписания Смен в Teams, которые вы уже можете видеть. Указано на экране согласия; ни одна текущая функция AB Projects его не использует. |
TeamMember.Read.All | Приложение | Читает, кто состоит в команде, чтобы список участников проекта следовал за связанным каналом, даже когда никто не вошёл в систему. |
ChannelMember.Read.All | Приложение | Читает, кто состоит в частном или общем канале, состав которого может отличаться от состава команды, чтобы такие проекты получали участников канала, а не всей команды. |
Разрешения команды (принимает владелец команды)
Некоторые разрешения действуют только в одной команде. Microsoft называет это согласием для конкретного ресурса: вместо того чтобы администратор предоставлял доступ на уровне всей организации, их принимает владелец команды — когда AB Projects добавляется в команду или когда обновление добавляет новое разрешение. За пределами этой команды они ничего не дают приложению, а удаление AB Projects из команды их отзывает.
| Разрешение | Тип | Зачем это нужно AB Projects |
|---|---|---|
TeamMember.Read.Group | Команда | Читает список участников этой команды для синхронизации состава. |
ChannelMessage.Read.Group | Команда | Позволяет боту получать ответы в каналах этой команды без @упоминания — именно так обычный ответ под карточкой задачи становится комментарием к задаче. Добавлено в AB Projects 2.4.0. AB Projects учитывает только ответы в ветках под собственными карточками задач и документов. |
ChannelMessage.Read.Group вступит в силу. До тех пор синхронизируются только ответы с @упоминанием AB Projects. См. Комментирование с упоминаниями в каналах.Примечания для администраторов
- Делегированный доступ не может превышать права пользователя. Большинство строк выше действуют от имени вошедшего человека — если он не видит канал, приложение тоже его не видит.
- Разрешения приложения нужны для синхронизации состава. Они позволяют AB Projects поддерживать соответствие состава проекта его каналу, когда никто не вошёл в систему. Они читают только членство, а не сообщения.
- Синхронизация ответов использует разрешение команды, а не разрешение на уровне организации.
ChannelMessage.Read.Groupпринимается владельцем отдельно для каждой команды, поэтому никогда не распространяется на команду, которая его не приняла. - Запись в календарь включается для каждой задачи отдельно. Приложение обращается к вашему календарю, только когда вы явно синхронизируете задачу или планируете из неё собрание.
- Контроль остаётся за вами. Разрешения на уровне организации можно в любой момент просмотреть или отозвать в Microsoft Entra ID; при первом входе может потребоваться однократное согласие для организации (см. SSO и вход через Microsoft). Разрешения команды прекращают действовать, когда AB Projects удаляется из команды.
Короче говоря, разрешения нужны для того, чтобы задачи, каналы Teams и ваш календарь оставались синхронизированными — ничто здесь не читает вашу почту или файлы, а экраны согласия всегда остаются окончательным списком.