Загрузка содержимого файла SharePoint Online с использованием только аутентификации приложения - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь загрузить содержимое файла из SharePoint Online с помощью Azure Аутентификация приложения на основе AD. Мне удалось получить метаданные элемента списка с помощью этого механизма аутентификации с помощью API CSOM и Rest, но когда дело доходит до контента, происходит сбой с 401 неавторизованными ошибками. Я проверил, что токен аутентификации одинаков для метаданных и контента, но все равно не работает.

Я создавал аутентифицированный клиентский контекст с использованием библиотек PnP.Core следующим образом:

clientContext = new OfficeDevPnP.Core.AuthenticationManager().GetAzureADAppOnlyAuthenticatedContext(this.webUri.ToString(), this.settings.SharePointOnlineClientAppId, this.settings.SharePointOnlineTenantName, this.settings.SharePointOnlineCertPath, this.settings.SharePointOnlineCertPassword);

Затем я использую OpenBinary Direct для получения содержимого файла:

using (var clientContext = this.GetContext(targetUri))
            {
                clientContext.ExecuteQuery();
                using (var fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, encodedPath))
                {
                    using (FileStream writer = System.IO.File.Create(downloadPath))
                    {
                        fileInfo.Stream.CopyTo(writer);
                    }
                }
            }

Это работало нормально с аутентификацией пользователя при предоставлении имени пользователя и пароля, но это больше не вариант для меня.

Кто-нибудь успешно загружал контент из SharePoint Online, используя только аутентификацию приложений?

Является ли API отдыха или CSOM правильным подходом для этого или есть другой API, который можно использовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...