Эта компания, в которой я работаю, недавно перешла на использование Team Drive, и у нас было несколько приложений, которые взаимодействовали бы с Google Drive с помощью API Google Drive.Вызовы API будут разрешаться с использованием учетных записей службы Google, а доступ к определенным файлам будет предоставляться приложению путем предоставления доступа к файлу с электронной почтой учетной записи службы так же, как вы делитесь файлом с обычным пользователем.Теперь, когда мы перешли на Team Drive, я не могу предоставить доступ к учетной записи службы, поскольку связанный с ней адрес электронной почты не считается частью нашей организации.Я также рассмотрел возможность добавления учетной записи службы в нашей организации в качестве обычного пользователя с помощью панели администратора Google, но она позволяет только создавать новых пользователей, но не включать уже существующих.Единственное решение, которое я нашел, - разрешить совместное использование с внешними сторонами, что позволило бы мне обмениваться файлами Team Drive с учетной записью службы, которая будет считаться внешней стороной.Это решение рискованно и некорректно, так как приложения, использующие Сервисную учетную запись, являются частью нашей организации.Мы также не хотим разрешать общий доступ к внешним сторонам в целом по соображениям безопасности.
Я выполнил действия, описанные в Как получить доступ к Team Drive с помощью служебной учетной записи в Google Drive .NET API v3 и они работают, но, как упоминалось выше, они требуют предоставления доступа к внешним сторонам, что нам не нужно.
Идеальным решением было бы считать учетную запись службы частью нашей организации, но я не могунайти способ сделать это.
Я также пытался делегировать полномочия для всего домена учетной записи службы, как описано в https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority,, но, насколько я понимаю, это не то, что я хочу, так какпозволит учетной записи службы выдавать себя за других пользователей, но у нас есть учетная запись службы для выполнения процессов, которые происходят автоматически и не связаны с конкретным пользователем.
Я также выполнил действияздесь указано https://developers.google.com/admin-sdk/reports/v1/guides/delegation#delegate_domain-wide_authority_to_your_service_account для внесения в белый список конкретной службы API через администратора GoogleИнтерфейс безопасности, но это, похоже, ничего не делает, и я не уверен, что он должен делать, поскольку я уже включил Drive API для этой учетной записи службы на панели APIs & Services, где я изначально создал учетную запись службы.
Мы используем R, и поэтому я использую пакет googledrive , который имеет функции для работы с Team Drives, такие как:
googledrive::drive_find()
googledrive::team_drive_find()
googledrive::team_drive_get(id = "team-drive-id")
Я бы ожидалчтобы увидеть групповой диск, но я полагаю, что это невозможно, если только электронная почта учетной записи службы не является членом групповой программы, что невозможно, поскольку учетная запись службы (которая связана с нашей организацией через ее владельца) не считаетсячасть нашей организации.