Как поделиться авторизацией API Google для надстройки скрипта Google Apps с другим проектом Google Cloud? - PullRequest
0 голосов
/ 27 апреля 2018

Компоненты системы

client-secrets-addon.json выглядит так:

{"web":{
"client_id": "57...1t.apps.googleusercontent.com",
"project_id": "project-id-95...70",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url":
"https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "K2...y1",
"redirect_uris": ["https://script.google.com/oauthcallback"]
}}

Владелец не имеет права добавлять к нему другой URI перенаправления. Очевидно ограничение безопасности, специфичное для клиента по умолчанию любого проекта скрипта Apps. Похоже, мы не можем просто использовать тот же идентификатор клиента в новом веб-приложении .

Использование футляры

Установка дополнения владельцем ресурса

Администратор G Suite или владелец ресурса устанавливает надстройку для файлов на Google Диске. Во время установки пользователю предоставляется экран согласия OAUTH2 для предоставления необходимых областей для Google Диска и нескольких других областей API Google (включая автономный доступ).

Сработало дополнение

Пока пользователь без учетной записи Google работает с владельцем ресурса в Google Диске ( file ), срабатывает надстройка , Надстройка «выполняется как я» (владелец скрипта). От имени владельца надстройка отправляет уведомления другим пользователям.

Пользователи отвечают на уведомления

При получении уведомления пользователи (не учетная запись Google) направляются в веб-приложение для определенных действий. В результате веб-приложению снова требуется доступ к файлу .

.

Проблемы

  1. Веб-приложение ранее было реализовано в том же сценарии, что и надстройка . Есть много владельцев ресурсов и администраторов, которые уже предоставили области, и мы не хотим нарушать надстройку из-за отсутствия областей для нового веб-приложения .

  2. Поскольку владелец ресурса отсутствует в то время, когда веб-приложение 1095 * обращается к файлу , веб-приложение Приложению нужны области во время установки, так же как и у дополнения .

Требования

  1. Оптимальное взаимодействие с пользователем было бы, если бы у владельца ресурса была только одна авторизация при установке дополнения .

  2. Существующие владельцы ресурсов не обязаны повторять авторизацию в новом веб-приложении , чтобы избежать сбоев.

  3. В списке приложений, имеющих доступ к аккаунту Google, отображение надстройки и веб-приложения в качестве одного приложения и отзыв доступа однозначно аннулирует доступ для обоих компонентов.

  4. Если единственный вариант, отвечающий этим требованиям, мы рассмотрим размещение веб-приложения в том же проекте, что и надстройка .

Как лучше всего делиться уже завершенными авторизациями API Google для дополнения , чтобы новое веб-приложение 1145 * могло их использовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...