为服务帐户生成长期访问令牌以访问Google API

问题描述 投票:0回答:1

我有一个服务帐户

foo
。对于此服务帐户,我想创建一个授权令牌,以便我可以在 CI/CD 管道中运行我的程序并让它与 Google API 进行通信。

我通过查看此文档研究了如何检索长期令牌:https://developers.google.com/identity/protocols/oauth2/service-account#jwt-auth

我的问题是我必须为该令牌执行很多步骤。

  • 创建 JWT 标头和声明
  • 为 JWT 生成签名
  • 使用创建的 JWT 来实际检索 Auth Token
  • 使用身份验证令牌...

为什么我不能首先使用 JWT 令牌来访问 Google API?为什么我需要索要另一个令牌?感觉有点过度设计了。

google-cloud-platform service-accounts google-cloud-api-keys
1个回答
0
投票

访问令牌的生命周期最多可延长 90 天。为此,请选择需要延长访问令牌生命周期的服务帐户,然后将这些服务帐户添加到包含 constraints/iam.allowServiceAccountCredentialLifetimeExtension 列表约束的组织策略中。

如果您希望将令牌生命周期延长到默认值之外,则必须创建启用 iam.allowServiceAccountCredentialLifetimeExtension constraint 的组织策略。您无法为用户凭据或外部身份创建具有延长生命周期的访问令牌。查看此官方 GCP 文档了解更多信息。

根据此官方 GCP 文档中的生成访问令牌:“如果您使用 REST API,并且您的系统配置为允许延长令牌生命周期,则您可以创建生命周期长于默认值的令牌。 Google Cloud CLI 不支持设置令牌的生命周期。”

现在关于“为什么我不能首先使用 JWT 令牌来访问 Google API? ”

JWT 令牌的有效期很短(通常为一小时),并且不能用于直接访问 Google API。这似乎是一个额外的步骤,并且使用 JWT 令牌有点过度设计,增加了额外的安全层并确保只有授权用户才能访问 Google API,它提供了一种更安全的方式来访问 Google API 并防止 API 的滥用资源。

为什么我需要索取另一个令牌?

另一个或两步流程可确保您的 JWT 令牌不被泄露,从而有助于提高安全性。如果您的 JWT 令牌被盗,它只能用于请求访问令牌,该令牌将在短时间内过期。这有助于保护您的 Google API 资源免遭未经授权的访问。

查看 Google Cloud

社区论坛讨论了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.