Google Drive Access - Сервисный аккаунт или OAuth - Для чтения / записи пользовательских файлов - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть консольное приложение .NET, которое выполняет операции с файлами.Я хотел бы разрешить клиентам предоставлять нам доступ к их учетным записям на Google Диске, чтобы мы могли читать и записывать файлы.Наше консольное приложение работает как служба, поэтому у пользователя нет возможности взаимодействовать с ним и авторизовать наш доступ к его учетной записи Google Drive.

Я искал использование учетной записи службы Google для проверки подлинности на уровне приложения, пока яузнал, что учетная запись службы не имеет доступа к папке на Google Диске пользователя, который настраивает учетную запись службы.Этот вид поражает цель, потому что это учетная запись клиента Google Drive, к которой я стремлюсь получить доступ.

Я видел обходной путь, опубликованный членом SO @ pinoyyid отправленный в этомТак что ответьте , где токен обновления может быть сгенерирован с помощью Google Oauth2 Playground, но я обеспокоен тем, что токены обновления могут истечь, и потребуется вмешательство пользователя для создания другого.

В другом ответе упоминалось решениебыло создать учетную запись службы, а затем поделиться учетной записью Google Drive пользователя с учетной записью службы.

Каков рекомендуемый подход Google?Как лучше всего получить доступ к учетной записи Google Диска, при этом требуя от владельца только одноразовой аутентификации, но при этом предоставляя ему возможность аннулировать доступ в любое время?

1 Ответ

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

Как учетная запись службы, так и сохраненный токен обновления OAuth являются приемлемыми подходами. У каждого есть свои плюсы и минусы.

Сервисная учетная запись будет работать там, где вашим пользователям нужно только предоставить доступ к определенной папке, которую они могут предоставить в SA. Помните, что любые файлы, создаваемые SA, принадлежат SA и используют его по квоте. Вы не можете «предоставить общий доступ к учетной записи Drive для SA», вы можете использовать только отдельные папки.

Хранение RT является более допустимым вариантом. Вы не будете использовать игровую площадку OAuth, как описано в моем ответе, на который вы ссылаетесь, поскольку просить пользователей пройти через него очень сложно. Вместо этого вам нужно написать собственную службу регистрации / авторизации (вы можете использовать AppEngine, Lambda и т. Д., Чтобы не было проблем с написанием и размещением).

...