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

Microsoft Entra 身份验证适用于 Azure Database for MySQL - 灵活服务器

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

Entra 身份验证的优点

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

配置和使用 Microsoft Entra 身份验证

  1. 选择用于访问灵活服务器的首选身份验证方法。

    • 默认情况下,选择的身份验证仅设置为 MySQL 身份验证。
    • 若要启用Microsoft Entra 身份验证,需要更改身份验证方法:
      • Microsoft Entra authentication only
      • MySQL and Microsoft Entra authentication
  2. 选择具有以下权限的用户分配的托管标识 (UAMI):

  3. 添加 Microsoft Entra 管理员。可以是具有访问灵活服务器权限的 Microsoft Entra 用户或组。

  4. 在映射到 Microsoft Entra 标识的数据库中创建数据库用户。

  5. 通过检索 Microsoft Entra 标识的令牌并登录,连接到数据库。

注释

有关如何使用 Azure Database for MySQL 灵活服务器配置 Microsoft Entra 身份验证的详细分步说明,请参阅 为 Azure Database for MySQL 灵活服务器设置Microsoft Entra 身份验证

Architecture

Microsoft Entra 身份验证需要用户托管标识。 当用户分配的标识链接到弹性服务器时,托管标识资源提供程序(MSRP)在内部向该标识颁发证书。 删除托管标识时,相应的服务主体也会自动删除。

然后,该服务使用托管标识为支持 Microsoft Entra 身份验证的服务请求访问令牌。 Azure 数据库目前仅支持对 Azure Database for MySQL 灵活服务器使用用户分配的托管标识 (UMI)。 有关详细信息,请参阅 Azure 中的托管标识类型

以下概要图概述了对 Azure Database for MySQL 灵活服务器使用 Microsoft Entra 身份验证进行身份验证的工作原理。 箭头表示通信路径。

Microsoft Entra 身份验证工作原理图。

  1. 应用程序可以从 Azure 实例元数据服务标识终结点请求令牌。
  2. 使用客户端 ID 和证书时,会调用 Microsoft Entra 来请求访问令牌。
  3. Microsoft Entra 返回 JSON Web 令牌(JWT)访问令牌。 应用程序在对服务器的调用时发送访问令牌。
  4. 服务器使用 Microsoft Entra 验证令牌。

管理员结构

使用 Microsoft Entra 身份验证时,Azure Database for MySQL 灵活服务器有两个管理员帐户:原始 MySQL 管理员和Microsoft Entra 管理员。

只有基于 Microsoft Entra 帐户的管理员才能在用户数据库中创建第一个 Microsoft Entra ID 数据库用户。 进行 Microsoft Entra 管理员登录的可以是 Microsoft Entra 用户或 Microsoft Entra 组。 当管理员是组帐户时,任何组成员都是数据库服务器管理员。 组帐户通过在 Microsoft Entra 中集中添加和删除组成员来增强可管理性,而无需更改数据库服务器中的用户或权限。

重要

一次只能配置一个Microsoft Entra 管理员(用户或组)。

Microsoft Entra 管理员结构的图示。

用于访问灵活服务器的身份验证方法包括:

  • 仅 MySQL 身份验证 - 默认选项仅允许使用 MySQL 登录和密码进行本机 MySQL 身份验证。
  • 仅Microsoft Entra 身份验证 - 禁用 MySQL 本机身份验证,并且用户和应用程序必须使用 Microsoft Entra 进行身份验证。 若要启用此模式,服务器参数 aad_auth_only 设置为 ON
  • 使用 MySQL 和 Microsoft Entra ID 进行身份验证 - 可用选项包括原生 MySQL 和 Microsoft Entra 身份验证。 若要启用此模式,服务器参数 aad_auth_only 设置为 OFF

Permissions

需要以下权限才能允许 UMI 以服务器身份从 Microsoft Graph 读取数据。 或者,为用户分配的托管标识提供 目录读取者 角色。

重要

只有至少具有 特权角色管理员 角色的用户才能授予这些权限。

有关如何授予和使用权限的指导,请参阅 Microsoft Graph 权限概述

向 UMI 授予权限后,这些权限将启用于所有以 UMI 作为服务器身份创建的服务器。

令牌验证

Microsoft Azure Database for MySQL 灵活服务器中的 Entra 身份验证可确保用户存在于 MySQL 服务器中,并通过验证令牌的内容来检查令牌的有效性。 执行以下令牌验证步骤:

  • 令牌由 Microsoft Entra 签名。
  • 令牌由与服务器关联的租户Microsoft Entra 颁发。
  • 令牌未过期。
  • 令牌适用于 Azure 灵活服务器实例(而不是其他 Azure 资源)。

使用 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 身份验证

其他注意事项

  • 随时只能为每个灵活服务器配置一个Microsoft Entra 管理员。

  • 如果用户从 Microsoft Entra 中删除,该用户将无法再使用 Entra 进行身份验证。 因此,不再可能获取该用户的访问令牌。 尽管匹配用户仍在数据库中,但无法与该用户连接服务器。

    注释

    仍然可以使用已删除的Microsoft Entra用户登录,直到令牌失效(自令牌颁发之时起最长为 60 分钟)。 如果从 Azure Database for MySQL 灵活服务器中删除用户,则会立即撤销此访问权限。

  • 如果Microsoft Entra 管理员已从服务器中删除,则服务器不再与 Microsoft Entra 租户相关联,因此所有Microsoft Entra 登录名都已禁用服务器。 从同一租户添加新的 Microsoft Entra 管理员可重新启用Microsoft Entra 登录名。

  • 灵活服务器将访问令牌与用户的唯一 Entra ID 而不是用户名匹配。 因此,如果从 Microsoft Entra 中删除用户,然后添加同名的新用户,则新用户不会继承以前的权限。

  • 若要在副本服务器上启用 Entra 身份验证,需要在所有副本合作伙伴的主服务器上应用相同的配置步骤。

注释

启用了 Microsoft Entra 身份验证的灵活服务器的订阅无法传输到另一个租户或目录。

后续步骤