You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP API Gateway:已登录Google用户的认证配置问题

API网关适配IAP认证的OpenAPI配置方案

核心配置逻辑

你的场景是负载均衡器(LB)→身份感知代理(IAP)→API网关→Cloud Run的链路,IAP已在LB层面完成用户身份认证,API网关只需验证IAP转发的JWT令牌,无需单独做OAuth2认证。

正确的OpenAPI Security Definitions配置

在OpenAPI YAML配置中,需定义针对IAP的JWT验证规则,核心校验令牌的签发方、受众和签名:

securityDefinitions:
  googleIap:
    type: "oauth2"
    authorizationUrl: ""
    flow: "implicit"
    x-google-issuer: "https://cloud.google.com/iap"
    x-google-jwks_uri: "https://www.gstatic.com/iap/verify/public_key"
    x-google-audiences: "你的IAP客户端ID" # 替换为实际的IAP客户端ID

随后在对应的API路径上启用该安全规则:

paths:
  /你的图片资源端点:
    get:
      security:
        - googleIap: []
      x-google-backend:
        address: "https://你的Cloud Run服务地址"

关键配置细节说明

  • x-google-issuer:固定值为https://cloud.google.com/iap,明确令牌由IAP签发
  • x-google-jwks_uri:IAP公钥的官方获取地址,用于验证JWT签名合法性
  • x-google-audiences:必须填写你的IAP客户端ID(可在Cloud Console的IAP设置中找到),需与IAP签发令牌的受众字段完全匹配

常见问题排查

  1. 禁止给API网关单独启用IAP,否则会触发双重认证冲突,导致403错误
  2. 确认UI发起请求时,IAP已自动在请求头中添加Authorization: Bearer <JWT>,API网关依赖这个头做验证
  3. 若仍报"Jwt is missing",检查负载均衡器是否正确将IAP的JWT令牌转发给API网关
  4. 若出现aud不匹配的日志,核对x-google-audiences配置的客户端ID是否与IAP设置完全一致

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:12:18