首页 > 解决方案 > 如何在 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作为语言

标签: google-cloud-platformjwtgoogle-compute-engine

解决方案


您可以使用这些说明来解释如何使用环境变量创建默认凭据以进行 API 调用或手动指定凭据。

此外,您可以按照此代码使用应用程序默认凭据。该文档也有一些示例可以使用 Java 客户端用于 Compute Engine。


推荐阅读