将身份验证从一个Google Apps脚本Web应用程序传递到另一个Google Apps脚本Web应用程序

时间:2014-05-20 05:58:30

标签: google-apps-script google-apps

我的Google Apps帐户中有两个Google Apps脚本。两者都已作为webapps发布,具有以下设置。

脚本A:

  

以我的身份执行   谁有权访问网络应用程序:XXXXXXX.com中的任何人

脚本B:

  

以访问应用程序的用户身份执行
  谁有权访问网络应用程序:XXXXXXX.com中的任何人

我希望脚本B使用UrlFetchApp来执行脚本A.如何将脚本B验证为脚本A?

注意:

脚本A用于将\从\写入数据到只有我有权访问的电子表格。自我的Google Apps域管理员以来 不允许在域外共享,我无法设置对Web应用程序的匿名访问。

2 个答案:

答案 0 :(得分:2)

  

我希望脚本B使用UrlFetchApp来执行脚本A.如何将脚本B验证为脚本A?

即使脚本A设置为允许任何人访问它,我们的目标是保护它,以便脚本B能够发出有效请求。这可以使用脚本A和脚本B都可以访问的共享密钥轻松完成。当脚本B向脚本A发出请求时,它只需要包含密钥。脚本A可以拒绝任何不包含密钥的请求。

只有能够查看脚本A或脚本B的源代码的人才能找到密钥。当然,任何获得密钥的人都可以冒充脚本B.

作为进一步的增强功能,您可以使用Utilities.computeHmacSha256Signature()方法来避免在请求中发送密钥。这两个脚本仍然需要知道密钥,但您可以让脚本B计算签名并将其作为请求的一部分而不是密钥本身发送。

答案 1 :(得分:1)

没有匿名访问就不可能。 您可以假装自己是浏览器,即查看浏览器在运行Web应用程序时发送的内容并发送相同的标头/ cookie等但不是真正受支持的方式。