Я использую Microsoft Graph SDK, чтобы получить токен доступа для моего приложения (не пользователя) для чтения с sharepoint. Я следил за этим документом , а также разместил этот ТАК вопрос . Код в связанном SO такой же. Я смог добавить разрешения для приложений, а также предоставить их (нажав кнопку) на портале Azure. Проблема в том, что токен, который возвращается для использования, не содержит никаких ролей / заявок scp. Поэтому, когда я использую токен, я получаю сообщение "Требуется либо утверждение scp, либо роли в сообщении токена" .
Просто чтобы быть уверенным, единственное значение для моей области, которое я передаю при получении токена доступа: https://graph.microsoft.com/.default
. Я не передаю ничего, как Sites.ReadWrite.All (я получаю исключение, если я все равно добавлю эту область). Я не уверен, как продолжить устранение неполадок, и любая помощь будет оценена.
Редактировать: добавлен код с использованием графического SDK, показанного ниже:
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;
var graphServiceClient = new GraphServiceClient(new DelegateAuthenticationProvider(async request => {request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token)}));
var drives = await graphServiceClient.Sites[<sharepoint_host>].SiteWithPath(<known_path>).Drives.Request().GetAsync();