2016-07-12 2 views
0

Возможно ли использовать приложение daemon (только приложение, без аутентифицированного пользователя) для доступа к содержимому SharePoint Online через API-интерфейс Microsoft Graph? Если нет, каковы мои варианты?Доступ к файлам SharePoint Online из приложения daemon

Я пробовал:

https://graph.microsoft.com/v1.0/drives/<id> 

Но получил доступ запрещен.

Доступ диск в Office 365 групп работает через:

https://graph.microsoft.com/v1.0/groups/<id>/drive 

Это, как я получить маркер авторизации:

https://login.microsoftonline.com/<tenant id>/oauth2/token 
resource=https://graph.microsoft.com 
grant_type=client_credentials 
client_id=<client id> 
client_secret=<client secret> 

ответ

0

Причина, по которой вы можете прочитать файлы группы является то, что app- только токен имеет Group.Read.All правило. Нет такой области приложения, как Files.Read.All, чтобы разрешить приложению читать все файлы на онлайн-сайте SharePoint.

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

Если вы хотите, чтобы приложение получило файлы, вход в систему не вошел в систему, возможно, что вы сможете вручную получить токен доступа и обновить токен в первый раз и сохранить их в приложении. Затем вы можете вызвать REST API с токеном доступа и обновить токен доступа/обновить токен, когда он истек.

Вы можете отправить отзыв от here, если вам нужна эта функция.

+0

Спасибо за ваш ответ. Вы говорите, что приложение daemon может работать в течение нескольких месяцев с помощью токена обновления? Он будет запускаться один раз в день. – Christophe

+0

Да. Точки обновления действительны в течение 14 дней, и при непрерывном использовании они могут быть действительны до 90 дней. Через 90 дней пользователям будет предложено повторно аутентифицироваться. См. Подробности [здесь] (https://support.office.ком/EN-US/статьи/Session-таймауты-для-офиса-365-37a5c116-5b07-4f70-8333-5b86fd2c3c40? Ui = EN-US и Rs = EN-US и объявления = US). –

0

Вы проверили Build service and daemon apps in Office 365. Основная идея - создать приложение Azure AD для использования токена только для приложений. Ниже приводится краткое описание шагов:

  • Создать свой Azure AD App
  • Создать сертификат для обеспечения безопасности вашего маркера процесса запроса. Вам нужно для обновления информации сертификата в файле манифеста приложений Azure AD.
  • Конфигурируйте конфигурацию Azure AD App, чтобы разрешить определенное разрешение в списке «Разрешения приложения».

Используя токен только для приложений, ваше приложение может использовать другие приложения внутри вашего Azure AD. Вы можете позвонить https://graph.microsoft.com/v1.0/{user's UPN or ID}/drive/root/children, чтобы получить файлы этого пользователя на основе Graph API. Я попытался использовать этот подход для доступа к содержимому внутри списков SharePoint и библиотек doc. Когда я обновил элемент списка или документы, «Модифицированное» было показано, что имя Azure AD App. Я также использовал тот же подход для доступа к Outlook для отправки электронной почты от имени учетной записи службы. Для получения подробной информации, пожалуйста, обращайтесь к Send email on behalf of a service account using Office Graph API

Надеюсь, это поможет и сообщит мне, если у вас есть вопросы по настройкам только для приложений.

+0

Спасибо. Не могли бы вы показать мне пример вызова REST для доступа к списку SharePoint? Например, как мне получить доступ к элементам в списке задач под названием ToDoList на сайте mytenant.sharepoint.com/SiteName? – Christophe

+0

Для полной версии, пожалуйста, обратитесь к https://github.com/frankchen76/MediumSample/tree/master/AppOnlySPOSample, который я только что создал. –

+0

спасибо, но я боюсь, что это не то, что я ищу. Мой вопрос заключается в доступе к спискам SP через Graph API, и из того, что я понимаю, ваш пример касается доступа к электронной почте (и без Graph API). – Christophe

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