Можно ли хранить секреты в файле Code.gs? - PullRequest
0 голосов
/ 03 июля 2018

Поскольку мы можем получить адрес электронной почты пользователя из API надстройки Gmail, мне интересно, нужно ли нам аутентифицировать пользователей с помощью OAuth перед их взаимодействием с нашей внешней службой или мы можем полагаться на сохраненный секрет, чтобы гарантировать, что запросы, сделанные с адресом электронной почты пользователя, фактически поступают от пользователя с помощью надстройки Gmail.

Поскольку сценарии приложения выполняются на серверах Google и не могут быть изменены пользователем, мы могли бы просто HMAC тела запросов в запросах к нашему внешнему API с секретом, хранящимся в файле Code.gs. Это (возможно?) Гарантировало бы, что эта конечная точка действительно была атакована Google, и что лицо, делающее запрос, было владельцем данного адреса электронной почты.

Чтобы этот подход работал, хотя секрет в коде на самом деле должен был бы оставаться в секрете, иначе любой мог бы просто поразить эту конечную точку любым адресом электронной почты и опубликовать данные от имени других пользователей. Так действительно ли этот подход работает, или есть другое подобное решение, которое могло бы быть осуществимым?

В противном случае мы можем просто реализовать OAuth, но если есть более простой и безопасный подход, то это было бы предпочтительнее.

1 Ответ

0 голосов
/ 04 июля 2018

Допустим, вашему внешнему API нужен только ключ API (секретный) для авторизации пользователей. Вы можете определенно сохранить его, используя Свойства службы .

Но сложность в том, что у разных пользователей могут быть разные ключи API. Чтобы решить эту проблему, мы могли бы попросить пользователя ввести ключ API в пользовательском интерфейсе (хотя и не может быть замаскирован). Это очень простой подход.

Однако я бы порекомендовал использовать OAuth, так как это более чистый способ.

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