我目前已启动并运行 App Engine,受 IAP 保护,我的最终目标是让 Apps Script 项目触发它。我已经在没有 IAP 的情况下测试了代码,它工作正常。但是,启用 IAP 后,我在成功授权访问它时遇到了困难。
我已将自己作为受 IAP 保护的 Web 应用程序用户(以及策略管理员)添加到 App Engine,但是每当我尝试从我是所有者的 GSheets Apps 脚本触发它并且它与正确的 GCP 项目相关联时(使用这个很好的解释作为指导)我得到以下信息:
“无效的 IAP 凭据:JWT 受众与此应用程序不匹配('aud' 声明 (1084708005908-bk66leo0dnkrjsh276f0rgeoq8ns87qu.apps.googleusercontent.com) 与预期值不匹配 (1084708005908-oqkn6pcj03c2pmdufkh0l7mh37f79po2.apps.googleuser))”
我尝试向我的帐户添加/删除各种权限,以及创建新的 Apps 脚本并重新添加到项目中,但无济于事。从 CLI 触发时我遇到了同样的问题,所以我很确定这是身份验证的问题,但是这是我的 Apps 脚本代码,以防万一:
function test() {
const options = {
headers: {'Authorization': 'Bearer ' + ScriptApp.getIdentityToken()},
muteHttpExceptions: true
}
var result = UrlFetchApp.fetch('https://APP-ENGINE-URL.appspot.com', options);
Logger.log(result);
}
和清单文件:
{
"timeZone": "Europe/London",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"oauthScopes": ["openid", "https://www.googleapis.com/auth/script.external_request"]
}
对此的任何帮助都非常感谢!以前从未在这里发布过,但非常绝望,在 SO 上找不到有这个确切问题的人。