Google cloud platform GCP IAP认证获胜';除非使用指向本地json凭据的环境变量,否则无法获取服务帐户凭据
我尝试了Google针对服务帐户的Java IAP身份验证示例: 当存在一个本地服务帐户json凭据文件时,这一点非常有效,该文件在env varGoogle cloud platform GCP IAP认证获胜';除非使用指向本地json凭据的环境变量,否则无法获取服务帐户凭据,google-cloud-platform,service-accounts,google-iap,Google Cloud Platform,Service Accounts,Google Iap,我尝试了Google针对服务帐户的Java IAP身份验证示例: 当存在一个本地服务帐户json凭据文件时,这一点非常有效,该文件在env varGOOGLE\u应用程序\u凭据=中提到 在另一个文档页面中,它说明了以下内容: 如果未设置环境变量,ADC将使用默认服务 计算引擎、Kubernetes引擎、应用程序引擎和云的帐户 函数为在这些服务上运行的应用程序提供 如果我没有提供env var,那么示例中的auth库似乎生成了与servicecomportcredentials不同的凭据类型,从
GOOGLE\u应用程序\u凭据=
中提到
在另一个文档页面中,它说明了以下内容:
如果未设置环境变量,ADC将使用默认服务
计算引擎、Kubernetes引擎、应用程序引擎和云的帐户
函数为在这些服务上运行的应用程序提供
如果我没有提供env var,那么示例中的auth库似乎生成了与servicecomportcredentials
不同的凭据类型,从而导致抛出错误。我记录了创建的凭据,并将其解析为ComputengineCredentials
,这导致Google示例的这一部分抛出错误:
if (credentials == null || !(credentials instanceof ServiceAccountCredentials)) {
throw new Exception("Google credentials : service accounts credentials expected");
}
在我正在处理的场景中,我并不总是可以选择上载json凭据文件并使用该env变量运行,而且无论如何,我希望计算引擎可以在其配置中标识为服务帐户。有什么我遗漏的吗 应更新该示例以接受不同类型的服务帐户。Python示例已经完成了这项工作。不同类型的原因是,在Compute Engine、App Engine等上运行时,私钥不可用。hi@JohnHanley。您是对的,python示例似乎更符合最新情况,包括有关计算引擎/服务帐户要求的注释,并且它可以工作。我浏览了google Java库,试图实现相同的机制,但没有找到任何有用的方法。谢谢你指出这一点。