2017-02-06 6 views
1

Я пытаюсь получить доступ к API REST SharePoint [Online] из внешнего приложения. Я зарегистрировал его в Azure под учетной записью администратора и назначил ему соответствующие разрешения, делегированные пользователям (Office 365 SharePoint Online).Azure AD OAuth Аутентификация с ADAL: что такое идентификатор ресурса?

Я использую ADAL.js, чтобы позвонить по телефону acquireToken и использовать этот токен в своем заголовке Authorization. Действительный вид лексема получает прилагается, но я получаю следующее сообщение об ошибке 401 в ответ:

Exception of type 'Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException' was thrown

Метод acquireToken() не принимать resource параметров, а также от того, что я прочитал в Интернете , это значение для API-интерфейса SharePoint должно быть https://[tenant].sharepoint.com, но это возвращает только токен-маркер-носитель null.

То, что я делаю вместо этого (которое вызывает предыдущую ошибку 401), - это просто установить ресурс на идентификатор приложения, сгенерированный в Azure. Это заканчивается тем, что вы устанавливаете как токен в моем кеше localStorage. Таким образом, токен-носитель возвращает, но я получаю исключение.

Два вопроса:

  1. Что такое строка ресурса, и то, что соответствующее значение для вызова на acquireToken(), видя, что вызов его с моим приложением ID (то же самое, я использую как идентификатор клиента в моей конфигурации ADAL) является единственным значением, которое успешно возвращает токен-носитель? Есть ли список правильных строк ресурсов для каждого API Microsoft? У меня возникли проблемы с поиском документации по этой теме.

  2. Является ли проблема с моей конфигурацией на Azure?

Спасибо!

+0

Вы когда-нибудь это понимаете? У меня такая же проблема. я вижу, что возвращался дополнительный заголовок ответа (x-ms-diagnostics: 3000003; reason = "Недопустимая аудитория Uri 'f8f8d2ad-7c9d-4aac-80eb-3f00a263c879'."; category = "invalid_client") – Russellg

ответ

2

Чтобы использовать онлайн-опрос SharePoint, мы можем использовать службу REST службы поиска, чтобы найти конечную точку службы SharePoint. Вы можете найти весь идентификатор ресурса службы из serviceResourceId ответа.

Вы также можете рассмотреть возможность использования Microsoft Graph, который предоставляет множество API-интерфейсов от Office 365 и других облачных сервисов Microsoft через одну конечную точку.

Подробнее об услуге поиска REST API, вы можете обратиться here.

Смежные вопросы