Microsoft Graph.Доступ к OneDrive с собственной идентификацией приложения - PullRequest
1 голос
/ 08 марта 2019

В мобильном приложении мы генерируем несколько изображений, которые мы хотели бы загрузить в облако клиента. Клиент использует OneDrive For Business со всем пакетом 360 (у меня нет больше информации об этом).

То, что мы хотели бы сделать, - это иметь возможность сохранять изображения в учетной записи OneDrive без необходимости входа пользователя. Вся документация, которую я нашел для аутентификации в OneDrive, включает в себя интерактивный процесс входа, который мы не делаем. не хочу: https://docs.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/graph-oauth?view=odsp-graph-online

Я обнаружил, что для Microsoft Graph существует возможность использования собственной идентификации приложения для входа (только REST), но мне не на 100% ясно, что эта аутентификация может предоставить доступ к OneDrive. https://docs.microsoft.com/en-us/graph/auth-v2-service

Поскольку я совсем не знаком с облачной инфраструктурой Microsoft, буду признателен за некоторую информацию.

Возможно ли на самом деле получить доступ к папке OneDrive, проходящей аутентификацию с использованием собственной идентификации приложения?

1 Ответ

1 голос
/ 08 марта 2019

Да, должна быть возможность работать с файлами Microsoft Graph API и One drive с использованием идентификатора приложения (т. Е. Без входа пользователя)

REST API, которые должны помочь

Знайте, что существует множество SDK / клиентских библиотек, доступных для Microsoft Graph API, с которыми вы можете работать в зависимости от вашей платформы.например, Клиентская библиотека Microsoft Graph .NET .Поскольку вы упомянули только REST, я даю ссылки на прямые API REST здесь.

  1. Загрузка файлов (до 4 МБ) - Загрузка API REST

    Минимальное необходимое разрешение будет Files.ReadWrite.All (в соответствии с разрешениями приложения и сначала для этого разрешения приложения требуется согласие администратора. Если вы не знакомы с процессом получения согласия, посмотрите здесь: Согласие Azure ADFramework и упоминание в комментариях, я могу добавить немного больше деталей, если это необходимо)

    enter image description here

  2. Загрузка файлов большего размера - API REST возобновляемой загрузки

    enter image description here

Аутентификация

С точки зрения потока вам потребуется использовать OAuth 2.0 Client Credentials Grant Flow для аутентификации

ПРИМЕЧАНИЕ : обратите внимание, что этопоток предназначен только для конфиденциальных клиентов.Поэтому вам не следует использовать его непосредственно из мобильного клиента или даже настольного клиента (например, WPF или консольного приложения), так как это публичные клиенты, которые не могут безопасно обрабатывать клиентские секреты.Ваш мобильный клиент должен вызвать бэкэнд-API, который, в свою очередь, может вызывать Microsoft Graph и использовать клиентские секреты, действуя как демон с использованием разрешений приложения.

В конце этой ссылки есть примеры кода, доступные для .NET Core.2.1 и ASP.NET MVC.

...