【问题标题】:Is it possible to use multiple authentications in a Google Apps Script web-app?是否可以在 Google Apps Script 网络应用程序中使用多重身份验证?
【发布时间】:2019-09-12 16:38:37
【问题描述】:

我知道如何编写网络应用程序并以自己的身份发布。我想做的是发布一个网络应用程序,以便它可以访问我的数据用户数据。

例如,网络应用会从拥有的工作表中读取数据,然后将其添加到用户拥有的工作表中。

我意识到一种方法是让任何知道链接的人都可以访问 my 工作表,并让网络应用程序在 user 的上下文中运行。当用户查看网络应用程序时,它将在用户的上下文中运行,因此它可以访问他们的工作表和自我的 工作表可供任何拥有链接的人查看,该链接将能够访问 我的 工作表。

但是,我试图做到这一点,但不让任何知道链接的人都可以访问 my 工作表。

这可能吗?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    解决方法#1:两个网络应用

    使用两个网络应用并处理这两者之间的身份验证:

    • WebApp#1:访问工作表的 API

      • 以“我”身份执行
      • 访问权限:“任何人,甚至是匿名的”
      • 处理传入的 POST 请求:检查必要的授权、验证请求并从工作表返回数据。
    • WebApp#2:面向用户的应用

      • 以“用户访问网络应用”的身份执行
      • 访问权限:“任何人”
      • 用户从您的工作表中请求数据> 客户端请求服务器(google.script.run)> 服务器使用UrlFetchApp 发布请求以及必要的授权标头> 接收并解析工作表数据并将其提供给客户端。
    • 注意事项:

      • 此设置的安全性仅与网络应用之间使用的授权/身份验证一样强大。

    解决方法#2:客户端 Google 登录

    【讨论】:

    • @IMTheNachoMan 还有第三个(虽然更复杂)选项,您可以利用服务帐户访问您的工作表,而不会牺牲隐私。一个缺点是这种方法需要一个 GCP 项目。但是,可能存在您可以利用的漏洞。服务帐户不需要绑定到您公司的 GSuite 域,因此可以使用单独的非公司帐户创建服务帐户并在您的项目中使用它。你认为你的公司会同意吗?
    • @DimuDesigns 不。我很确定这会让我被解雇。但我会调查一下。我必须先弄清楚如何创建服务帐户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 2016-10-07
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多