Вопросы безопасности скриптов Google Apps для конфиденциальных данных

Мне поручили создать систему для хранения документов сотрудников отдела кадров. Мы глубоко укоренились в платформе Google Docs (все наши документы создаются и обслуживаются через Google Apps), и у меня уже есть программа часов, построенная на скрипте Google Apps, работающая на нашем внутреннем сайте Google и извлекающая данные из Google Таблиц. Однако эта новая задача будет содержать гораздо более конфиденциальные данные, которые следует хранить в зашифрованном виде и обслуживать после использования двухфакторной аутентификации.

TL;DR: мне нужна помощь в создании системы для обслуживания веб-страниц в зашифрованном виде и с использованием двухфакторной аутентификации в экосистеме Документов Google.

Вот некоторый псевдокод, который, по моему мнению, может помочь описать то, что я ищу:

CODE.GS

//CONSTANT VARIABLES
var adminList = ['[email protected]', 
                 '[email protected]', 
                 '[email protected]'];

function doGet() {
  var htmlTemplate = HtmlService.createTemplateFromFile('Login_Prompt');
  var htmlOutput = htmlTemplate.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setTitle('Login to HR Module'); 
  return htmlOutput;
}

function processLogin(username)
{
  if(adminList.indexOf(username) > -1)
  {
    var htmlTemplate = HtmlService.createTemplateFromFile('Admin_Page');
    var htmlOutput = htmlTemplate.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setTitle('HR Management Module'); 
    return htmlOutput;
  }
  
  else
  {
    var htmlTemplate = HtmlService.createTemplateFromFile('User Page');
    var htmlOutput = htmlTemplate.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setTitle('Employee Profile'); 
    return htmlOutput;
  
  }
}

Вход-Prompt.HTML

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <h4>HR Management Console</h4>
    <p>Please log into this system using your Google Account Credentials</p>
    <form>
    Username: <input type="text" size = "6">
    Password: <input type="password" size = "4">
    <button>Submit</button>
    </form>
  </body>
</html>

User_Page.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <h4> Welcome, User!</h4>
    <h5>Profile</h5>
    <ul>
      <li>Sensitive information 1</li>
      <li>Sensitive information 2</li>
      <li>Sensitive information 3</li>
      <li>Sensitive information 4</li>
    </ul>
    <button>Update your profile</button>
    <!-Open Form to access and edit personal data->
    
    <h5> Documents</h5>
    <ul>
     <li>Document 1</li>
     <li>Document 2</li>
     <li>Document 3</li>
     <li>Document 4</li> 
    </ul>
    <button>upload a document</button>
    <!-Open Form to upload HR Documents->
 
  </body>
</html>

Admin_Page.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <p>Welcome, Manager!</p>
    <p>Users:</p>
    <ul>
      <li>LastName, FirstName 1 <button>Edit</button></li>
      <li>LastName, FirstName 2 <button>Edit</button></li>
      <li>LastName, FirstName 3 <button>Edit</button></li>
    </ul>
  </body>
</html>

Как я могу реализовать шифрование и двухфакторную аутентификацию для этого процесса. Возможно ли это сделать в экосистеме Документов Google с помощью скрипта Google Apps?


person Nathaniel MacIver    schedule 29.05.2017    source источник
comment
у вас может быть контейнер truecrypt/veracrypt на диске Google. хранить в нем файлы. пользователи могут загрузить контейнер, но для его открытия потребуется другой пароль.   -  person Sujay Phadke    schedule 29.05.2017
comment
В чем хранятся данные? Документ Google? Лист? Формы? Текстовый файл? База данных? Если данные находятся в документе, листе или форме, то при первом сохранении данные сохраняются любым способом, который использует Google. Вы не можете прервать этот процесс. Итак, передача данных от клиента к серверу — это то, что есть. В качестве альтернативы, если данные вводятся в веб-приложение, которым вы управляете, вы можете контролировать, будут ли данные дополнительно шифроваться при передаче с компьютера пользователя на сервер. У Google есть система двухэтапной аутентификации.   -  person Alan Wells    schedule 29.05.2017


Ответы (1)


Я думаю, что мы собираемся использовать базу данных MySQL, размещенную в Cloud SQL, с сертификатом SSL. Пока линия SSL не повреждена, я думаю, что встроенных мер безопасности Google Appscript должно быть достаточно для нас. Спасибо всем за помощь в продумывании этого!

person Nathaniel MacIver    schedule 04.07.2017