У меня есть простая веб-часть React SPFX. Мы развернули его на нашем сайте SP Online. В настоящее время он отображает группы SP текущего пользователя.
const queryUrl = `${this.context.pageContext.site.absoluteUrl}/_api/web/currentuser/groups`;
const siteGroupsData = await this.context.spHttpClient.get(
queryUrl,
SPHttpClient.configurations.v1
);
const siteGroups: any[] = (await siteGroupsData.json()).value;
const justNames = siteGroups.map((m) => m.Title);
const groups = justNames.join(",");
Мне нужно также отображать группы\роли AAD?
Нужно ли мне использовать Microsoft Graph? МСАЛ? Как? Столько старой и запутанной информации.
Я попытался использовать следующее
import { Providers, SharePointProvider } from "@microsoft/mgt";
Providers.globalProvider = new SharePointProvider(this.context);
Вышеприведенное приводит к следующей ошибке в консоли: InteractionRequiredAuthError: AADSTS65001: Пользователь или администратор не дал согласия на использование приложения с идентификатором '' под названием "Главное веб-приложение для расширения возможностей клиента SharePoint Online". Отправьте интерактивный запрос авторизации для этого пользователя и ресурса. Идентификатор трассировки: Идентификатор корреляции: Отметка времени: 2022-11-15 15:07:21
Это проблема только с Workbench?
Я вижу примеры в Интернете, которые предназначены для полных SPA REACT, но это веб-часть, и пользователь уже вошел в систему. Я не чувствую, что мне нужно запрашивать токен. Возможно, это просто необходимая настройка конфигурации SP Online.
Спасибо!
Эта ошибка AADSTS65001: The user or administrator has not consented to use the application with ID '' named 'SharePoint Online Client Extensibility Web Application Principal'. Send an interactive authorization request for this user and resource.
В основном происходит, когда администратор не дал согласия на доступ к приложению.
В SPFx запросы могут быть одобрены или отклонены администратором в процессе аутентификации.
В этом случае доступ запрещен с ошибкой
Пожалуйста, проверьте то же самое с администратором или включено ли согласие пользователя.
Убедитесь, что они получили согласие.
А также проверьте, разрешено ли согласие пользователя для этого приложения в корпоративных приложениях > usersettings.or (здесь)
Установите значение Не разрешать в зависимости от приложения.
Все эти разрешения обычно хранятся в SharePoint Online Client Extensibility Azure AD application
, которые предоставляются через запросы веб-API. Таким образом, эта проблема возникает в основном из-за отсутствия согласия администратора или пользователя.
Администратор мог отключить разрешения с помощью Disable-SPOTenantServicePrincipal
или запретить это разрешение с помощью Deny-SPOTenantServicePrincipalPermissionRequest -RequestId <Guid>
. См. Глобальные администраторы и администраторы SharePoint могут управлять запросами с помощью команд powershell.
Если администратор дает согласие на необходимые разрешения, запрос будет успешным.
Обратите внимание, что гостевой пользователь не имеет прав на запрос нескольких количество более 1 пользователя, например:
/groups/{id}/members
Справочник по разрешениям Microsoft Graph - Microsoft Graph | Обучение Майкрософт
Для веб-части spfx существует известная проблема при использовании API-интерфейса Microsoft graph мы не можем получить заявки на роли, поскольку он использует неявное предоставление с делегированными разрешениями, которые не предоставляют роли.
См. ниже расшифрованный токен, который не имеет требования wids.