你当前正在访问 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 身份验证:
什么是 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 进行身份验证。