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

如何使用Python访问受IAP保护的资源并生成Bearer令牌?

使用Python访问受IAP保护的资源(生成Bearer令牌)

刚好做过类似的需求,我来给你一步步拆解实现过程——你已经有服务账号和JSON凭据了,剩下的其实很简单:

第一步:安装依赖

首先需要安装Google的认证库和请求库,打开终端运行:

pip install google-auth requests

第二步:编写核心代码

下面是完整的示例代码,你只需要替换里面的几个参数就行:

import os
import requests
import google.oauth2.id_token
import google.auth.transport.requests

# 替换成你的实际参数
SERVICE_ACCOUNT_KEY_PATH = "/本地路径/你的服务账号密钥.json"
IAP_CLIENT_ID = "你的IAP客户端ID.apps.googleusercontent.com"
TARGET_URL = "https://你的受保护资源地址/接口路径"

# 配置服务账号凭据(推荐用环境变量,避免硬编码)
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = SERVICE_ACCOUNT_KEY_PATH

# 创建请求对象,用于获取令牌
auth_request = google.auth.transport.requests.Request()

# 生成IAP所需的Bearer令牌
iap_token = google.oauth2.id_token.fetch_id_token(auth_request, IAP_CLIENT_ID)

# 发起请求到受保护资源
headers = {"Authorization": f"Bearer {iap_token}"}
response = requests.get(TARGET_URL, headers=headers)

# 处理响应结果
if response.ok:
    print("访问成功!响应内容:", response.json())
else:
    print(f"访问失败,状态码:{response.status_code},详情:{response.text}")

关键细节说明

  • 找到你的IAP客户端ID:登录Google Cloud控制台,进入「Identity-Aware Proxy」页面,找到你要访问的资源(比如Web应用),在资源详情里就能看到「客户端ID」,把它替换到代码里。
  • 权限验证:确认你的服务账号已经被正确授予「IAP-Secured Webapp User」权限,并且这个权限是绑定到目标IAP资源的(不是随便分配的全局权限)。
  • 令牌有效期:生成的Bearer令牌有效期是1小时,fetch_id_token方法会自动处理令牌的刷新,所以每次发起请求前调用这个方法就可以,不用手动管理过期。
  • 安全最佳实践:绝对不要把服务账号的JSON密钥硬编码在代码里,也不要提交到Git仓库,最好用环境变量或者Google Cloud的密钥管理服务来存储。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:53:47