试图让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')
我认为你需要遵循Authenticating from a service account程序:
使用OpenID Connect(OIDC)令牌将服务帐户验证为受Cloud IAP保护的资源。
- 将服务帐户添加到access list以获取Cloud IAP安全项目。
- 生成JWT-based access token。这使用需要客户端ID的
target_audience
附加声明。要查找您的客户ID,请按以下步骤操作: 一个。转到Cloud IAP页面。 湾找到要访问的资源,然后单击“更多”>“编辑OAuth客户端”。edit OAuth client on the More menu
C。在出现的“凭据”页面上,记下客户端ID。- 为Cloud IAP安全客户端ID请求OIDC令牌。
- 在
Authorization: Bearer
标头中包含OIDC令牌,以对Cloud IAP安全资源进行经过身份验证的请求。