Google Cloud项目中如何通过ServiceAccount获取已授权用户的AccessToken
Google Cloud OAuth 项目与 Service Account 权限问题解答
问题1:未审核外部项目下,已授权用户是否可通过 Service Account 加 sub 参数获取对应权限的 Access Token
- 答案为不能,二者属于完全独立的授权体系,不存在关联:
- Service Account 携带
sub参数模拟用户获取令牌的能力,仅适用于 Google Workspace 组织场景,前提是你先在所属 Workspace 管理后台为该 Service Account 开启了全域权限委派,且提前配置了允许使用的 scopes 列表,同时只能模拟同组织内的用户,无法覆盖普通 Gmail 个人用户。 - 普通用户通过 OAuth 同意屏为你的项目授权的 scopes,仅能通过标准 OAuth 流程(授权码流、刷新令牌换访问令牌等)获取对应用户的访问凭证,和 Service Account 权限体系完全无关。
- Service Account 携带
问题2:项目通过官方审核后,上述使用规则是否会发生变化
- 规则不会发生变化:
- 项目过审仅会解除外部项目 100 个授权用户的上限,允许你获取更多外部用户的 OAuth 授权,不会改变 Service Account 的权限逻辑。
- 你依然只能通过标准 OAuth 流程获取普通授权用户的访问令牌,无法通过 Service Account 模拟未纳入你所属 Workspace 组织的普通用户。
内容的提问来源于stack exchange,提问作者Simon Z
相关产品推荐
相关产品推荐

