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

ASP.NET Framework应用如何用服务主体/托管标识访问Azure应用配置

禁用Azure App Configuration访问密钥,改用服务主体/托管标识的ASP.NET Framework配置修改

一、使用服务主体(客户端凭据)认证

基于你已创建并配置好的服务主体,修改应用配置如下:

  1. 替换原包含访问密钥的connectionString配置,拆分出单独的endpoint、tenantId、clientId、clientSecret属性,利用已有的Environment配置构建器读取环境变量:
<configBuilders>
    <builders>
        <add name="MyConfigStore" mode="Greedy" 
             endpoint="https://<app_config>.azconfig.io"
             tenantId="${TENANT_ID}"
             clientId="${CLIENT_ID}"
             clientSecret="${CLIENT_SECRET}"
             type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />
        <add name="Environment" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment" />
    </builders>
</configBuilders>
  1. 关键说明:
  • 彻底移除了原带访问密钥的完整连接字符串,避免密钥泄露风险
  • tenantId/clientId/clientSecret通过环境变量注入,无需硬编码到配置文件中
  • 确认服务主体已被分配App Configuration Data Reader角色,确保权限生效

二、使用托管标识认证(推荐方案)

如果应用部署在Azure托管服务(如App Service、VM、AKS等)上,推荐使用托管标识,无需管理客户端密钥:

系统分配托管标识配置

<configBuilders>
    <builders>
        <add name="MyConfigStore" mode="Greedy" 
             endpoint="https://<app_config>.azconfig.io"
             useManagedIdentity="true"
             type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />
        <add name="Environment" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment" />
    </builders>
</configBuilders>

用户分配托管标识配置

若使用用户分配的托管标识,需额外指定标识的Client ID:

<configBuilders>
    <builders>
        <add name="MyConfigStore" mode="Greedy" 
             endpoint="https://<app_config>.azconfig.io"
             useManagedIdentity="true"
             clientId="${MANAGED_IDENTITY_CLIENT_ID}"
             type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />
        <add name="Environment" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment" />
    </builders>
</configBuilders>
  1. 关键说明:
  • 启用useManagedIdentity="true"后,应用会自动通过托管标识向Azure AD认证
  • 确保应用所在的Azure服务已启用对应托管标识,且该标识已被分配App Configuration Data Reader角色
  • 无需配置任何密钥,彻底消除密钥管理风险

通用注意事项

  • 确认项目中安装的Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration包版本≥2.0,该版本开始支持托管标识和服务主体认证
  • 清理所有代码、配置文件或环境变量中残留的Azure App Configuration访问密钥,确保本地认证方式完全禁用
  • 测试应用时,验证配置加载是否正常,若出现权限问题,检查角色分配是否生效、托管标识是否正确启用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:40:24