小编zac*_*din的帖子

通过 Google Apps 脚本安全地调用 Google Cloud 函数

如何通过 Google Apps 脚本安全地调用 Google Cloud Function?

? 我有一个谷歌云函数,我可以访问https://MY_REGION-MY_PROJECT.cloudfunctions.net/MY_FUNCTION它,我想允许某些用户通过应用程序脚本调用。

? 为了保护云功能,我已将云功能调用程序设置为仅包含已知电子邮件(例如USER@COMPANY.com,这是有效的 Google 电子邮件)。

? 我能够通过卷曲成功地调用云功能,在登录到gcloud与此电子邮件,通过运行:curl https://MY_REGION-MY_PROJECT.cloudfunctions.net/MY_FUNCTION -H "Authorization: Bearer $(gcloud auth print-identity-token)"

? 我已在我的 Apps 脚本清单中授予以下 oauthScopes:

  • "https://www.googleapis.com/auth/script.external_request"
  • "https://www.googleapis.com/auth/userinfo.email"
  • "https://www.googleapis.com/auth/cloud-platform"

?? 但是,当我尝试通过 Google Apps 脚本调用云函数时,在使用电子邮件登录时USER@COMPANY.com,我无法调用它,而是返回了 401。这是我尝试调用云函数的方法:

const token = ScriptApp.getIdentityToken();
const options = {
  headers: {'Authorization': 'Bearer ' + token}
}
UrlFetchApp.fetch("https://MY_REGION-MY_PROJECT.cloudfunctions.net/MY_FUNCTION", options);
Run Code Online (Sandbox Code Playgroud)

?? 我还尝试了以下方法:

  • 使用 ScriptApp.getOAuthToken()
  • 添加额外的 oauthScopes,例如openid.
  • 创建一个 OAuth 客户端 ID,https://script.google.com并将其设置为授权的 Javascript 来源。
  • 部署 Apps 脚本。 …

oauth google-apps-script oauth-2.0 google-oauth google-cloud-functions

10
推荐指数
2
解决办法
1681
查看次数

为 Firebase 用户安全地设置第一个自定义声明

为所有 Firebase 用户设置第一个自定义声明的标准、安全方法是什么?

Firebase 提供了一些很棒的文档和示例来理解和使用自定义声明(例如这个很棒的视频示例),但大多数示例使用现有的自定义声明来授权创建其他自定义声明;截至本文,Firebase 控制台无法设置/编辑/查看自定义声明,也无法通过 CLI 设置自定义声明。

以下是我正在考虑的一些选择:

  • 创建一个不同的管理项目,服务帐户可以使用该项目通过 Firebase Admin SDK 创建自定义声明。
  • 如果执行了某个 Firebase 控制台操作,则使用云函数执行自定义声明创建,例如在通过安全规则无法访问的集合中创建 Firestore 文档。
  • 忽略创建第一个自定义声明的安全性;仅当这已经是 Firebase 用户的自定义声明后才添加安全性。

您是否遇到过这个问题并更优雅地解决了它?

firebase firebase-authentication firebase-admin

3
推荐指数
1
解决办法
1777
查看次数