我们已经从服务帐户 key 切换到serviceAccountIds(或尝试进行了更改),因此我们可以清理所有拥有的胭脂 key 。推出更改后,我们看到:

必须具有权限iam.serviceAccounts.signBlob才能对服务帐户项目/-/serviceAccounts/[email protected]执行此操作。有关该功能的使用和故障排除的更多详细信息,请引用https://firebase.google.com/docs/auth/admin/create-custom-tokens

关键是,我们肯定已经应用了正确的角色(请参阅附件)。我们甚至还尝试了一些更好的措施。

谢谢!

firebase - 使用serviceAccountId时无法签署JWT-LMLPHP

最佳答案

在这种情况下,使用了两个服务帐户:

  • 用于授权RPC调用的服务帐户(对于Cloud Functions,这是App Engine默认服务帐户)。
  • 您已指定为serviceAccountId的服务帐户。

  • 似乎只有两个服务帐户都具有signBlob权限时,IAM才起作用。我已经向GCP/IAM团队咨询过。同时,您可以立即尝试以下几种修复方法:
  • 将 token 创建者角色授予App Engine默认服务
    您的项目的帐户。
  • 完成此操作后,您无需
    完全指定一个serviceAccountId。 SDK会自动发现相同的内容
    在“功能”中运行时的服务帐户ID。
  • 关于firebase - 使用serviceAccountId时无法签署JWT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53344238/

    10-12 03:04