You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地IIS托管Web应用如何从Azure Key Vault读取web.config机密配置

问题根因

VS自带的IIS Express运行时会默认使用当前登录Windows的个人账号身份发起Azure Key Vault请求,你已经为该账号配置了Key Vault访问策略,所以本地调试时可以正常读取机密。部署到本地IIS后,Web应用由对应站点的应用程序池标识账号运行,该账号没有关联有效的Azure访问凭据,也未被添加到Key Vault的访问策略中,因此读取配置失败。

解决方案

快速验证方案(适合开发测试环境)

直接将IIS应用池的运行身份改为你本地调试用的个人账号即可:

  • 打开IIS管理器,找到部署站点对应的应用程序池,右键选择「高级设置」
  • 找到「进程模型」下的「标识」项,点击右侧的省略号按钮
  • 选择「自定义账户」,点击「设置」,输入你已经配置过Key Vault访问权限的Windows账号和密码,保存配置
  • 重启应用池和站点即可验证

生产环境稳定方案

使用Azure AD服务主体做身份认证,步骤如下:

  1. 在Azure AD中创建服务主体,记录生成的客户端ID、客户端机密、租户ID
  2. 在Azure Key Vault的访问策略中,为该服务主体添加机密读取、机密列表权限,保存策略
  3. 登录IIS所在的服务器,配置系统级环境变量:
    • 变量名AZURE_CLIENT_ID,值为服务主体客户端ID
    • 变量名AZURE_TENANT_ID,值为Azure AD租户ID
    • 变量名AZURE_CLIENT_SECRET,值为服务主体客户端机密
  4. 重启IIS应用池,必要时重启服务器确保环境变量生效
  5. 访问站点验证配置读取是否正常

临时测试方案

如果只是临时测试,可以直接在IIS服务器上安装Azure CLI,打开管理员命令行执行az login,用有Key Vault访问权限的账号完成登录,凭据会自动缓存供IIS应用调用,该方案仅适用于临时验证,不建议生产环境使用。


内容的提问来源于stack exchange,提问作者RajBeniwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:24:00