.NET Framework应用服务(EF连SQL Server)能否迁移至Azure AD认证?
可以迁移,具体实现方案如下
结论:运行在App Service中的.NET Framework + Entity Framework应用,完全可以将SQL Server认证模式从SQL身份认证迁移至Azure AD身份认证。
关键实现步骤
版本与环境准备
确保你的.NET Framework版本在4.6.1及以上(原生支持Azure AD连接SQL Server的类库),同时目标SQL Server(或Azure SQL Database)已完成Azure AD认证配置:设置Azure AD管理员,为需要访问数据库的AD身份(托管标识、用户/组、服务主体)分配对应数据库权限。修改连接字符串
替换原SQL认证格式的连接字符串,根据选择的Azure AD认证类型调整:- 使用App Service系统托管标识(推荐,无凭据硬编码):
Server=tcp:your-server.database.windows.net,1433;Initial Catalog=your-db;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30; - 使用Azure AD用户密码:
Server=tcp:your-server.database.windows.net,1433;Initial Catalog=your-db;Authentication=Active Directory Password;User ID=user@yourdomain.com;Password=your-ad-password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
- 使用App Service系统托管标识(推荐,无凭据硬编码):
Entity Framework适配
对于EF6(.NET Framework主流EF版本),无需修改EF核心业务代码,只需确保项目引用的System.Data.SqlClientNuGet包版本在4.8.3及以上(该版本及以后原生支持Azure AD认证参数)。若使用更早的EF版本,建议升级至EF6以获得最佳兼容性。App Service侧配置
- 若使用托管标识:在App Service的“标识”选项中启用系统托管标识,然后在Azure SQL Database中为该标识添加数据库用户并授予所需权限(如
db_datareader、db_datawriter)。 - 若使用其他AD认证方式:将凭据(如AD用户密码)存储在App Service的“配置”->“应用程序设置”中,避免硬编码在代码或配置文件里。
- 若使用托管标识:在App Service的“标识”选项中启用系统托管标识,然后在Azure SQL Database中为该标识添加数据库用户并授予所需权限(如
内容的提问来源于stack exchange,提问作者Vigneash Selvaraj
相关产品推荐
相关产品推荐

