首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gcloud标识令牌与访问令牌

gcloud标识令牌与访问令牌
EN

Stack Overflow用户
提问于 2021-08-04 17:24:40
回答 1查看 6.2K关注 0票数 11

当我们使用gcloud auth print-access-tokengcloud auth print-identity-token时,访问令牌和身份令牌有什么区别?

在Google上下文中,我们可以使用一种而不是另一种。

为什么我们有print-access-token表示gcloud authgcloud auth application-default,而print-identity-token只用于gcloud auth

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-18 13:46:07

定义和Google :

存取令牌 (并不总是JWT)用于通知API,令牌的承载者已被授权访问该API并执行一组预定的操作(由所授予的作用域指定)。

  • 访问令牌绝不能用于身份验证。访问令牌无法判断用户是否经过身份验证。
  • 在Google中,OAuth 2.0访问令牌对于验证服务帐户对Google的访问非常有用。

ID令牌用于基于令牌的身份验证.这些令牌是签名的JSON令牌,JWT用于断言标识,不一定对资源进行任何隐式授权。这些令牌只需声明调用方是谁,以及发送令牌的任何服务都可以通过验证JWT提供的签名有效负载来验证令牌的完整性。应用程序在用户成功身份验证后接收ID令牌,然后使用ID令牌并从中提取用户信息,然后可以使用这些信息来个性化用户体验。

  1. aud:字段描述了创建此令牌以调用的服务名称。如果服务接收到id_token,它必须验证其完整性(签名)、有效性(是否过期),以及如果aud:字段是它希望看到的预定义名称。如果名称不匹配,服务应该拒绝令牌,因为它可能是另一个系统的重播。
  2. 在Google中,OIDC令牌用于向接受OpenID连接的服务验证服务帐户的身份。

考虑的以下示例用例

  1. 访问令牌:

要获得项目的提升权限,服务管理员可以通过创建属于该服务帐户的OAuth 2.0访问令牌来模拟服务帐户以调用Google。令牌的生存期很短,因此提升的权限是临时的。使用短暂的令牌可以帮助您在身份和资源之间实现最小特权的原则。当生产环境中出现紧急情况时,并且服务管理员需要短期提升的调试授权时,它也可能很有用。

  1. ID令牌:

通过创建属于服务帐户的OIDC ID令牌,运行在Google上的服务可以向部署在第三方云提供商(如数据管道作业)上的另一个服务进行身份验证。如果使用OIDC配置目标服务,则身份验证将成功。

继续使用gcloud命令:

  • gcloud凭据和应用程序默认凭据分别管理。
  • 如果激活了服务帐户密钥文件,则只能用于gcloud命令,而不能用于应用程序默认凭据。
  • gcloud auth应用程序-默认的命令集只用于管理应用程序默认值,而与gcloud auth中的命令无关。

  1. gcloud auth应用程序-默认打印-访问-令牌
  • 它通过web流获取凭据,并将它们存储在“应用程序默认凭据的著名位置”中。“应用程序默认凭据的著名位置”是位于本地~/..config/gcloud/目录中的一个名为application_default_credentials.json的文件。现在,您运行的任何代码/SDK都可以自动找到凭据。当您想在本地测试代码时,这是一个很好的选择,通常在服务器上运行,并使用服务器端凭据文件。在这些情况下,gcloud auth应用程序-默认打印访问-令牌的工作方式是使用用户身份(通过web流)进行身份验证,但使用凭据作为服务帐户的代理。

  1. gcloud auth打印访问令牌
  • 显示当前服务帐户的访问令牌。

  1. gcloud auth打印-标识-令牌
  • 打印指定帐户的标识令牌。如果未指定,则将使用当前活动帐户。
  • Google帐户和用户都可以获得id_tokens,但有一个重要的区别:用户登录oauth2发出id_tokens静态绑定到web或与之关联的oauth2 client_id。也就是说,如果用户登录到涉及oauth2的web应用程序中,则提供者向浏览器发出的id_token将使aud:字段绑定到oauth2 client_id。另一方面,服务帐户可以参与一个流,在该流中,它可以使用前面指定的aud:字段从谷歌接收一个id_token。
  • 可以使用gcloud命令为服务帐户、模拟的服务帐户和计算引擎实例打印标识符。
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68655602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档