使用 Microsoft Entra ID 进行 MySQL 身份验证

适用于: Azure Database for MySQL - 单一服务器

重要

Azure Database for MySQL 单一服务器即将停用。 强烈建议升级到 Azure Database for MySQL 灵活服务器。 若要详细了解如何迁移到 Azure Database for MySQL 灵活服务器,请参阅 Azure Database for MySQL 单一服务器发生了什么情况?

Microsoft Entra 身份验证是一种使用 Microsoft Entra ID 中定义的标识连接到 Azure Database for MySQL 的机制。 通过 Microsoft Entra 身份验证,可以在一个中心位置集中管理数据库用户标识和其他 Microsoft 服务,从而简化权限管理。

使用 Microsoft Entra ID 的优势包括:

  • 以统一的方式跨 Azure 服务对用户进行身份验证
  • 在统一的位置管理密码策略和密码轮换
  • Microsoft Entra ID 支持多种形式的身份验证,无需存储密码
  • 客户可以使用外部 (Microsoft Entra ID) 组来管理数据库权限。
  • Microsoft Entra 身份验证使用 MySQL 数据库用户以数据库级别对标识进行身份验证
  • 支持对连接到 Azure Database for MySQL 的应用程序进行基于令牌的身份验证

若要配置和使用 Microsoft Entra 身份验证,请遵循以下过程:

  1. 根据需要,创建 Microsoft Entra ID,并使用用户标识进行填充。
  2. (可选)关联 Active Directory,或更改当前与 Azure 订阅关联的 Active Directory。
  3. 创建 Azure Database for MySQL 服务器的 Microsoft Entra 管理员。
  4. 在映射到 Microsoft Entra 标识的数据库中创建数据库用户。
  5. 通过检索 Microsoft Entra 标识的令牌并登录,连接到数据库。

注意

若要了解如何创建和填充 Microsoft Entra ID,然后使用 Azure Database for MySQL 配置 Microsoft Entra ID,请参阅为 Azure Database for MySQL 配置和登录 Microsoft Entra ID

管理员结构

使用 Microsoft Entra 身份验证时,有两个 MySQL 服务器管理员帐户:原始 MySQL 管理员和 Microsoft Entra 管理员。 只有 Microsoft Entra 帐户的管理员可以在用户数据库中创建第一个包含 Microsoft Entra ID 的数据库用户。 Microsoft Entra 管理员登录名可以是 Microsoft Entra 用户或 Microsoft Entra 组。 当管理员为组帐户时,可以由任何组成员使用,从而为 MySQL 服务器启用多个 Microsoft Entra 管理员。 以管理员身份使用组帐户可便于集中添加和删除 Microsoft Entra ID 中的组成员,而无需更改 MySQL 服务器中的用户或权限,从而提高了可管理性。 无论何时都仅可配置一个 Microsoft Entra 管理员(一个用户或组)。

权限

若要创建可以使用 Microsoft Entra ID 进行身份验证的新用户,你必须是指定的 Microsoft Entra 管理员。 此用户是通过为特定 Azure Database for MySQL 服务器配置 Microsoft Entra 管理员帐户来分配的。

若要创建新的 Microsoft Entra 数据库用户,必须以 Microsoft Entra 管理员身份进行连接。 为 Azure Database for MySQL 配置 Microsoft Entra ID 并使用它登录中对此进行了演示。

只有为 Azure Database for MySQL 创建 Microsoft Entra 管理员之后,才能进行 Microsoft Entra 身份验证。 如果已从服务器删除 Microsoft Entra 管理员,先前创建的现有 Microsoft Entra 用户将无法再使用其 Microsoft Entra 凭据连接到数据库。

使用 Microsoft Entra 标识进行连接

Microsoft Entra 身份验证支持使用 Microsoft Entra 标识连接到数据库的以下方法:

  • Microsoft Entra 密码
  • Microsoft Entra 集成
  • 使用 MFA 的 Microsoft Entra Universal
  • 使用 Active Directory 应用程序证书或客户端密码
  • 托管标识

执行 Active Directory 身份验证后,就可以检索令牌了。 此令牌是用于登录的密码。

请注意,目前仅 Microsoft Entra 用户角色支持管理操作,例如添加新用户。

注意

若要详细了解如何使用 Active Directory 令牌进行连接,请参阅为 Azure Database for MySQL 配置 Microsoft Entra ID 并使用它登录

其他注意事项

  • Microsoft Entra 身份验证仅适用于 MySQL 5.7 及更高版本。
  • 无论何时都只能为 Azure Database for MySQL 服务器配置一个 Microsoft Entra 管理员。
  • 只有 MySQL 的 Microsoft Entra 管理员才能最初使用 Microsoft Entra 帐户连接到 Azure Database for MySQL。 Active Directory 管理员可以配置后续的 Microsoft Entra 数据库用户。
  • 如果已从 Microsoft Entra ID 中删除某个用户,此用户就无法再使用 Microsoft Entra ID 进行身份验证,所以也就无法再获取此用户的访问令牌。 在这种情况下,尽管匹配用户仍保留在数据库中,但无法使用此用户连接到服务器。

注意

在令牌到期前(自令牌颁发起最长 60 分钟后到期),仍可以使用已删除的 Microsoft Entra 用户进行登录。 如果同时还从 Azure Database for MySQL 中删除了用户,此访问权限会立即撤销。

  • 如果从服务器中删除 Microsoft Entra 管理员,那么服务器将不再与 Microsoft Entra 租户关联,因此也就会对服务器禁用所有 Microsoft Entra 登录。 从同一租户中添加新的 Microsoft Entra 管理员会重新启用 Microsoft Entra 登录。
  • Azure Database for MySQL 使用用户的唯一 Microsoft Entra 用户 ID(而不是用户名),将访问令牌与 Azure Database for MySQL 用户进行匹配。 也就是说,如果你在 Microsoft Entra ID 中删除 Microsoft Entra 用户,然后新建了一个同名用户,那么 Azure Database for MySQL 会认为这是一个不同的用户。 因此,如果你从 Microsoft Entra ID 中删除用户,然后添加了一个同名的新用户,那么新用户将无法使用现有用户进行连接。

注意

启用了 Microsoft Entra 身份验证的 Azure MySQL 的订阅不能转移给其他租户或目录。

后续步骤