Как управлять различными ролями / разрешениями для пользователей веб-приложения Google Apps Script без доступа к Справочнику администратора? - PullRequest
0 голосов
/ 20 июня 2019

Во-первых, несколько начальных точек:

  • Это для G-Suite Enterprise (на работе)
  • У меня нет доступа к API-интерфейсу администратора, кроме viewType: domain_public
  • Я могу создавать, публиковать и развертывать Web-приложения
  • Я знаю, что раздвигаю пределы / границы GAS, но это потому, что у меня нет доступак полноценной платформе разработки с веб-сервером, БД и т. д. Я уверен, что смогу заставить ГАЗ делать то, что я хочу / нуждаюсь - мне просто нужна помощь, чтобы выяснить, как это сделать.

Я хочу написать веб-приложение в GAS, в котором пользователи имеют различные возможности / разрешения / представления в веб-приложении .Для простоты и упрощения объяснения, скажем, я пишу систему запросов, где пользователи могут отправлять запросы в мою команду, чтобы что-то сделать.«БД» для веб-приложения будет различным Google Sheets.Он будет поддерживать все запросы, их статус, метаданные и т. Д. Я знаю, как это сделать без проблем.

Некоторые различные разрешения для веб-приложения:

  • Отправить запрос
  • Просмотреть запрос
  • Редактировать запрос
  • Удалить запрос
  • Обновить определенное поле для запроса

Я не уверен, как лучше всего выполнить управление и применение этих разрешений.

До сих пор я думал о том, чтобы использовать Google Sheet для поддержки пользователей и разрешений:

  • Публикация и развертывание веб-приложения для выполнения от имени меня
  • Thisразрешит веб-приложению доступ к Google Sheets, доступ к которому есть только у меня
  • . В указанном Google Sheet я буду вести список адресов электронной почты пользователей и их разрешения в веб-приложении
  • Когда пользователь получает доступ к веб-приложению, код просматривает его на указанном листе и затем позволяет ему делать то, что ему разрешено

Я думаю, что это будет работать теоретически, но это не такуверен, насколько это будет безопасно.Может ли администратор, не являющийся G-Suite, подделать другого пользователя, получив доступ к веб-приложению и каким-либо образом передавая адрес электронной почты других пользователей в сеансе, чтобы веб-приложение считало, что это пользователь, а не реальный пользователь?(Я не беспокоюсь о том, что не администраторы G-Suite могут получить доступ к каким-либо из этих данных.)

Существуют ли какие-либо функции / функции GAS, которые мне не хватает, которые могут мне помочь?Есть ли лучший / другой способ достижения моей цели?

...