【发布时间】:2020-12-11 16:14:14
【问题描述】:
您好,在 sh 脚本中,我尝试在 IAP 后面调用 App Engine Standard(带有 POST)中的 api。 我使用具有“IAP-secured Web App user” 权限的服务帐户。 服务帐号来自 IAP 的另一个帐号。
我首先生成一个 OpenId 连接:
OIDC_token_response=$(curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer "$(gcloud auth print-access-token) \
-H "Accept: application/json" \
--data '{"audience":"{CLIENT_ID_IAP","includeEmail":true}' \
-s --write-out "HTTP_CODE:%{http_code}" \
https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${MY_SERVICE_ACCOUNT:generateIdToken)
然后我使用令牌:
api_response=$(curl -X POST -H "Authorization: Bearer "${OIDC_token} -s --write-out "HTTP_CODE:%{http_code}" https://{MY-APP}.appspot.com/my-api/)
答案是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>401 Unauthorized</title>
<h1>Unauthorized</h1>
<p>Unauthorized</p>
HTTP_CODE:401
有什么想法吗?
问候
【问题讨论】:
标签: google-app-engine google-iap