Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform GCP IAP认证获胜';除非使用指向本地json凭据的环境变量,否则无法获取服务帐户凭据_Google Cloud Platform_Service Accounts_Google Iap - Fatal编程技术网

Google cloud platform GCP IAP认证获胜';除非使用指向本地json凭据的环境变量,否则无法获取服务帐户凭据

Google 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针对服务帐户的Java IAP身份验证示例:

当存在一个本地服务帐户json凭据文件时,这一点非常有效,该文件在env var
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库,试图实现相同的机制,但没有找到任何有用的方法。谢谢你指出这一点。