【问题标题】:GCP - unable to print identity tokenGCP - 无法打印身份令牌
【发布时间】:2019-07-23 14:23:36
【问题描述】:

我正在尝试为我的个人帐户获取 JWT,但此命令出错:

$ gcloud auth print-identity-token
ERROR: (gcloud.auth.print-identity-token) `--audiences` can only be specified for service account.

它抱怨我无法提供--audiences 选项,但我没有提供。根据their docs,我应该能够在登录到我的个人开发者帐户时使用此命令。

编辑:我使用的是 Google Cloud SDK 版本 254.0.0

更新:Google 刚刚发布了 gcloud 版本 255.0.0,该命令与个人帐户宣传的完全一样。

【问题讨论】:

  • 您使用的是什么版本的 Google Cloud SDK?通过运行gcloud info 进行检查。
  • Google Cloud SDK [254.0.0]
  • 对于 255 版,您仍然不应在 CLI 中使用用户凭据。您编写的任何使用应用程序默认凭据的程序都会报告一条大警告消息(服务帐户凭据除外),并且您的 API 调用将受到限制(这是消息的一部分)。
  • 来自实际的 Google 源代码:来自 Cloud SDK 的与 Cloud SDK 项目关联的凭据存在问题,因为它们可能未启用 API 并且配额有限。如果是这种情况,请发出警告。 google-auth.readthedocs.io/en/latest/_modules/google/auth/…
  • 这是将打印的消息之一: UserWarning:您的应用程序已使用来自 Google Cloud SDK 的最终用户凭据进行身份验证。我们建议大多数服务器应用程序改用服务帐户。如果您的应用程序继续使用来自 Cloud SDK 的最终用户凭据,您可能会收到“超出配额”或“API 未启用”错误。有关服务帐户的更多信息,请参阅cloud.google.com/docs/authentication

标签: google-cloud-platform gcloud google-cloud-sdk google-cloud-iam


【解决方案1】:

您收到的错误是正确的。不支持尝试使用 claims 修改“gmail”类型帐户的 Google OAuth 用户凭据。 Audience aud 是在创建 JWT 时指定的声明。

如果您使用 Identity Platform,则可以在一定程度上使用。

您不能使用声明修改用户凭据,但您可以在请求服务帐户身份令牌时指定某些声明。

执行以下命令gcloud auth list。如果活动帐户是电子邮件地址而不是服务帐户电子邮件地址,您将收到此错误。

【讨论】:

  • 虽然您的回答对我来说很有意义,但似乎与 the documentation 相矛盾。他们在关于验证开发者的教程中使用了这个命令,即被视为最终用户请求。因此,似乎应该适用于非服务帐户电子邮件地址。文档有误吗?
  • 你能告诉我(确切地)在哪里吗?这是我非常了解并花费大量时间的领域。如果您能告诉我在请求 OAuth 用户凭据时可以在哪里应用声明,我将非常乐意改进我的答案。如果是这种情况,我可以提出改进文档的请求,这总是受欢迎的。
  • 在“开发者”标题下。它说:“使用 curl 或类似工具时,您必须将这些视为最终用户请求。”然后,它显示了一个 sn-p 如何作为开发人员进行身份验证:curl https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME -H "Authorization: bearer $(gcloud auth print-identity-token)"
  • 顺便说一下,我在我发布的一个不同问题的答案中找到了解决方案 (stackoverflow.com/questions/57152969/…)。如果我回滚到 gcloud 版本 249,print-identity-token 命令对我有用。
  • 是的,该命令会起作用,但您会收到来自 Google 的关于使用用户凭据而不是服务帐户的警告,并且您将受到速率限制(例如,该命令将在 N 个请求后停止工作)。但是,您所说的问题是“自定义声明”(受众),这与您发现的问题不同。
猜你喜欢
  • 1970-01-01
  • 2015-06-21
  • 2017-04-20
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多