在已使用授权 Header 时在 Google 云 运行 中测试 OAuth 应用程序

Test OAuth application in Google Cloud Run when Authorization Header is already used

我使用 Google 云 运行 部署我的无服务器 API 服务器,它要求客户端在授权 header 中发送访问令牌进行身份验证。

但是,Google Cloud Service 默认是私有的,我不想让它公开访问。所以我必须在授权 header.

中使用我的身份令牌进行请求

那么,如果授权 header 已经被使用,我应该如何测试我的无服务器 API 服务器?

您需要为您的应用程序使用自定义 header,并为云 运行 使用标准授权 header(实际上用于 Google 前端它将在将请求转发到云 运行 之前检查 header,如果它有效)

我们建议人们使用另一个 header 以防止碰撞。

但是,目前有一个解决方法不能保证在未来工作:发送实际的 IAM 身份验证(您需要访问私有云 运行 应用程序)header x-goog-iap-jwt-assertion header,只要 header 存在,Cloud 运行 的 IAM 就不会使用 Authorization header 和您的应用程序现在可以读取它以按照您喜欢的方式对应用程序的客户端进行身份验证。

我想再次明确表示,此变通办法将来可能不起作用,但它目前有效,因为它使 Cloud IAP 能够向 Cloud 运行 进行身份验证,同时保留原始授权 header.