身份验证机制

重要

AKS 上的 Azure HDInsight 已于 2025 年 1 月 31 日停用。 了解更多 的信息,请查看此公告

需要将工作负荷迁移到 Microsoft Fabric 或等效的 Azure 产品,以避免工作负荷突然终止。

重要

此功能目前以预览版提供。 Microsoft Azure 预览版补充使用条款 包括更多适用于 beta 版、预览版或尚未正式发布至全面可用状态的 Azure 功能的法律条款。 有关此特定预览的信息,请参阅 Azure HDInsight on AKS 预览信息。 有关问题或功能建议,请在 AskHDInsight 上提交请求,并提供详细信息。关注我们以获取 Azure HDInsight 社区的更多更新。

在 AKS 上使用 HDInsight 的 Trino 提供了 CLI 客户端、JDBC 驱动程序等工具来访问群集,该群集与 Microsoft Entra ID 集成,以简化用户的身份验证。 支持的工具或客户端需要使用Microsoft Entra ID OAuth2 标准进行身份验证,Microsoft Entra ID 颁发的 JWT 访问令牌必须提供给群集终结点。

本部分介绍工具支持的常见身份验证流。

身份验证流概述

支持以下身份验证流。

注意

名称是保留的,应用于指定某个特定的流程。

名字 必需参数 可选参数 描述
AzureDefault 没有 租户 ID、客户端 ID 用于在交互式环境中开发期间使用。 在大多数情况下,用户使用浏览器登录。 请参阅 的详细信息
AzureInteractive 没有 租户 ID、客户端 ID 用户使用浏览器进行身份验证。 请参阅 详细信息
AzureDeviceCode 没有 租户 ID、客户端 ID 适用于浏览器不可用的环境。 提供给用户的设备代码需要使用代码和浏览器在另一台设备上进行登录操作。
AzureClientSecret 租户 ID、客户端 ID、客户端密码 没有 使用服务主体标识,需要凭据,非交互式。
AzureClientCertificate 租户 ID、客户端 ID、证书文件路径 机密/密码。 如果提供,则用于解密 PFX 证书。 否则,需要 PEM 格式。 服务主体标识正在使用,且需要证书,并且是非交互式的。 请参阅 详细信息
AzureManagedIdentity 租户 ID、客户端 ID 没有 使用环境的托管标识,例如,在 Azure VM 或 AKS Pod 上。

AzureDefault 流程

如果未指定 auth 参数,则此流是 Trino CLI 和 JDBC 的默认模式。 在此模式下,客户端工具会尝试使用多种方法获取令牌,直到获取令牌。 在以下串行执行中,如果未找到令牌或身份验证失败,将继续执行下一个方法。

DefaultAzureCredential ->AzureInteractive -> AzureDeviceCode (如果没有浏览器)

AzureInteractive 流

在提供 auth=AzureInteractive 或作为 AzureDefault 连续执行的一部分时使用该模式。

注意

如果浏览器可用,它将显示身份验证提示并等待用户操作。 如果浏览器不可用,它将切换到 AzureDeviceCode 流。

Azure客户端证书流程

允许使用 PEM/PFX(PKCS #12) 文件进行身份验证服务主体。 如果提供了密钥/密码,则需要文件为 PFX(PKCS #12)格式,并使用密钥来解密文件。 如果未提供机密,则预期 PEM 格式化文件包含私钥和公钥。

环境变量

所有必需的参数都可以直接在参数或连接字符串中提供给 CLI/JDBC。 在环境变量中查找某些可选参数(如果未提供)。

注意

如果遇到身份验证问题,请确保检查环境变量。 它们可能会影响流。

下表描述了可在环境变量中为不同的身份验证流配置的参数。
只有在命令行或连接字符串中未提供相应的参数时才使用它们。

变量名称 适用的身份验证流 描述
AZURE_TENANT_ID (Azure租户ID) 全部 Microsoft Entra 租户 ID。
AZURE_CLIENT_ID AzureClientSecret、AzureClientCertificate、AzureManagedIdentity 应用程序/主客户端 ID。
AZURE_CLIENT_SECRET AzureClientSecret、AzureClientCertificate 服务主体或证书文件的机密或密码。
AZURE_CLIENT_CERTIFICATE_PATH AzureClientCertificate 证书文件的路径。