如何以编程方式列出Google Cloud Platform项目中的OAuth 2.0客户端ID
解答
你可以直接调用GCP IAM的OAuth 2.0客户端管理接口实现批量查询,完全不需要手动登录控制台操作:
可用接口说明
官方提供projects.oauth2Clients.list接口,可拉取指定项目下所有OAuth 2.0 Client ID的全量属性,返回结果默认包含你需要的客户端名称、创建时间、客户端类型、客户端ID核心字段,也支持按需扩展返回其他配置属性。
调用该接口的身份需要提前获得iam.oauth2Clients.list权限,常见的预定义角色roles/iam.securityReviewer、roles/editor、roles/owner都默认包含该权限。
常用调用方式
1. gcloud命令行调用(最快实现)
直接执行以下命令即可输出结果,可自定义输出格式:
# 输出所有OAuth 2.0客户端核心信息 gcloud iam oauth2-clients list --project=<替换为你的项目ID> # 自定义输出指定字段,方便后续脚本处理 gcloud iam oauth2-clients list --project=<替换为你的项目ID> --format="table(displayName,clientId,createTime,clientType)" # 输出JSON格式结果用于程序解析 gcloud iam oauth2-clients list --project=<替换为你的项目ID> --format=json
2. 编程调用示例(Python)
先安装GCP IAM Python SDK:pip install google-cloud-iam
示例代码如下:
from google.cloud import iam_v2 def list_oauth2_clients(project_id: str): client = iam_v2.IamClient() parent = f"projects/{project_id}" for oauth_client in client.list_oauth2_clients(parent=parent): print(f"客户端名称: {oauth_client.display_name}") print(f"客户端ID: {oauth_client.client_id}") print(f"创建时间: {oauth_client.create_time}") print(f"客户端类型: {oauth_client.client_type}") print("---") if __name__ == "__main__": list_oauth2_clients("<替换为你的项目ID>")
注意事项
- 该接口仅返回当前项目下创建的OAuth 2.0客户端,跨项目的客户端不会被查询到
- 服务账号关联的OAuth客户端也会纳入返回结果,可通过
clientType字段过滤你需要的客户端类型
内容的提问来源于stack exchange,提问作者Daniel Ortega
相关产品推荐
相关产品推荐

