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

Azure App Service如何通过Windows认证/托管标识连接自建SQL Server?

自建SQL Server 2019实例的AAD/Windows认证连接方案(UAT本地+Azure VM生产)

生产环境:Azure VM上的SQL Server实例

Azure VM上的常规SQL Server 2019支持Azure AD身份验证,可结合App Service托管标识实现无SQL认证的连接,步骤如下:

  • 启用SQL Server的Azure AD身份验证:在SQL Server中创建Azure AD管理员,执行CREATE LOGIN [你的AAD托管标识名称] FROM EXTERNAL PROVIDER,再在目标数据库中创建对应用户并授权:CREATE USER [托管标识名称] FOR LOGIN [托管标识名称] FROM EXTERNAL PROVIDER; GRANT [所需权限] TO [托管标识名称];
  • 给App Service分配托管标识:在App Service的「标识」选项卡启用系统托管标识,或创建用户托管标识并关联到App Service
  • 修改应用连接逻辑:使用Azure.Identity库的DefaultAzureCredential获取针对SQL Server的访问令牌,将令牌附加到SQL连接中。示例代码(.NET):
    var credential = new DefaultAzureCredential();
    var token = await credential.GetTokenAsync(new TokenRequestContext(new[] { "https://database.windows.net/.default" }));
    using (var connection = new SqlConnection("Server=你的Azure VM SQL实例地址;Database=目标库;"))
    {
        connection.AccessToken = token.Token;
        await connection.OpenAsync();
        // 执行数据库操作
    }
    

UAT环境:本地SQL Server实例

本地SQL Server需通过Azure AD与本地身份系统的集成实现无SQL认证连接,推荐两种方案:

方案1:本地AD+Azure AD同步(AD Connect)

  • 部署AD Connect同步本地AD与Azure AD,确保本地SQL Server所在服务器加入本地AD
  • 在本地AD中配置Kerberos约束委派(KCD):将App Service托管标识对应的AD服务主体,配置为允许委派到SQL Server的服务主体(格式为MSSQLSVC/本地SQL服务器FQDN:端口)
  • 应用通过VPN/ExpressRoute打通与本地网络的连接,代码中使用DefaultAzureCredential获取令牌,或直接使用Windows认证连接字符串(需确保KCD配置生效)

方案2:Azure AD Domain Services(AAD DS)

  • 部署AAD DS,将本地SQL Server所在服务器加入AAD DS域
  • 在SQL Server中启用Azure AD身份验证,创建托管标识对应的登录和用户(同生产环境步骤)
  • 应用通过VPN/ExpressRoute访问本地SQL Server,使用托管标识获取令牌连接(同生产环境代码逻辑)

技术进展(自去年8月以来)

  • SQL Server 2019的Azure AD身份验证功能优化:支持托管标识直接作为外部登录主体,无需额外的AAD用户/组中转
  • Azure App Service与Azure.Identity库的集成更简化:DefaultAzureCredential自动识别App Service托管标识,无需手动配置环境变量或连接字符串参数
  • 本地SQL Server的AAD集成选项扩展:新增AAD DS作为本地域的替代方案,无需维护本地AD基础设施,降低部署复杂度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:10:27