Как найти владельцев сайтов в SharePoint Online с помощью SharePoint REST API/Graph API

Я пытаюсь найти всех пользователей, которым разрешен доступ к сайту в SharePoint Online.

Я могу сделать это через REST API SharePoint, используя следующий запрос:

https://<tenant>.sharepoint.com/sites/<site>/_api/web/RoleAssignments?$expand=Member/Users,RoleDefinitionBindings

Ответ содержит некоторые скрытые технические учетные записи, пользователей, которым явно предоставлены разрешения, и группы сайта SharePoint по умолчанию для участников и владельцев. Группа участников сайта SharePoint представлена ​​со следующим именем пользователя:

c:0o.c|federateddirectoryclaimprovider|<UUID>

Где <UUID> — идентификатор группы Azure. Затем я могу разрешить его элементы с помощью Graph API. Однако здесь отсутствует пользователь, указанный в пользовательском интерфейсе SharePoint как владелец сайта.

Однако группа владельцев сайта SharePoint представлена ​​со следующим именем пользователя:

c:0o.c|federateddirectoryclaimprovider|<UUID>_o

Где <UUID> — тот же идентификатор, что и раньше. Поэтому я не могу разрешить его членов с помощью Graph API, поскольку UUID дает мне группу участников, а UUID, включая суффикс, является недопустимым идентификатором группы.

Кроме того, REST API SharePoint, по-видимому, рассматривает эту группу владельцев (а также группу участников) как пользователя, а не как группу, поэтому я также не смог найти способ разрешить ее участников с помощью этого API.

Итак, как я могу определить реальных пользователей, которые являются владельцами сайта?

Большое спасибо!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
48
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Разве это не так просто?

https://<tenant>.sharepoint.com/sites/<site>/_api/site/owner

Это возвращает тот же объект <UUID>_o.

Adrian Diemer 26.04.2022 12:05
Ответ принят как подходящий

Решение описано здесь: https://docs.microsoft.com/en-us/sharepoint/modern-experience-sharing-permissions#team-site-permissions-and-office-365-groups

When you add owners or members to the Microsoft 365 group, they're given access to the SharePoint site along with the other group-connected services. Group owners become site owners, and group members become site members.

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

https://graph.microsoft.com/v1.0/groups/<UUID>/owners

Другие вопросы по теме