Azure Key Vault是一个用来存储及访问密码和证书等秘密信息的服务,本文将介绍如何利用.NET分别从Azure及本地访问Azure Key Vault,以及一些简单的密码管理操作。

目录

Azure App Service如何获取Azure Key Vault的访问权限

部署在本地的应用程序如何获取Azure Key Vault的访问权限

代码示例


Azure App Service如何获取Azure Key Vault的访问权限

1. 通过Azure网站进入所创建的Azure Web App的管理界面之后进入Identity管理界面

2. 选择System assigned选项卡,将状态设置为on并点击保存按钮

3. 在Azure网站最上方的搜索栏里搜索Key Vault关键字并进入Key Vault管理总界面

4. 点击进入创建好的Azure Key Vault实例之后进入Access Policies管理界面

5. 点击添加访问策略按钮,为需要授权的principal(本小节中此处为步骤1中的Azure App Service)添加权限后点击保存按钮

部署在本地的应用程序如何获取Azure Key Vault的访问权限

1. 通过Azure网站创建App registration

2. 利用powershell创建并安装自签名证书

3. 将证书由App registration的Manifest管理界面上传至App registration并保存

4. 效仿上一小节步骤3至5为该App registration授权

代码示例

// Microsoft.Azure.KeyVault 3.0.1 is needed
public class KeyVaultClient
{private readonly KeyVaultClient _client;private readonly string _keyValutDns;public KeyVaultClient(bool isOnPremise, string appRegistrationId=null, string subject=null){_keyValutDns = "https://xxxx.vault.azure.net/";if (isOnPremise) { // Local application_client = new KeyVaultClient(async (authority, resource, scope) => {var context = new AuthenticationContext(authority, null);X509Certificate2 cert = getCertificate(subject);var assertion = new ClientAssertionCertificate(appRegistrationId);var result = await context.AcquireTokensAsync(resource, assertion);return result.AccessToken;});}else{ // Application deployed on Azurevar provider = new AzureServiceTokenProvider();_client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(provider.KeyVaultTokenCallback));}}private X509Certificate2 getCertificate(string subject){using(var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine)){store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);var certs = store.Certificates.Find(X509FindType.FindBySubjectName, subject, false);if (certs.Count != 1)throw new Exception("Failed to get certificate.");return certs[0];}}public async Task AddSecretAsync(string name, string secret){await _client.SetSecretAsync(_keyValutDns, name, secret);}public async Task<string> GetSecretAsync(string name){var response = await _client.GetSecretAsync($"{_keyValutDns}secrets/{name}").ConfigureAwait(false);return response.Value;}
}

完整代码可访问https://github.com/lxf310/Azure_Key_Vault_Demo

Azure Key Vault入门相关推荐

  1. sql azure 语法_如何在SQL 2016中使用Azure Key Vault使用AlwaysOn配置TDE数据库

    sql azure 语法 One of the recent tasks I undertook on configuring Transparent Data encryption (TDE) us ...

  2. Azure Key Vault 简介

    Azure Key Vault(密钥库)是用于安全地存储和访问Secret的云服务,Secret是需要严格控制访问权限的内容,例如API密钥,密码,证书或加密密钥.Key Vault Service支 ...

  3. Azure Key Vault(3):Key和Secret的区别

    我之前在网上看到过一个非常形象的例子来说明Key和Secret的区别: Key Key是一种"加密密钥",用于加密信息,而无需将私钥泄露给消费者.它就像一个黑盒,使用 RSA或者E ...

  4. 在ASP.Net Core和JAVA中,使用Azure配置密钥——Key Vault

    思路浅析 在软件开发中,项目安全是重中之重,特别是在多部门或者开源项目中,如何保存我们的密钥,但又不影响本地的开发,更需要我们开发者需要考虑的问题,这里简单的列举了下平时开发中我们做的方案: 1.本地 ...

  5. java获取keyvault_教程:在 Java Spring Boot 应用中使用 Azure 应用程序配置 Key Vault 引用 | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 教程:在 Java S ...

  6. java获取keyvault_使用 Key Vault 引用 - Azure App Service | Microsoft Docs

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 使用应用服务和 Azu ...

  7. java获取keyvault_ARM Template 结合key vault存储机密信息 (一)

    前两篇讲到了terraform,作为跨平台的IAC工具绝对是没话说的,很非常好用,今天再讲回Azure原生的ARM Template,ARM Template好处就是作为微软的亲儿子,兼容性啥的绝对没 ...

  8. pdm vault 使用_如何使用Key Vault连接器更好地保护Logic Apps中的秘密

    pdm vault 使用 One of the key challenges that users face while using Logic Apps is managing secret val ...

  9. Oracle LiveLabs实验:DB Security - Key Vault

    概述 此实验关于Oracle Key Vault. 此实验申请地址在这里,时间为55分钟. 实验帮助在这里. 实验生成需要15分钟左右,最终会生成2个虚机,以下为我的专属配置: 129.146.74. ...

最新文章

  1. WORD 排版十技巧
  2. 雍培:电力遇上大数据,使我的科研如鱼得水 | 提升之路系列(九)
  3. Linux多任务编程——进程
  4. mkyaffs2image编译
  5. Android构建流程——篇一
  6. 8天玩转并行开发——第三天 plinq的使用
  7. oracle gets/exec 单位,ORACLE AWR使用基础
  8. 运行 lighttrack 遇到错误和解决方法
  9. OpenGL学习笔记(13)位图与文字
  10. Java编程题——判断年份是否为闰年
  11. Mac版本Jmeter下载安装教程
  12. 一个微信关联管理多个腾讯云账号
  13. 存储系统概述——SRAM静态随机存储器
  14. python中format格式化输出总结
  15. 【懒人专用】Python实现Modelsim独立仿真Vivado工程的自动化脚本
  16. 1.【Windows图标点击无反应修复
  17. (笔记)Bison 的使用说明
  18. 研究者们公布图像识别软件方面的最新进展
  19. RNN模型与NLP应用笔记(2):文本处理与词嵌入详解及完整代码实现(Word Embedding)
  20. matlab点云数据投影_Matlab实现点云数据(文本格式)的平行投影

热门文章

  1. 解锁企业数据管理的利器——DataOps
  2. 对计算机科技的理解,对现代教育技术的认识和理解
  3. STM32——GPIO
  4. 走穿java23种设计模式-15责任链模式详解
  5. [Docker] Docker安装青龙并且设置
  6. 2t移动硬盘的2t指的是什么意思?2t移动硬盘格式化后数据恢复方法
  7. c 语言中字符串是什么意思,c语言中string是啥意思啊? 控制啥的啊?
  8. 积极推动上市银行 进入交易所债市
  9. 关于最新版本listen1 (2.24.0)的修改心得(添加下载功能)
  10. 【思科模拟器实验】VTP协议配置