Asp.net core 学习笔记 ( Azure key-vault )

参考 :

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

Asp.net core 学习笔记 ( Azure key-vault )

key

Asp.net core 学习笔记 ( Azure key-vault )

permission

Asp.net core 学习笔记 ( Azure key-vault )

上一篇:[实变函数]5.2 非负简单函数的 Lebesgue 积分


下一篇:读书笔记 effective c++ Item 45 使用成员函数模板来接受“所有兼容类型”