你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文概述了如何设置基础结构和 SQL 托管实例,以使用 Microsoft Entra ID(前 Azure Active Directory)为 Azure SQL 托管实例上的主体实现 Windows 身份验证。
使用 Microsoft Entra ID 和 Kerberos 为 Azure SQL 托管实例设置 Windows 身份验证有两个阶段。
-
一次性基础结构配置。
- 如果尚未完成,请同步 Active Directory(AD)和 Microsoft Entra ID。
- 启用新式交互式身份验证流(如果可用)。 对于组织中拥有加入Microsoft Entra或混合加入客户端且运行 Windows 10 20H1/Windows Server 2022 及更高版本的设备,推荐使用现代交互式流程。
- 设置传入的基于信任的身份验证流。 对于无法使用新式交互式流但已加入 AD 加入运行 Windows 10/Windows Server 2012 及更高版本的客户端的客户,建议这样做。
-
Azure SQL 托管实例的配置。
- 为每个 SQL 托管实例创建系统分配的服务主体。
注释
Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。
一次性基础设施设置
基础结构设置的第一步是将 AD 与 Microsoft Entra ID 同步(如果尚未完成)。
在此之后,系统管理员配置身份验证流。 可以使用两个认证流在 Azure SQL 托管实例上为 Microsoft Entra 主体启用 Windows 认证:
- 基于传入信任的流支持运行 Windows Server 2012 或更高版本的已加入 AD 的客户端。
- 加入 Microsoft Entra 的客户端支持运行 Windows 10 21H1 或更高版本的新式交互式流。
将 AD 与 Microsoft Entra ID 同步
客户应首先实现 Microsoft Entra Connect ,以便将本地目录与 Microsoft Entra ID 集成。
选择要实现的身份验证流
下图显示了核心功能以及新式交互式流和传入信任流的适用条件:
“一个决策树,显示出现代交互流适用于运行 Windows 10 20H1 或 Windows Server 2022 或更高版本的客户端,其中客户端是 Microsoft Entra 加入或 Microsoft Entra 混合加入。” 传入的基于信任的流适用于运行 Windows 10 或 Windows Server 2012 或更高版本且已加入 AD 的客户端。
新式交互式流适用于运行 Windows 10 21H1 及更高版本的启发式客户端,这些客户端Microsoft Entra 联接或Microsoft Entra 混合联接。 在现代交互流程中,用户无需直接连接域控制器(DCs)即可访问 Azure SQL 托管实例。 无需在客户的 AD 中创建信任对象。 若要启用新式交互式流,管理员将为登录期间使用的 Kerberos 身份验证票证(TGT)设置组策略。
传入的基于信任的流适用于运行 Windows 10 或 Windows Server 2012 及更高版本的客户端。 此流程要求将客户端加入到 AD,并且从本地拥有到 AD 的直接通信路径。 在传入的基于信任的流中,信任对象在客户的 AD 中创建,并在 Microsoft Entra ID 中注册。 若要启用基于传入信任的流,管理员将使用 Microsoft Entra ID 设置传入信任,并通过组策略设置 Kerberos 代理。
新式交互式身份验证流
实现新式交互式身份验证流需要满足以下先决条件:
| 先决条件 | Description |
|---|---|
| 客户端必须运行 Windows 10 20H1、Windows Server 2022 或更高版本的 Windows。 | |
| 客户端必须 Microsoft Entra 注册 或 Microsoft Entra 混合注册。 | 可以通过运行 dsregcmd 命令来确定是否满足此先决条件: dsregcmd.exe /status |
| 应用程序必须通过交互式会话连接到 SQL 托管实例。 | 这支持 SQL Server Management Studio(SSMS)和 Web 应用程序等应用程序,但不适用于作为服务运行的应用程序。 |
| Microsoft Entra 租户。 | |
| 计划用于身份验证的同一Microsoft Entra 租户下的 Azure 订阅。 | |
| 已安装 Microsoft Entra Connect 。 | Microsoft Entra ID 和 AD 中都存在标识的混合环境。 |
请参阅 如何使用新式交互式流为 Microsoft Entra ID 设置 Windows 身份验证 ,以获取启用此身份验证流的步骤。
传入基于信任的身份验证流
实现基于信任的传入身份验证流需要满足以下先决条件:
| 先决条件 | Description |
|---|---|
| 客户端必须运行 Windows 10、Windows Server 2012 或更高版本的 Windows。 | |
| 客户端必须加入 AD。 域的功能级别必须是 Windows Server 2012 或更高版本。 | 可以通过运行 dsregcmd 命令:dsregcmd.exe /status来确定客户端是否建立 AD 联接 |
| Azure AD 混合身份验证管理模块。 | 此 PowerShell 模块提供本地设置的管理功能。 |
| Microsoft Entra 租户。 | |
| 计划用于身份验证的同一Microsoft Entra 租户下的 Azure 订阅。 | |
| 已安装 Microsoft Entra Connect 。 | Microsoft Entra ID 和 AD 中都存在标识的混合环境。 |
有关如何启用此身份验证流的说明,请参阅如何使用基于传入信任的流为 Microsoft Entra ID 设置 Windows 身份验证。
配置 Azure SQL 托管实例
为传入的基于信任的身份验证流和现代交互式身份验证流设置 Azure SQL 托管实例的步骤相同。
配置 SQL 托管实例的先决条件
为 Microsoft Entra 主体配置 Windows 身份验证的 SQL 托管实例需要满足以下先决条件:
| 先决条件 | Description |
|---|---|
| Az.Sql PowerShell 模块 | 此 PowerShell 模块为 Azure SQL 资源提供管理 cmdlet。 通过运行以下 PowerShell 命令安装此模块:Install-Module -Name Az.Sql |
| Microsoft Graph PowerShell 模块 | 此模块提供用于 Microsoft Entra ID 管理任务(例如用户和服务主体管理)的管理命令行程序。 通过运行以下 PowerShell 命令安装此模块:Install-Module –Name Microsoft.Graph |
| SQL 托管实例 | 可以 创建新的 SQL 托管实例 或使用现有的 SQL 托管实例。 |
配置每个 SQL 托管实例
有关配置每个 SQL 托管实例以进行 Microsoft Entra ID Windows 身份验证的步骤,请参阅 为 Microsoft Entra ID 配置 Azure SQL 托管实例的 Windows 身份验证。
局限性
以下限制适用于 Azure SQL 托管实例上 Microsoft Entra 主体的 Windows 身份验证:
不适用于 Linux 客户端
Microsoft Entra 用户的 Windows 验证目前仅支持运行 Windows 的客户端计算机。
Microsoft Entra ID 缓存登录
Windows 会限制连接到 Microsoft Entra ID 的频率,因此,在升级或全新部署客户端计算机后的 4 小时内,用户帐户可能无法获得刷新过的 Kerberos 票证授予票证(TGT)。 没有刷新 TGT 的用户帐户会导致来自 Microsoft Entra ID 的票证请求失败。
作为管理员,可以通过在客户端计算机上运行以下命令来立即触发联机登录来处理升级方案,然后锁定和解锁用户会话以获取刷新的 TGT:
dsregcmd.exe /RefreshPrt