MCP 的 ADC 与服务账号模拟
为 Google 服务配置认证提供方、scope、IAP audience 和模拟账号。
This page has not been translated into English yet. The original Chinese version is shown below.
MCP authProviderType 有 dynamic_discovery(默认)、google_credentials 和 service_account_impersonation。它们是 MCP 连接的 provider,不是主模型登录方式。
ADC
{
"mcpServers": {
"google-service": {
"httpUrl": "https://my-gcp-service.run.app/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": ["https://www.googleapis.com/auth/userinfo.email"]
}
}
}
}地址为占位。此 provider 使用 Google Application Default Credentials,官方要求指定所需 scopes;不要照远程 A2A 的 google-credentials 默认 scope 推断这里相同。
服务账号模拟
service_account_impersonation 使用本地 ADC 生成目标服务账号的 OIDC ID token,用于所指定的 audience。需要两个字段:
| 字段 | 含义 |
|---|---|
| targetAudience | IAP 应用允许的 OAuth Client ID |
| targetServiceAccount | 被模拟服务账号的邮箱 |
这里 targetAudience 是应用允许的 Client ID,不能随意替换为项目 ID 或服务账号邮箱。
管理端前提
官方设置流程要求准备 OAuth Client ID、允许程序化访问、创建或选择服务账号、配置 IAP 访问策略,并授予调用者模拟权限,例如 Service Account Token Creator,同时启用 IAM Credentials API。
这些是 Google Cloud 管理动作,具体资源和当前管理界面以 Google 官方说明为准。只填 CLI 字段不会自动创建账号、开 API 或授予 IAM 权限。
故障定位
区分 ADC 不存在、缺模拟权限、audience 不匹配、IAP 访问拒绝和 MCP 端点不正确。认证成功不代表 MCP 服务工具有业务权限;工具本身仍可拒绝资源访问。