将多重 Microsoft Entra 身份验证与 Synapse SQL(对 MFA 的 SSMS 支持)配合使用

Synapse SQL 支持使用 Active Directory 通用身份验证从 SQL Server Management Studio (SSMS) 进行连接。

本文讨论各种身份验证选项之间的差异,以及与使用通用身份验证相关的限制。

下载最新 SSMS - 在客户端计算机上,从下载 SQL Server Management Studio (SSMS) 下载最新版本的 SSMS。

对于本文中讨论的所有功能,请至少使用 2017 年 7 月的版本 17.2。 最新连接对话框的外观应类似于下图:

Screenshot shows Connect to Server dialog box where you can select a server name and authentication option.

五个身份验证选项

Active Directory 通用身份验证支持两种非交互式身份验证方法:Active Directory - Password 身份验证和 Active Directory - Integrated 身份验证

此外还有两种非交互式身份验证模型,可以在许多不同的应用程序(ADO.NET、JDCB、ODC 等)中使用。 这两种方法绝对不会产生弹出式对话框:

  • Active Directory - Password
  • Active Directory - Integrated

同时支持 Microsoft Entra 多重身份验证 (MFA) 的交互式方法包括:

  • Active Directory - Universal with MFA

Microsoft Entra 多重身份验证可帮助保护对数据和应用程序的访问,同时可以满足用户对简单登录过程的需求。 它利用一系列简单的验证选项(电话、短信、含有 PIN 码的智能卡或移动应用通知)提供强身份验证,用户可以根据自己的偏好选择所用的方法。 配合使用 Microsoft Entra ID 和交互式 MFA 时会出现用于验证的弹出式对话框。

有关多重身份验证的说明,请参阅多重身份验证

Microsoft Entra 域名或租户 ID 参数

SSMS 版本 17 开始,以来宾用户身份从其他 Azure Active Directory 导入到当前 Active Directory 的用户在连接时可提供 Microsoft Entra 域名或租户 ID。

来宾用户包括从其他 Azure AD、Microsoft 帐户(如 outlook.com、hotmail.com、live.com)或其他帐户(如 gmail.com)邀请的用户。 此信息使“Active Directory - 通用且具有 MFA 身份验证” 可以识别正确的身份验证机构。 此选项也是支持 outlook.com、hotmail.com、live.com 等 Microsoft 帐户 (MSA) 或非 MSA 帐户的必需选项。

所有要使用通用身份验证进行身份验证的用户必须输入其 Microsoft Entra 域名或租户 ID。 此参数表示 Azure 服务器当前链接的 Microsoft Entra 域名/租户ID。

例如,如果 Azure Server 与 Microsoft Entra 域 contosotest.partner.onmschina.cn(其中用户 joe@contosodev.partner.onmschina.cn 托管为从 Microsoft Entra 域 contosodev.partner.onmschina.cn 导入的用户)相关联,则需用于对此用户进行身份验证的域名为 contosotest.partner.onmschina.cn

如果用户是链接到 Azure 服务器的 Microsoft Entra ID 的本机用户,并且不是 MSA 帐户,则无需提供域名或租户 ID。

若要输入参数(从 SSMS 版本 17.2 开始),请在“连接到数据库”对话框中,完成该对话框,选择“Active Directory - 通用且具有 MFA 支持”身份验证,选择“选项”,完成“用户名”框,然后选择“连接属性”选项卡。

选中“AD 域名或租户 ID”框,并提供身份验证机构,如域名 (contosotest.partner.onmschina.cn) 或租户 ID 的 GUID。

Screenshot shows Connect to Server in the Connection Properties tab with values entered.

如果你运行 SSMS 18.x 或更高版本,则来宾用户不再需要 AD 域名或租户 ID,因为 18.x 或更高版本会自动识别它。

mfa-tenant-ssms

Microsoft Entra 企业到企业支持

可以作为来宾用户用于 Microsoft Entra B2B 方案的 Microsoft Entra 用户(请参阅什么是 Azure B2B 协作)只能作为符合以下条件的组的成员连接到 Synapse SQL:在当前 Microsoft Entra ID 中创建,并使用 Transact-SQL CREATE USER 语句在给定数据库中手动进行映射。

例如,如果邀请 steve@gmail.com 连接 Azure AD contosotest(使用 Microsoft Entra 域 contosotest.partner.onmschina.cn),则必须在包含 steve@gmail.com 成员的 Microsoft Entra ID 中创建 Microsoft Entra 组,例如 usergroup。 然后,必须通过执行 Transact-SQL CREATE USER [usergroup] FROM EXTERNAL PROVIDER 语句,由 Microsoft Entra SQL 管理员或 Microsoft Entra DBO 为特定数据库(即 MyDatabase)创建此组。

创建数据库用户之后,用户 steve@gmail.com 随后可以使用 SSMS 身份验证选项 Active Directory – Universal with MFA support 登录 MyDatabase

默认情况下,用户只拥有连接权限以及需要采用正常方式授予的任何其他数据访问权限。

作为来宾用户的用户 steve@gmail.com 必须在 SSMS“连接属性”对话框中选中该框,并添加 AD 域名 contosotest.partner.onmschina.cn。 仅对“通用且具有 MFA 连接”选项支持“AD 域名或租户 ID” ,否则它处于灰显状态。

Synapse SQL 的通用身份验证限制

  • SSMS 和 SqlPackage.exe 是目前唯一通过 Active Directory 通用身份验证针对 MFA 启用的工具。
  • SSMS 版本 17.2 支持使用具有 MFA 的通用身份验证进行多用户并发访问。 版本 17.0 和 17.1 将使用通用身份验证的 SSMS 实例的登录名限制到单个 Microsoft Entra 帐户。 若要以另一个 Microsoft Entra 帐户登录,则必须使用另一个 SSMS 实例。 (此限制仅限于 Active Directory 通用身份验证;如果使用 Active Directory 密码验证、Active Directory 集成身份验证或 SQL Server 身份验证,可以登录到不同的服务器)。
  • 对于对象资源管理器、查询编辑器和查询存储可视化效果,SSMS 支持 Active Directory 通用身份验证。
  • SSMS 版本 17.2 为导出/提取/部署数据数据库提供 DacFx 向导支持。 在特定用户使用通用身份验证通过初始身份验证对话框进行了身份验证之后,DacFx 向导的工作方式与针对所有其他身份验证方法的方式相同。
  • SSMS 表设计器不支持通用身份验证。
  • 除了必须使用支持的 SSMS 版本,Active Directory 通用身份验证没有其他软件需求。
  • 通用身份验证的 Active Directory 身份验证库 (ADAL) 版本已更新到最新的 ADAL.dll 3.13.9 可用发行版。 请参阅 Active Directory 身份验证库 3.14.1

后续步骤

有关详细信息,请参阅通过 SQL Server Management Studio 连接到 Synapse SQL 一文。