Разделы документации
Коннекторы

Google Drive: права доступа

Сервис-аккаунт и OAuth для Google Drive — полный список scope’ов, делегирование и типовые ошибки авторизации Google.

Два способа авторизации

  • Сервис-аккаунт с делегированием (рекомендуется) — организация выдаёт сервис-аккаунту право действовать от имени пользователей домена. Позволяет индексировать общие диски и «Мои диски» всех сотрудников.
  • OAuth от имени пользователя — коннектор видит то, что видит один конкретный пользователь. Подходит для точечных сценариев.

Полный список scope’ов

Для индексации и синхронизации прав Google Drive нужны:

https://www.googleapis.com/auth/drive.readonly
https://www.googleapis.com/auth/drive.metadata.readonly
https://www.googleapis.com/auth/admin.directory.group.readonly
https://www.googleapis.com/auth/admin.directory.user.readonly

Первые два — чтение файлов и метаданных; два admin.directory.* — чтение пользователей и групп домена, без них не работает синхронизация прав и перечисление «Моих дисков».

Настройка делегирования (domain-wide delegation)

  1. Откройте админ-консоль Workspace: Security → Access and data control → API controls → Domain-wide delegation → Add new.
  2. Укажите Client ID сервис-аккаунта (числовой, из консоли Google Cloud).
  3. В поле scope’ов вставьте все четыре строки списка выше — одной строкой, через запятую.
  4. Сохраните. Изменения применяются в течение нескольких минут.

В проекте Google Cloud должны быть включены Google Drive API и Admin SDK API (иначе запросы вернут 403 accessNotConfigured).

Типовые ошибки

«client not authorized for any of the scopes requested»

Самая частая ошибка. Причины:

  • делегирование не настроено или настроено для другого client ID — сверьте числовой Client ID сервис-аккаунта;
  • список scope’ов в админ-консоли отличается от списка выше (важно точное совпадение каждой строки, без лишних пробелов);
  • вы обновили Charo, а в новой версии расширился список scope’ов — добавьте недостающие строки в делегирование.

«403 accessNotConfigured»

В проекте Google Cloud не включён нужный API — включите Google Drive API и Admin SDK API.

«unauthorized_client»

Email основного администратора указан неверно (или у него нет прав администратора) — сервис-аккаунт имперсонирует именно эту учётную запись.

«invalid_grant»

Часы сервера Charo расходятся с реальным временем — проверьте NTP, либо JSON-ключ сервис-аккаунта отозван.

Проверка

После изменения прав нажмите повторную проверку учётных данных в карточке коннектора: Charo заново пройдёт авторизацию и сообщит, каких scope’ов не хватает.