Azure 密钥保管库用于存储敏感信息,例如链接字符串,密码,API 密钥等。我们无法直接从Azure 密钥库中访问机密!那么我们如何才能访问应用程序中的机密信息?比如,在我们的实际项目中,对于数据库链接字符串或者一些加密用的Key配置在 AppSettings.json 文件中,但是这个做的话,还是有很大的风险的,这些机密信息都有可能会暴露出去。就拿我自己来说,我之前分享博客内容里面涉及到的一些机密配置,都直接放在了配置文件中。
以此为戒啊,就算是私有的代码仓库也是不行的,所以今天决定介绍一个新的 Azure 资源-----Azure Key Vault(密钥保管库),我们将机密信息存储在密钥保管库中,并尝试通过.NET Console 访问(获取)它。
二,正文 1,注册应用程序转到 portal.azure.com 登陆到我们自己的账户。点击 Azure Active Directory 进行注册 “App registrations”,我们将能够看到 “新注册应用程序” 选项卡打开。
Name 输入:”Azure.KeyVault“。如下图所示,将其选择使用单个租户选项,点击 ”Register“ 进行注册操作。
接下来,我们需要给当前注册的客户端应用注册 client secret(客户端密钥)
点击 "Manage=》Certificates & secrets"
Description 输入:“Azure.KeyVault.ClientSecret”,过期时间选择默认 ”In 1 year“,点击 ”Add“ 进行添加操作
接下来我们可以看到创建好的客户端机密信息,同时,我们点击图中箭头的位置,点击进行复制 机密信息到我们工作的记事本中,稍后会用到此机密信息。
(注意,一定要在创建好的时候复制此机密信息,一旦我们离开此页面,重新进入的话,我们将无法进行复制操作)
2,创建密钥保管库搜索关键词 ”Key Vault“,
Resource group 选择创建一个新的:”Web_Test_KV_RG“
Key vault name:”CNBATEBLOGWEB-KeyVault“
Region:”East Asia“
Pricing tier:”Standard“
点击 ”Review + create“ 进行创建预览校验。
检验完成后,点击 ”Create“ 进行创建
创建完成后,点击转到该资源进行配置访问策略,”Settings=》Access policies“,点击 ”Add Access Policy“ 创建新的访问策略。
首先选择配置模板 Configure from template(optional):"Secret Management"
Secret permissions(机密权限):”Get“ (只运行获取机密信息)
点击 ”Nono select“ 进行先选择服务主体,输入 "Azure.KeyVault"进行选择,点击 ”Select“