【问题标题】:Is there a quota for "gcloud auth print-access-token"?“gcloud auth print-access-token”是否有配额?
【发布时间】:2019-08-12 22:42:43
【问题描述】:

我们使用以下内容:

curl -H "X-Access-Token: $(gcloud auth print-access-token)"

在很多手动测试场景中。

令牌生成是否有速率限制?例如:

  • 20/秒#示例
  • 10000/天 # 示例

【问题讨论】:

  • 您使用哪种身份验证方法? “gcloud auth login”还是服务帐号密钥?

标签: authentication gcloud


【解决方案1】:

我不知道答案,但是:

  • 总是有个配额;我怀疑身份验证,这些限制将超过任何合理的客户可以产生的数量。

  • 访问令牌通常存在一个小时(3600 秒),您可以缓存这些令牌并重复使用它们以减少请求量。您可以通过以下方式内省令牌的到期时间:

# Acquire Access Token and optimistically start timer at 3600s
TOKEN=$(gcloud auth print-access-token)
EXPIRY=3600
while [ ${EXPIRY} -gt 0 ]
do
  # Update Expiry without reacquiring Access Token 
  EXPIRY=$(\
    curl \
    --silent https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN} \
    | jq -r .expires_in\
  )
  # Do stuff
  echo ${EXPIRY}
  sleep 60s
done
  • 我曾经遇到过一个问题,即客户运行大量用户测试并违反了自动滥用检测。我认为审查是否可以在测试中使用模拟和缓存是谨慎的;提供用户体验代理的 e2e 测试是合理的,但是当这些测试失败时,很难找出问题所在。

  • 我注意到gcloud auth print-[access|identity]-token 的使用有所增加,并且怀疑这些命令的使用并非出于最初的预期目的。在大多数情况下,非 gcloud 应用程序会更好地直接进行身份验证调用,而不是将其委托给通过 gcloud 执行

【讨论】:

    【解决方案2】:

    我找到了这个信息,您可以为用户帐户刷新最多 50 个令牌,但根据本文档 link,服务帐户没有限制

    希望这些信息对你有用。

    【讨论】:

    • 这些是用户帐户可以创建的不同刷新令牌的数量,但每台您已通过身份验证的计算机只有一个刷新令牌在您运行gcloud auth login 时生成并保存。重新运行 gcloud auth print-access-token 将使用保存的刷新令牌来获取短期访问令牌,但在您共享的文档中,对创建的访问令牌没有指定限制,而不是您可以调用 https://www.googleapis.com/oauth2/v4/token 的速率端点(gcloud auth print-access-token 使用的端点)。
    猜你喜欢
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    相关资源
    最近更新 更多