Можно ли хранить секреты в файле Code.gs?

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

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

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

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


person Alex3917    schedule 03.07.2018    source источник


Ответы (1)


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

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

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

person hhsb    schedule 04.07.2018