Я пытаюсь получить доступ к REST API SharePoint [Online] из внешнего приложения. Я зарегистрировал его в Azure под учетной записью администратора и назначил ему соответствующие разрешения, делегированные пользователем (Office 365 SharePoint Online
).
Я использую ADAL.js для вызова acquireToken
и использую этот токен в моем заголовке Authorization
. Прилагается действительный токен, но в ответе появляется следующая ошибка 401:
Exception of type 'Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException' was thrown
Метод AcquaToken () принимает параметр resource
, и из того, что я читал в Интернете, это значение для API SharePoint должно быть https://[tenant].sharepoint.com
, но оно возвращает только токен носителя null
.
Вместо этого я делаю (что вызывает предыдущую ошибку 401) просто устанавливаю для ресурса идентификатор приложения, созданный в Azure. В конечном итоге это устанавливается как токен в моем кеше localStorage. Токен на предъявителя действительно возвращается, но я получаю исключение.
Два вопроса:
Что такое строка ресурса и какое значение следует вызывать в AcquaToken (), поскольку вызов ее с идентификатором моего приложения (то же самое, что я использую в качестве идентификатора клиента в моей конфигурации ADAL) является единственным значением, которое возвращает токен на предъявителя успешно? Есть ли список подходящих строк ресурсов для каждого Microsoft API? У меня возникли проблемы с поиском документации по этой теме.
Проблема с моей конфигурацией в Azure?
Спасибо!