GCP中通过OAuth OpenID认证后列出普通用户的角色/组
非管理员权限下获取当前用户角色/组的解决方案
1. 利用Google People API(适配G Suite/Workspace账号)
- 调用
people.get接口,指定resourceName=people/me并设置personFields=memberships - 仅需用户授权
https://www.googleapis.com/auth/userinfo.profile或https://www.googleapis.com/auth/contacts.readonly范围,无需管理员权限 - 返回结果的
memberships字段会包含用户所属的Google Workspace组信息
示例curl请求:
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ "https://people.googleapis.com/v1/people/me?personFields=memberships"
2. 自建应用角色体系
如果你的应用有独立的权限管理逻辑,直接在自有数据库中维护用户与角色/组的关联关系。认证完成后,通过OpenID返回的sub(用户唯一标识)查询数据库即可获取对应角色信息,完全无需依赖Google Admin SDK。
3. Cloud Identity API(针对Cloud Identity账号场景)
- 调用
groups.list接口,设置userKey=me参数,可获取当前用户所属的组 - 需授权
https://www.googleapis.com/auth/cloud-identity.groups.readonly范围,无需管理员权限
注意:以上方法均无法获取GCP IAM角色——这类角色的查询目前仅开放给管理员权限账号,无官方非管理员接口支持。
内容的提问来源于stack exchange,提问作者Shashank Shekhar
相关产品推荐
相关产品推荐

