Sharepoint REST API от собственного клиента без пользователя - PullRequest
0 голосов
/ 27 сентября 2018

Я понимаю, как получить доступ к API REST Sharepoint с помощью интерактивной аутентификации, то есть, когда пользователь на компьютере вводит имя пользователя / пароль в веб-приложение.Есть ли способ позволить приложению командной строки получить доступ к API?например, подключиться и запросить список Sharepoint без вмешательства пользователя?

Я зарегистрировал собственный клиент в клиенте и у него есть AppId (без секрета приложения), но все вызовы API возвращают 401 Unauthorized.Я также пытался получить доступ через Graph API, но получил 403 Forbidden.Они оба используют access_token из начального потока client_credentials зарегистрированного веб-приложения-арендатора, которое, как я ожидал, сработало.

Кажется невозможным получить access_token, используя только AppId в качествеДля потока требуется секрет клиента.

Это говорит:

Этот тип разрешения требует согласия администратора и также недоступен для собственных клиентских приложений

, который, кажется, не имеет смысла, поскольку требует прав администратора для чего-то, что не может быть сделано.Если нативные клиенты не могут получить доступ к API, не ясно, для чего они.Возможно, вышеизложенное относится к веб-приложениям, а не к собственным клиентам, т. Е. Администратор может разрешить веб-приложению подключаться с помощью access_token без пользовательского контекста.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Что касается получения токена от SharePoint (с использованием API REST API), пожалуйста, смотрите мой ответ на этот пост: https://stackoverflow.com/a/52582017/6445723

Механизм в основном такой же, вы выполняете запрос POST, описанный там из вашего приложения.и получите ответ в свойстве FormDigestValue.Впредь используйте это значение во ВСЕХ ваших вызовах API, поместив его в HTTP-заголовок X-RequestDigest.

AFAIK Нет разницы в механизмах аутентификации для собственных клиентов или других веб-приложений.Некоторые библиотеки, такие как SharePoint PnPJS, могут абстрагироваться от вызова REST, описанного выше, но они делают одно и то же.

0 голосов
/ 27 сентября 2018

Необходимо включить учетные данные базовой проверки подлинности, отправляемые в виде открытого текста в поставщики проверки подлинности.Перейдите в Central Admin >> Безопасность >> Провайдеры аутентификации безопасности >> В раскрывающемся списке справа выберите Приложение и щелкните по умолчанию

Установите флажок Базовая аутентификация в типах аутентификации на основе утверждений

...