Vai*_*ane 9 google-authentication google-cloud-storage google-cloud-platform
我正在使用Google云平台,我必须使用java非Web应用程序访问云功能,例如我尝试使用Google云存储JSON API从Google云存储中存储和检索对象.
在访问那些我需要验证我的应用程序之前,我发现授权API具有授权访问权限.
当我试图从Google云平台获取凭据时,我最终选择了三种凭据
我浏览了GCP文档,但没有获得区分其中的明确信息,我对GCP几乎是新手,所以请您使用示例Java程序分享解释这些凭据类型的任何信息或博客链接,以显示如何使用Google云客户端库 API.
Bra*_*ugh 11
Google Cloud Platform的Auth Guide是最权威的资源:https: //cloud.google.com/docs/authentication
谷歌的各种身份验证机制有不同的用途,所以让我解释一下你所提出的问题,并为你做出正确的选择.
API密钥为您提供了一种方法,可以识别您代表哪个项目进行API调用.它们适用于限制代表您的项目使用配额的请求.API密钥通常不被认为是安全的,因为它通常嵌入在客户端应用程序和网页中.因此,API密钥不提供身份验证或授权.如果匿名用户无法拨打电话,则API密钥将不足够.
接下来,OAuth.OAuth是一种通过Google帐户将真实的人类用户转变为经过身份验证的API调用的方法.当你想要像自己一样运行某个应用程序时gcloud,或者当你构建一个需要让人类允许代表他们使用Google Cloud做事的网站时,你就会使用它.此过程涉及客户端ID和机密,并以刷新令牌和访问令牌结束.有几种不同的口味.
最后,服务帐户.如果您的应用程序本身在某个地方运行而不是任何特定人员,您应该通过为您的应用程序创建服务帐户来对其进行建模.服务帐户是没有密码的特殊用户.相反,它们具有可以与应用程序一起部署的私钥文件,以便它们可以作为自己进行身份验证.这通常是您想要的,除非您的应用需要代表特定用户运行(例如像gcloud或等的云管理程序gsutil).
在谷歌云Java库提供了一个功能叫做" 应用默认凭据 ",这省去了,如果你的应用程序在App Engine上或GCE运行配置AUTH.如果您想在本地计算机上以自己的身份运行代码并已gcloud安装,它也可以处理身份验证.
以下是创建GCS存储桶的计算引擎程序示例:
Storage storage = StorageOptions.getDefaultInstance().getService();
Bucket bucket = storage.create(BucketInfo.of("myBucketName"));
Run Code Online (Sandbox Code Playgroud)
请注意它根本没有说任何关于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"));
Run Code Online (Sandbox Code Playgroud)
就是这样!
| 归档时间: |
|
| 查看次数: |
5903 次 |
| 最近记录: |