c# - 将谷歌凭据用于生产应用程序的最佳方式是什么?
问题描述
我正在为 STT 构建一个 C# .net 应用程序,并且我正在手动创建凭据。我发现文档让我非常困惑,我不知道如何正确添加凭据。
我添加了一个项目,创建了一个 json 凭证并下载并保存在一个文件夹中,并手动指向它以GoogleCredential
进行授权,并且一切正常。但这不能成为已发布应用程序的解决方案。目前的做法:
GoogleCredential credentials =
GoogleCredential.FromFile(Path.Combine("*PATH"), "myProject-123XXXx32.json"));
TextToSpeechClient client = TextToSpeechClient.Create(credentials);
如果我通过环境变量使用默认凭据 json,那么我在用户机器上运行的生产应用程序将如何拥有凭据?
所以我必须将json直接放到我的应用程序中?不比使用密钥安全吗?
我应该使用什么来验证我的应用程序GoogleCredential
?
解决方案
您可以使用 Google KMS 设置凭据并在您的应用程序https://cloud.google.com/kms/中使用它。
1a。将 KMS 中的 JSON 保存为 KEY 的 VALUE 的 JSON。
2a. 解密代码中的 JSON 并使用它。
1b。或者,您可以使用环境变量使其使用凭据
2b。并且只需在您的应用程序正在交付的环境中设置环境。
3b。您可以使用无服务器框架(https://serverless.com/framework/docs/providers/google/)之类的工具自动执行 2b 步骤
推荐阅读
- node.js - ejs@3.1.3 postinstall: `node --harmony ./postinstall.js 退出状态1
- sql - 从一个巨大的数据库中循环一个 SQL QUERY 来做增量数据拉取
- css - 将 1 个孩子左对齐,其余的在 div 中右对齐
- c# - WPF如何使用MVVM清除列表视图中的texbox内容
- matplotlib - 为 seaborn 计数图中的所有条形应用单一颜色
- git - 实际上删除 git commit 的方式是它会从日志中消失
- angular - Angular9 中的当前用户信息
- python - 将 list 类型的 pandas 列转换为 dict
- java - 为什么子对象调用具有主方法的超类的私有方法?
- rust - 了解 rust 借用和取消引用