Как передать токен доступа SharePoint из приложения логики в конечную точку HTTP - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть приложение логики, которое запускает мою конечную точку HTTP каждые 15 минут.Затем конечная точка подключается к SharePoint с помощью Rest API и получает данные из определенного списка, который затем добавляется в мою базу данных.

Но чтобы получить данные из SharePoint, мне нужен токен доступа.Нужно ли мне писать логику для получения токена доступа в самой конечной точке?или есть какой-либо для передачи токена доступа из моего логического приложения при запуске моей конечной точки?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

"Но чтобы получить данные из SharePoint, мне нужен токен доступа. Нужно ли мне писать логику для получения токена доступа в самой конечной точке?"

Правильно, вам нужен токен доступа на предъявителя.Где вы размещаете код для своей конечной точки HTTP?Если вы можете поместить его в Azure как функцию или веб-API, вы можете реализовать разрешения только для приложений, которые дадут вам необходимый токен доступа.

Для этого есть 2 варианта:

  1. Предоставление доступа только через приложение Azure AD
  2. Предоставление доступа с использованием SharePointТолько для приложений

Первый вариант немного сложнее, поскольку для него требуется секрет клиента и самозаверяющий сертификат безопасности, но он предоставит вам разрешения для любого API O365.Второй вариант проще и требует только идентификатора приложения / клиента и секрета, но разрешает только разрешения для API отдыха SharePoint.

В приведенной выше документации MSDN для создания сертификата безопасности используется сценарий PowerShell, но яПредпочитаю инструкции Bob German для создания / экспорта вручную.Он также включает инструкции по регистрации приложения Azure AD для вашей функции Azure в своем руководстве.

0 голосов
/ 11 декабря 2018

Как первый ответ.Да, реализовать логику для получения токена доступа в конечной точке HTTP с помощью API REST SharePoint Online.Через такие направляющие могут быть 1 , 2 , 3 , 4 .Я думаю, что не существует способов передачи токена доступа из приложения логики Azure в конечную точку.

Как ответ second Я могу предложить использовать объектную модель SharePoint CSOM.Чтобы использовать его, просто установите SDK клиентских компонентов Online Online на компьютер, на котором расположена конечная точка HTTP, и добавьте библиотеки Microsoft.SharePoint.Client.dll Microsoft.SharePoint.Client.Runtime.dll в качестве ссылок.Существует хороший класс SharepointOnlineCredentials для предоставления учетных данных запросам.

Или другими способами - вы можете изменить архитектуру своего решения:

.1.Приложения логики Azure, если я правильно понял, должны попросить вас установить соединение с SharePoint с помощью готовых функций.Смотрите эту статью .Я думаю, что вы можете получать элементы списка из SharePoint с помощью действий в приложении логики Azure и передавать данные на конечную точку HTTP без каких-либо дополнительных запросов маркеров доступа в качестве аргументов метода.0,2.Если у вас есть доступ к конечной точке HTTP из SharePoint, вы можете отправлять данные из SharePoint напрямую в конечную точку, а не из приложений логики Azure.Вы можете сделать это со страниц формы элементов списка, из рабочих процессов сайта или с помощью некоторых шаблонов потока.0,3.Если у вас нет доступа к конечной точке HTTP из SharePoint, вы можете создать размещенную веб-службу Azure и вызывать ее методы из SharePoint любым способом.Этот веб-сервис будет передавать данные вашей конечной точке HTTP в качестве аргументов метода без какой-либо дополнительной аутентификации.Вызов веб-службы будет выполняться из JavaScript при сохранении формы списка, из рабочего процесса SharePoint.Возможно, получить токен доступа к этому веб-сервису Azure будет проще, чем от конечной точки HTTP к SP.+0,4.Вы используете базу данных SQL Azure?Если да, создайте соединение между SharePoint Online и базой данных SQL Azure с помощью Business Connectivity Services BCS.Как здесь или здесь или здесь .Это позволяет пользователю получать, создавать и обновлять элементы в базе данных, встроенные в список SharePoint, с помощью встроенных функций.0,5.Создавайте периодически запускаемый код (Консольное приложение, скрипт PowerShell, служба Windows).Запланируйте это на каком-нибудь сервере в вашей компании.Этот код будет использовать объектную модель CSOM SharePoint и будет легче подключаться к SharePoint через класс SharepointOnlineCredentials, получать данные и подключаться к конечной точке HTTP напрямую или к базе данных.+0,6.Если ваша база данных находится на локальном сервере MS SQL, то вы можете использовать это руководство для создания типов контента Business Connectivity Services между SharePoint Online и локальным SQL Server.

Вы можете пойти несколькими экстравагантными путями: =)1. SharePoint некоторым образом может отправлять электронные письма с данными из элементов списка в некоторые входящие сообщения, и ваша конечная точка HTTP может получать эти электронные письма, анализировать данные и выполнять следующие шаги.2. Может быть, вы можете создать пакет Sql Server Integration Service (SSIS) на локальном MS SQL Server компании, который будет периодически отправлять данные из SharePoint в вашу базу данных напрямую или в конечную точку HTTP напрямую.3. Другие способы ...

...