你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为由 Azure Arc 启用的 SQL 托管实例启用 Active Directory 身份验证

已启用 Azure Arc 的数据服务支持将 Active Directory (AD) 用于标识和访问管理 (IAM)。 由 Azure Arc 启用的 SQL 托管实例使用现有的本地 Active Directory (AD) 域进行身份验证。

本文介绍如何为由 Azure Arc 启用的 SQL 托管实例启用 Active Directory (AD) 身份验证。 本文演示两种可能的 AD 集成模式:

  • 客户管理的密钥表 (CMK)
  • 服务管理的密钥表 (SMK)

Active Directory (AD) 集成模式的概念描述了密钥表管理过程,包括:

  • 创建由 SQL 托管实例使用的 AD 帐户
  • 在上述 AD 帐户下注册服务主体名称 (SPN)。
  • 生成密钥表文件

背景

若要为 Linux 上的 SQL Server 和 Linux 容器启用 Active Directory 身份验证,请使用密钥表文件。 密钥表文件是一种加密文件,其中包含服务主体名称 (SPN)、帐户名称和主机名。 SQL Server 使用密钥表文件对 Active Directory (AD) 域进行身份验证,并使用 Active Directory (AD) 对其客户端进行身份验证。 执行以下步骤,为已启用 Arc 的 SQL 托管实例启用 Active Directory 身份验证:

下图显示了如何为由 Azure Arc 启用的 SQL 托管实例启用 Active Directory 身份验证:

Actice Directory 部署用户旅程

什么是 Active Directory (AD) 连接器?

若要为 SQL 托管实例启用 Active Directory 身份验证,必须在允许实例与 Active Directory 域通信的环境中部署实例。

为了实现此目的,已启用 Azure Arc 的数据服务引入了一个新的 Kubernetes 本机自定义资源定义 (CRD),名为 Active Directory Connector。 它为在同一数据控制器上运行的实例提供了执行 Active Directory 身份验证的功能。

比较 AD 集成模式

两种 Active Directory 集成模式有什么区别?

若要为由 Azure Arc 启用的 SQL 托管实例启用 Active Directory 身份验证,需要一个可在其中指定 Active Directory 集成部署模式的 Active Directory 连接器。 这两种 Active Directory 集成模式为:

  • 客户管理的密钥表
  • 服务管理的密钥表

以下部分对这两种模式进行了比较。

客户管理的密钥表 系统管理的密钥表
用例 熟悉如何管理 Active Directory 对象并希望在自动化过程中实现灵活操作的中小型企业 各种规模的企业 - 寻求高度自动化的 Active Directory 管理体验
用户提供内容 一个 Active Directory 帐户以及该帐户下的 SPN,和一个用于 Active Directory 身份验证的密钥表文件 一个组织单位 (OU) 以及在 Active Directory 中对该 OU 拥有足够权限的域服务帐户。
特征 用户管理。 用户提供 Active Directory 帐户,该帐户模拟托管实例和密钥表文件的标识。 系统管理。 系统为每个托管实例创建一个域服务帐户,并自动设置该帐户的 SPN。 此外,系统还创建密钥表文件并将其提供给托管实例。
部署过程 1.部署数据控制器
2.创建密钥表文件
3. 将密钥表信息设置为 Kubernetes 机密
4. 部署 AD 连接器,部署 SQL 托管实例

有关详细信息,请参阅部署客户管理的密钥表 Active Directory 连接器
1. 部署数据控制器,部署 AD 连接器
2. 部署 SQL 托管实例

有关详细信息,请参阅部署系统管理的密钥表 Active Directory 连接器
可管理性 可以按照 Active Directory 实用工具 (adutil) 中的以下说明操作以创建密钥表文件。 手动密钥表轮换。 托管的密钥表轮换。
限制 不建议在服务之间共享密钥表文件。 每项服务都应有一个特定的密钥表文件。 随着密钥表文件数量的增加,工作量和复杂性也随之增加。 托管的密钥表生成和轮换。 服务帐户需要在 Active Directory 中具有足够的权限才能管理凭据。

不支持分布式可用性组。

对于任一模式,都需要为每个 SQL 托管实例提供特定的 Active Directory 帐户、密钥表和 Kubernetes 机密。

启用 Active Directory 域服务身份验证

当你部署需要启用 Active Directory 身份验证的实例时,部署需要引用所要使用的 Active Directory 连接器实例。 在托管实例规范中引用 Active Directory 连接器会自动在实例容器中设置所需的环境,以便使用 Active Directory 进行身份验证。