Получите доступ к SharePoint локально с помощью токена, полученного от Azure AD и ADAL.

Цель

Получите доступ к локальным данным SharePoint с помощью запросов REST из мобильного приложения на основе Apache Cordova с использованием OAuth.

Что я пробовал до сих пор

1. Мобильные службы Azure/гибридное подключение/AAD/ADAL

Аналогично сообщению в блоге Доступ к SharePoint от имени пользователя, но с локальным сервером вместо O365:

  1. Вход на стороне клиента с помощью ADAL для Apache Cordova.
  2. Мобильная служба, подключенная к локальному серверу через гибридные соединения.
  3. Использование ADAL.net для получения маркера для сервера SharePoint с помощью маркера, полученного на шаге 1.

Это работает нормально, за исключением третьего шага, поскольку между локальным сервером и AAD нет соединения, поэтому получить токен невозможно.

2. То же, что и выше, плюс прокси приложения Azure.

Мы настроили Azure Application Proxy, как описано Кирком Эвансом в этом сообщение. Приложению Azure AD для мобильной службы предоставляется разрешение на доступ к приложению для прокси приложения (в том же клиенте Azure AD).

Теперь шаги с первого по третий работают нормально. Нам удалось получить токен, используя URL-адрес прокси-сервера приложения в качестве ресурса. Затем мы попытались выполнить запрос REST с использованием токена следующим образом:

GET https://<server>.msappproxy.net/_api/web/title
Authorization: Bearer <the token>
Accept: application/json;odata=verbose

Но это отправляет перенаправление 302 на https://login.microsoftonline.com. Я попытался эмулировать рукопожатие, выполняемое при использовании браузера, отправив токен как id_token= в прокси-сервер приложения, но это кажется немного надуманным и не предназначено для настройки прокси-сервера приложения Azure.

Я думаю, что недостающая часть заключается в том, чтобы включить аутентификацию на основе токенов для локального SharePoint. Я не мог найти ничего о том, как это сделать. Я рассматривал возможность изучения установки приложений SharePoint (теперь надстроек) на локальном сервере. Сомневаюсь, что это решит проблему. Я попытался подключить сервер к AAD, используя следующий метод: Как использовать сайт Office 365 SharePoint для авторизации приложений, размещенных у поставщика, на локальном сайте SharePoint. Опять же, это было больше похоже на выстрел в темноте.

Вопрос

Как получить токен для AAD и использовать его для выполнения запросов к локальному SharePoint из мобильного приложения Cordova?


person Stefan    schedule 04.06.2015    source источник
comment
Вы когда-нибудь находили способ заставить это работать?   -  person wohanley    schedule 10.09.2016
comment
Удалось решить эту проблему?   -  person Lukas    schedule 30.10.2019