繁体   English   中英

不使用 JSON 文件对 Google-Cloud-Storage 进行身份验证

[英]Authenticate Google-Cloud-Storage not using JSON file

我正在使用 .Net API 并在环境变量GOOGLE_APPLICATION_CREDENTIALS中设置服务帐户 JSON 文件的路径进行身份验证。
但我想做的是通过在代码中具体指定凭证属性来进行身份验证(就像我对 AWS 及其 ID 和 KEY 所做的那样)。

为什么? 在我的用例中,我不想让 json 文件“暴露”,但希望在自定义 XML 配置文件中指定的凭据属性加密。

我的应用程序将读取配置文件并解密内容(GCS 凭据)。

不在乎它是服务帐户还是用户帐户,如果可能的话,任何最适合设置的方法?

丑陋的解决方案是动态创建 JSON 文件,让 API 读取它,然后删除该文件。

如果是这样,我想尽可能地限制属性的数量,我在下载的 JSON 文件中有以下属性。 哪些是强制性的/需要的,哪些是臃肿的:

{
 "type": "xxx",
 "project_id": "xxx",
 "private_key_id": "xxx",
 "private_key": "xxx",
 "client_email": "xxx",
 "client_id": "xxx",
 "auth_uri": "xxx",
 "token_uri": "xxx",
 "auth_provider_x509_cert_url": "xxx",
 "client_x509_cert_url": "xxx"
}

要将凭据指定为变量(JSON 字符串)而不是文件路径:

 Google.Apis.Auth.OAuth2.GoogleCredential cred = Google.Apis.Auth.OAuth2.GoogleCredential.FromJson(JSONString);
 var storage = Google.Cloud.Storage.V1.StorageClient.Create(cred);

这很奇怪。 我似乎不需要使用我的 GC json 文件来翻译文本。 不知道为什么我不需要它,但这可以节省我加密它的时间。 即使我没有将 translate.py 文件连接到任何类型的 json 文件,这一切都可以正常工作,这感觉很奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM