Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/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 Google云平台中的认证_Google Cloud Platform_Google Cloud Storage_Google Authentication - Fatal编程技术网

Google cloud platform Google云平台中的认证

Google cloud platform Google云平台中的认证,google-cloud-platform,google-cloud-storage,google-authentication,Google Cloud Platform,Google Cloud Storage,Google Authentication,我在谷歌云平台上工作,我必须使用java非web应用程序访问云功能,就像我试图使用谷歌云存储JSON API从谷歌云存储中存储和检索对象一样 在访问这些应用程序之前,我需要对我的应用程序进行身份验证,所以我找到了授权API来进行授权访问 当我试图从谷歌云平台获取凭证时,我最终得到了三种凭证选择 API密钥 OAuth客户端ID 服务帐户密钥 我查阅了GCP文档,但没有获得区分这些文档的清晰信息,我对GCP非常陌生,因此,您是否可以与示例Java程序共享解释这些凭据类型的任何信息或博客链接,这

我在谷歌云平台上工作,我必须使用java非web应用程序访问云功能,就像我试图使用谷歌云存储JSON API从谷歌云存储中存储和检索对象一样

在访问这些应用程序之前,我需要对我的应用程序进行身份验证,所以我找到了授权API来进行授权访问

当我试图从谷歌云平台获取凭证时,我最终得到了三种凭证选择

  • API密钥
  • OAuth客户端ID
  • 服务帐户密钥

我查阅了GCP文档,但没有获得区分这些文档的清晰信息,我对GCP非常陌生,因此,您是否可以与示例Java程序共享解释这些凭据类型的任何信息或博客链接,这些示例Java程序演示如何使用谷歌云客户端库API。

谷歌云平台的身份验证指南是此处的权威资源:

谷歌的各种身份验证机制有着不同的用途,所以让我来解释一下你所问的那些机制,你的正确选择应该变得更加清晰

API键为您提供了一种方法来识别您代表哪个项目进行API调用。它们有助于使用配额限制代表项目提出的请求。API密钥通常被认为是不安全的,因为它通常嵌入在客户端应用程序和网页中。因此,API密钥不提供身份验证或授权。如果匿名用户不能进行调用,那么API密钥就不够了

接下来是OAuth。OAuth是一种将具有Google帐户的真实用户转换为经过身份验证的API调用的方法。当你想做一些自己想做的事情时,比如当你在本地运行像
gcloud
这样的应用程序时,或者如果你正在建立一个网站,需要请求人类允许你代表他们使用谷歌云做事情时,你可以使用它。此过程涉及客户端ID和机密,并以刷新令牌和访问令牌结束。有几种不同的口味

最后是服务账户。如果你的应用程序本身运行在某个地方,而不是作为任何特定的人运行,那么你应该通过为你的应用程序创建一个服务帐户来建模。服务帐户是没有密码的特殊用户。相反,他们有私钥文件,可以与应用程序一起部署,这样他们就可以作为自己进行身份验证。这通常是您想要的,除非您的应用程序需要代表特定用户运行(例如,
gcloud
gsutil
等云管理程序)

提供了一个名为“,”的功能,如果应用程序在App Engine或GCE中运行,则无需配置身份验证。如果您想在本地计算机上以自己的身份运行代码并安装了
gcloud
,它还可以处理auth

下面是创建GCS存储桶的计算引擎程序的示例:

Storage storage = StorageOptions.getDefaultInstance().getService();
Bucket bucket = storage.create(BucketInfo.of("myBucketName"));
注意它怎么一点也没有提到auth。应用程序默认凭据负责选择适当的服务帐户或用户。不过,这假设您处于这样的环境中。如果您有一个私钥.json文件,您可以改为:

Storage storage = StorageOptions.newBuilder()
    .setProjectId(PROJECT_ID)
    .setCredentials(GoogleCredentials.fromStream(
        new FileInputStream(PATH_TO_JSON_KEY))).build();
Bucket bucket = storage.create(BucketInfo.of("myBucketName"));

就这样

感谢您的即时回复,并让我清楚地选择凭证!!GoogleCredentials类使用服务帐户密钥对用户进行身份验证,所以请提供API代码段,说明如何使用OAuth客户机id和API密钥,因为我需要使用这三个来实现身份验证。请提供google云客户端库API示例OAuth有多种风格。我必须了解更多关于你希望你的应用程序做什么才能很好地回答问题。这里有一个关于Google OAuth的通用指南:这里有一个Java库和示例:我正在开发一个简单的应用程序,用于seck从GCS获取对象并在本地进行处理,现在,我需要提供选项来使用用户想要的任何凭据类型进行身份验证,如OAuth客户端ID或服务帐户密钥等。我可以使用服务帐户密钥的JSON文件进行身份验证,并希望使用从OAuth客户端ID获得的客户端机密JSON文件。请建议使用“谷歌云客户端库API示例”啊,我明白了。下面是Java中使用Java OAuth客户端的OAuth凭据流的示例:请看: