Я пытаюсь загружать и скачивать файлы с моей точки доступа в Интернете с помощью фоновой задачи (демона), которая часто запускается в моем приложении ASP.NET Core.Поскольку это фоновая задача, идентификация пользователя не используется.Вместо этого я попытался проследить за этим документом , получив токен доступа с помощью области действия https://graph.microsoft.com/.default
, а также установив для моего корпоративного приложения на Azure определенные разрешения, уже предоставленные администратором.
Я могу получить токен доступа, используя идентификатор и секретный ключ моего приложения.Однако, когда я пытаюсь запросить диски на определенном сайте на sharepoint, он просто останавливается, намекая на то, что он не может найти путь.Я могу достичь этого же пути совершенно нормально, если вместо этого использую свои учетные данные.
Я думаю, что мне не хватает шага или какой-то лазурной задачи, связанной с администрированием.Ниже приведен фрагмент кода, который показывает, что я могу получить токен доступа, но останавливается при получении дисков.
var client = new ConfidentialClientApplication(id, uri, cred, null, new SessionTokenCache());
var authResult = await client.AcquireTokenForClientAsync(new[] {"https://graph.microsoft.com/.default"});
var token = authResult.AccessToken; // get token successfully
var graphServiceClient = new GraphServiceClient(new DelegateAuthenticationProvider(async request => {request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token)}));
// stalls below
var drives = await graphServiceClient.Sites[<sharepoint_host>].SiteWithPath(<known_path>).Drives.Request().GetAsync();
Использование Microsoft Graph SDK в приложении ASP.NET Core 2.
Редактировать: ниже приведен обновленный снимок экрана, показывающий добавленные и согласованные разрешения приложения: