Использование Power Automate для настройки разрешения Graph API Site.Selected

Microsoft Graph — это мощный инструмент. Он может дать вам доступ к информации о пользователях, файлам SharePoint и настройкам арендатора Office. В связи с этим администраторы должны быть осторожны при предоставлении разрешений многим конечным точкам Graph. Параметры разрешений для Graph обычно представляют собой «все или ничего». Например, параметры разрешения SharePoint — это либо Site.Read.All, либо Site.ReadWrite.All. Когда говорится «Все», это означает все. Предоставление такого разрешения дает приложению или пользователю доступ ко всем сайтам SharePoint в арендаторе. Это не идеально с точки зрения безопасности и требует от администраторов тщательного контроля за любым использованием конечных точек SharePoint.

К счастью, компания Microsoft добавила третий вариант разрешения под названием Site.Selected. Это позволяет администраторам ограничить доступ Graph к определенным сайтам и контролировать доступ на чтение/запись для каждого сайта. Однако настроить эти параметры можно только через сам Graph API. Отсутствие графического интерфейса для этой настройки означает, что вам придется отправить как минимум три запроса API, чтобы получить всю информацию, необходимую для настройки разрешений. Делать это вручную может надоесть через некоторое время, поэтому я настроил поток, который будет делать это за меня.

Этот поток принимает имя и id приложения, имя сайта SharePoint и информацию о том, должен ли у приложения быть доступ на запись к сайту.

Он следует моему стандартному формату: сначала инициализируются переменные, а затем блоки области видимости в конфигурации Try-Catch-Finally. В этом потоке используются следующие четыре переменные:

  • IsError: Используется для отлова ошибок
  • SiteId : Id для сайта, указанного в триггере. Он будет собран как часть потока.
  • Roles (роли): Этот массив JSON сообщает Graph, какие разрешения должны быть предоставлены приложению. Я установил значение по умолчанию «Read».
  • AccessToken: Это токен доступа, необходимый для запросов Graph API. Поскольку Graph использует токены Bearer, я уже задал эту часть токена, а остальные будут получены при вызове конечной точки авторизации.

Первое, что делает этот поток, — проверяет, нужен ли приложению доступ на запись, и при необходимости обновляет переменную Roles.

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

После сохранения всей этой информации создается тело запроса и отправляется POST-запрос на сайт SharePoint для настройки разрешений.

Если в каком-либо из блоков возникает ошибка, поток переходит в область Catch, обновляет переменную IsError до true. В самом конце потока проверяется, была ли поймана ошибка. Если да, то поток завершается со статусом Failed. Если нет, поток завершается успешно, и теперь ваше приложение должно иметь доступ только к указанному вами сайту SharePoint.

Разрешение Site.Selected Graph открывает новые возможности для ваших сотрудников по созданию приложений, использующих Graph для взаимодействия с сайтами SharePoint, не ставя под угрозу безопасность всего арендатора. Это разрешение было критически важным для моей работы по поощрению сотрудников к созданию собственных решений автоматизации.

Оцените статью
devanswers.ru
Добавить комментарий