google-cloud-platform - 如何在 GCP 中以编程方式获取身份验证令牌
问题描述
我需要访问 Compute Engine 的 API。我可以通过 SDK 做到这一点,但我想使用 API。我正在尝试按照以下说明操作: https ://cloud.google.com/iap/docs/authentication-howto 但是,当我尝试访问 API 时,我得到:
com.google.api.client.http.HttpResponseException: 400 Bad Request
{
"error": "invalid_scope",
"error_description": "<my private key id> is not a valid audience string."
}
在这一行中,我为 iapClientId 提供了我的私钥 ID:
String jwt = getSignedJwt(credentials, iapClientId);
对于范围我使用https://www.googleapis.com/auth/cloud-platform
提前致谢!
PS我使用Java作为语言
解决方案
您可以使用这些说明来解释如何使用环境变量创建默认凭据以进行 API 调用或手动指定凭据。
此外,您可以按照此代码使用应用程序默认凭据。该文档也有一些示例可以使用 Java 客户端用于 Compute Engine。