访问受IAP保护的应用程序时拒绝访问服务帐户

问题描述 投票:0回答:1

试图让python命令行访问(HTTP GET)受IAP保护的应用程序。

随着https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/iap/make_iap_request.py

但403 err发生异常:服务帐户[email protected]无权访问受IAP保护的应用程序。

已经尝试了以下方法,但仍然如上所述仍然存在问题1.删除/创建服务帐户 2.重新创建json密钥文件 3.授予服务帐户项目owner权限

if __name__ == '__main__':
    os.environ[
        "GOOGLE_APPLICATION_CREDENTIALS"] = '/Users/foo/bar.json'

    print make_iap_request('https://foo.com/', 'xxxxtheidforthatiapservice.apps.googleusercontent.com')
python google-cloud-platform in-app-purchase google-oauth
1个回答
2
投票

我认为你需要遵循Authenticating from a service account程序:

使用OpenID Connect(OIDC)令牌将服务帐户验证为受Cloud IAP保护的资源。

  1. 将服务帐户添加到access list以获取Cloud IAP安全项目。
  2. 生成JWT-based access token。这使用需要客户端ID的target_audience附加声明。要查找您的客户ID,请按以下步骤操作: 一个。转到Cloud IAP页面。 湾找到要访问的资源,然后单击“更多”>“编辑OAuth客户端”。 edit OAuth client on the More menu C。在出现的“凭据”页面上,记下客户端ID。
  3. 为Cloud IAP安全客户端ID请求OIDC令牌。
  4. Authorization: Bearer标头中包含OIDC令牌,以对Cloud IAP安全资源进行经过身份验证的请求。
© www.soinside.com 2019 - 2024. All rights reserved.