wpf - 在桌面应用程序中存储 Auth0 设置的最佳做法?
问题描述
我目前正在 app.config 中为我的桌面应用程序存储 Auth0 设置(域、clientId、范围、领域、受众),例如:
<add key="Auth0:Domain" value="" />
<add key="Auth0:ClientId" value="" />
<add key="Auth0:Scope" value="" />
<add key="Auth0:Realm" value="" />
<add key="Auth0:Audience" value="" />
我的同事认为让用户选择通过这样做来更改它不是一个明智的主意——他更喜欢硬编码它们。
我认为没有人会费心去摆弄它,它是公共信息,任何人都不会对此造成太大的伤害。
这里的最佳做法是什么?
解决方案
有几个选项在安全性方面没有太大区别:
- 硬编码(呃)
- 单独的配置文件
- 嵌入式资源
最干净的选择通常是从 API 下载设置,因为它使更新和版本控制更容易:
- 获取 /apI/桌面/配置
您的应用程序需要知道的有关远程系统的唯一信息是其(入口点)API URL。
对于桌面和移动应用程序,我喜欢有一个(隐藏的)选项来测试你可以在哪里切换环境。这可以是设置页面或部署的配置文件 - 但唯一可编辑的值是 API URL。
这非常适合持续交付最佳实践,您可以在其中构建一次二进制文件,然后在部署步骤中与配置相结合。它也应该满足你同事的担忧。
推荐阅读
- objective-c - [super Init] 的返回对象
- machine-learning - `Check failed: cudnnSetTensorNdDescriptor` 使用预训练的 Keras 模型进行迁移学习时
- git - Jenkins 基于从 git 中选择的分支构建
- android - 网络意图 url 自动修改
- java - 将 JAR 文件作为依赖项添加到项目中,而无需其相关 JAR
- android - 如何在android studio中构建apk文件?
- mysql - 如何保护我在 MySQL 上工作的应用程序
- javascript - Angularjs下拉选择动态
- javascript - 如果对象数组中只有一个属性设置为状态更改,整个 DOM 是否会重新渲染?
- python - 为什么使用此代码可以生成随机密码?