Asp.net core 学习笔记 ( Azure key-vault )
更新: 30-04-2023
最新版本请看这篇: ASP.NET Core – User Secret & Azure Key Vault
最新 kv 多了一个功能叫 soft delete, 如果不小心洗掉后, 可以还原哦
az account set --subscription <subscription name or ID>
az keyvault recover --name jbreviews-kv
secret 也是可以 restore 哦
az keyvault secret recover --id "https://jbreviews-kv.vault.azure.net/deletedsecrets/EmailPassword"
参考 :
https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-2.1&tabs=aspnetcore2x
https://youtube.com/watch?v=cdoY_pnqPiA
https://www.rahulpnath.com/blog/authenticating-a-client-application-with-azure-key-vault/
从前我们都是把一些密码直接写在 web.config 里,比如 sql 密码, email 密码, appId, app secret 等.
源码与密码分离始终是好的.
上次介绍了 User Secret, 不过这个只能用在开发环境下,在生产环境下,我们需要使用 Key-Vault.
这是一个 Azure 的服务, 可以把我们敏感数据保存在 Azure 里头,然后让我们的 Application 在 startup 时通过请求把资料拿下来.
对于安全来说,其实只是增加了一点点点攻击成本而已,主要的好处还是在密码源码分离,还有方便打理上.
流程是这样的,去 Azure 开一个 App 获取 client id 和 client secret
这个为了让我们的程序发请求时用的, 类似 oauth2.0 Client Credentials.
然后在 Azure 创建一个 key-vault 的 secret, 它是一个字典, key value 对应.
记得让 Azure App 有权利访问 key-vault service.
然后在程序 startup 时发请求去获取 key-vault 就可以了.
azure 的 secret 是不能改 value 的,但是可以一直添加 new version
网站只要 restart iis 站点就可以拿到最新的值了.
除了 secret 还有一个常用的是 key
比如在做 data protected 时, 用于 ProtectKeysWithAzureKeyVault,
记得 key 需要在 azure portal Access policies 里打开 wrap key 等等的 permission 哦.
附上图片参考 :
secrets
key
permission
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期