gcloud auth激活服务账号等命令对应的等效REST API调用是什么
gcloud命令等效REST API说明
- 第一条命令:
gcloud auth activate-service-account --key-file=myvaultkey.json
该命令为纯本地操作,无对应的远端REST API调用。它的作用是将指定的服务账号密钥文件写入gcloud的本地凭证存储目录,标记为当前活跃的身份凭证。如果要实现等效逻辑,仅需将服务账号密钥的JSON内容安全存储在你的应用运行环境中即可,无需发送网络请求。
- 第二条命令:
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
该命令的作用是使用已配置的服务账号密钥向Google OAuth服务申请访问令牌,等效REST API调用如下:
请求信息 - 请求地址:
https://oauth2.googleapis.com/token - 请求方法:
POST - 请求头:
Content-Type: application/x-www-form-urlencoded - 请求体参数:
grant_type:固定值urn:ietf:params:oauth:grant-type:jwt-bearerassertion:按Google规范生成的JWT签名断言
JWT断言生成规则:
- 头部:固定为
{"alg":"RS256","typ":"JWT"} - 载荷需要包含以下字段:
iss:服务账号密钥中的client_email字段值scope:需要申请的权限范围,多个权限用空格分隔,默认可填https://www.googleapis.com/auth/cloud-platformaud:固定为https://oauth2.googleapis.com/tokeniat:当前秒级时间戳exp:过期秒级时间戳,最大不能超过当前时间+3600秒
- 用服务账号密钥中的
private_key字段的RSA私钥,对头部+载荷做RS256签名,拼接得到完整的assertion值
响应示例:
{ "access_token": "ya29.c.......", "expires_in": 3599, "token_type": "Bearer" }
其中的access_token字段值就是命令中导出的GOOGLE_OAUTH_ACCESS_TOKEN的值。
内容的提问来源于stack exchange,提问作者Espresso
相关产品推荐
相关产品推荐

