把老系统搬到云上,最让人头疼的不是数据库本身的迁移,而是——
Windows 认证用不了了怎么办?
多少企业迁移计划卡在这一步:应用依赖 Windows Authentication(集成身份验证),上了云却没有域控,认证逻辑要全部重写,工程量直接翻倍。
现在,Azure SQL Managed Instance 正式推出了一个关键能力:支持 Microsoft Entra 主体的 Windows Authentication(预览版)。这意味着,即便是纯云身份(不存在于本地 AD 的用户),也能通过 Kerberos 方式完成 Windows 身份验证。
迁移路上的那块大石头,终于被搬开了。
为什么 Windows 认证这么难迁移?
传统 Windows Authentication 依赖本地 Active Directory(AD)+ Kerberos 协议:
- 客户端向域控(KDC)请求 Kerberos 票据
- 拿着票据去访问 SQL Server
- SQL Server 验证票据,确认身份
问题在于——上了云,域控没了。
Azure SQL Managed Instance 虽然支持 Microsoft Entra ID(原 Azure AD)认证,但很多遗留应用的连接字符串写死了 Integrated Security=SSPI,应用代码里硬编码了 Windows 认证逻辑,改起来牵一发动全身。
这就导致了一个尴尬局面:
| 场景 | 传统 Windows Auth | Entra ID 认证 | |------|-------------------|---------------| | 本地应用 + 本地 SQL Server | ✅ 原生支持 | ❌ 需改代码 | | 云应用 + Azure SQL MI | ❌ 没域控 | ✅ 原生支持 | | 遗留应用迁移上云 | ❌ 卡住 | ❌ 要大改 |
现在这个新功能,就是把右下角那个 ❌ 变成 ✅。
这次新功能解决了什么?
1. 混合身份:无缝过渡
如果你的用户是从本地 AD DS 同步到 Microsoft Entra ID 的(通过 Entra Connect),那这些用户可以继续使用 Windows Authentication,不需要改任何代码。
这就像给迁移加了个缓冲垫——先上云,认证方式不变,等稳定了再慢慢切换。
2. 纯云身份:不再需要域控!
这是真正的突破:
- 仅存在于 Microsoft Entra ID 中的用户(比如纯云创建的账号)
- 不需要任何本地域控制器
- 也能通过 Kerberos 方式完成 Windows Authentication
原理是什么?Microsoft Entra Kerberos 充当了云端 KDC(密钥分发中心),直接为 Azure SQL MI 等云资源颁发 Kerberos 票据。
架构变化一目了然:
| | 之前 | 现在 | |---|------|------| | KDC 位置 | 本地域控 | Microsoft Entra Kerberos(云) | | 纯云用户 | ❌ 无法用 Windows Auth | ✅ 可以 | | 混合用户 | ✅ 需要域控 | ✅ 不需要域控也行 | | 域控依赖 | 必须 | 可选 |
3. 无密码安全升级
更妙的是,配合 Windows Hello for Business 或 FIDO2 密钥,Windows Authentication 还能做到 无密码 + MFA:
- 用户体验不变(还是 Windows 认证那套流程)
- 安全性大幅提升(不再依赖明文密码)
- 满足等保 2.0 和数据安全法的合规要求
对国内用户意味着什么?
🎯 迁移方案落地
过去很多企业想从本地 SQL Server 迁移到 Azure SQL MI,但 Windows 认证这一关过不去。现在方案清晰了:
- 第一步:把 SQL Server 迁移到 Azure SQL MI
- 第二步:开启 Entra Kerberos + Windows Authentication
- 第三步:应用零代码改动,认证正常工作
- 第四步:后续逐步切换到 Entra ID 原生认证(可选)
🔍 与国内云对比
| 能力 | Azure SQL MI + Entra Kerberos | 阿里云 RDS SQL Server | 腾讯云 SQL Server | |------|------------------------------|----------------------|-------------------| | Windows Auth(云身份) | ✅ 预览版支持 | ❌ 需搭建 AD 域 | ❌ 需搭建 AD 域 | | 云原生 KDC | ✅ Entra Kerberos | ❌ 无对标方案 | ❌ 无对标方案 | | 无密码认证 | ✅ WHfB + FIDO2 | ⚠️ 有限支持 | ⚠️ 有限支持 | | 混合身份同步 | ✅ Entra Connect | ✅ AD Connector | ✅ AD Connector |
简单说:国内云数据库要做 Windows Auth,还得自己搭域控。Azure 这一步直接把 KDC 搬到云上了。
⚠️ 注意事项
- 目前是预览版,不建议直接上生产环境
- Entra Kerberos 有 Group SID 限制,大规模部署需注意
- Azure 中国区的 Entra ID 功能可能与全球版有差异,建议先在测试环境验证
- 如果你的应用只用了 SQL 认证(用户名密码),这个功能跟你关系不大,不用关注
怎么开启?
- 在 Azure SQL MI 上启用 Windows Authentication for Entra principals
- 配置 Microsoft Entra Kerberos(云端 KDC)
- 在客户端设备上部署 Entra Kerberos 票据转发
- 应用无需修改连接字符串,Windows Authentication 直接生效
详细步骤参考官方文档:
- Windows Authentication for Microsoft Entra principals on Azure SQL Managed Instance
- Microsoft Entra Kerberos Overview
总结
这个功能的意义远超一个「预览版特性」——它打通了遗留应用迁移上云的最后一公里。
过去:Windows 认证 = 必须有域控 = 上云受阻 现在:Windows 认证 = 云端 KDC = 域控可选 = 迁移畅通
如果你的团队正在规划 SQL Server 上云,强烈建议关注这个功能的 GA 进展。预览阶段可以先在测试环境验证,等正式发布就能无缝切换。
原文链接:https://techcommunity.microsoft.com/t5/azure-sql-blog/windows-authentication-for-cloud-native-identities-modernizing/ba-p/4475784 发布日期:2025-12-07


