注意
此信息适用于 Databricks CLI 版本 0.205 及更高版本。 Databricks CLI 处于公共预览阶段。
Databricks CLI 使用受 Databricks 许可证和 Databricks 隐私声明的约束,包括任何使用情况数据预配。
本文介绍如何在 Databricks CLI 与 Azure Databricks 帐户和工作区之间设置身份验证。 它假定你已安装 Databricks CLI。 请参阅安装或更新 Databricks CLI。
在运行 Databricks CLI 命令之前,必须为计划使用的帐户或工作区配置 身份验证 。 所需的设置取决于是要运行 工作区级 命令、 帐户级 命令还是同时运行两者。
若要查看可用的 CLI 命令组,请运行 databricks -h。 有关相关的 REST API 操作列表,请参阅 Databricks REST API。
有关使用 Microsoft Entra 通过 Azure DevOps 进行 Databricks 身份验证的具体信息,请参阅 Authenticate with Azure DevOps on Azure Databricks。
OAuth 计算机到计算机 (M2M) 身份验证
使用 OAuth 进行计算机到计算机(M2M)身份验证允许服务、脚本或应用程序在没有交互式用户登录的情况下访问 Databricks 资源。 M2M 身份验证使用服务主体和 OAuth 客户端凭据流来请求和管理令牌,而不是依赖于个人访问令牌(PAT)或用户凭据。
配置和使用 OAuth M2M 身份验证:
完成 OAuth M2M 身份验证设置步骤。 请参阅 使用 OAuth 授权服务主体访问 Azure Databricks。
在 文件中使用以下字段创建 Azure Databricks
.databrickscfg。对于帐户级命令
[<some-unique-configuration-profile-name>] host = <account-console-url> account_id = <account-id> client_id = <service-principal-client-id> client_secret = <service-principal-oauth-secret>对于工作区级命令
[<some-unique-configuration-profile-name>] host = <workspace-url> client_id = <service-principal-client-id> client_secret = <service-principal-oauth-secret>
若要使用配置文件,请通过 CLI 命令中的--profile或-p标志传递它。 例如:
databricks account groups list -p <profile-name>
在--profile或-p之后按 Tab 键,以显示可用配置文件的列表。
OAuth 用户到计算机 (U2M) 身份验证
使用 OAuth 用户到计算机(U2M)身份验证,以交互方式登录,CLI 代表你管理生存期较短的令牌。 OAuth 令牌会在一小时内失效,这样如果令牌意外暴露,风险就会降低。 请参阅 通过 OAuth 授权用户访问 Azure Databricks。
若要登录,请执行以下作法:
对于帐户级命令
databricks auth login --host <account-console-url> --account-id <account-id>
对于工作区级命令
databricks auth login --host <workspace-url>
CLI 指导你完成基于浏览器的登录流。 完成后,CLI 会将凭据保存为 配置文件。 可以接受建议的配置文件名称或输入自己的。
若要使用配置文件,请通过 CLI 命令中的--profile或-p标志传递它。 例如:
databricks clusters list -p <profile-name>
在--profile或-p之后按 Tab 键,以显示可用配置文件的列表。
Azure托管身份标识验证
Azure托管标识身份验证使用托管标识用于Azure资源的身份验证(以前是使用托管服务标识(MSI)进行身份验证)。 请参阅 Azure 资源的托管标识是什么?。 另请参阅 使用 Azure 托管标识进行身份验证。
若要创建Azure用户分配的托管标识,请执行以下操作:
创建或标识Azure VM 并在其上安装 Databricks CLI,然后将托管标识分配给Azure VM 和目标Azure Databricks帐户、工作区或两者。 请参阅 将 Azure 托管标识与 Azure Databricks 一起使用。
在Azure VM 上,使用 文件中的以下字段创建或标识 Azure Databricks
.databrickscfg。 如果创建配置文件,请将占位符替换为相应值。对于帐户级别命令,请在
.databrickscfg文件中设置以下值:[<some-unique-configuration-profile-name>] host = <account-console-url> account_id = <account-id> azure_client_id = <azure-managed-identity-application-id> azure_use_msi = true对于工作区级别命令,请在
.databrickscfg文件中设置以下值:[<some-unique-configuration-profile-name>] host = <workspace-url> azure_client_id = <azure-managed-identity-application-id> azure_use_msi = trueDatabricks 建议使用
host并显式将标识分配给工作区。 或者,将azure_workspace_resource_id与Azure资源 ID 一起使用。 此方法需要对Azure资源具有参与者或所有者权限,或者具有特定Azure Databricks权限的自定义角色。在 Azure 虚拟机上,使用 Databricks CLI 的
--profile或-p选项,紧随其后的是配置文件的名称,以设置 Databricks 所使用的配置文件,例如databricks account groups list -p <configuration-profile-name>或databricks clusters list -p <configuration-profile-name>。提示
可以在
Tab或--profile之后按-p以显示可供选择的现有可用配置文件的列表,而不是手动输入配置文件名称。
Microsoft Entra ID 服务主体身份验证
Microsoft Entra ID服务主体身份验证使用Microsoft Entra ID服务主体的凭据进行身份验证。 若要为Azure Databricks创建和管理服务主体,请参阅 Service principals。 另请参阅通过Microsoft Entra服务主体进行身份验证。
若要配置和使用 Microsoft Entra ID 服务主体身份验证,必须在本地安装 Azure CLI 进行身份验证。 还必须执行以下操作:
使用 文件中的以下字段创建或标识 Azure Databricks
.databrickscfg。 如果创建配置文件,请将占位符替换为相应值。对于帐户级别命令,请在
.databrickscfg文件中设置以下值:[<some-unique-configuration-profile-name>] host = <account-console-url> account_id = <account-id> azure_tenant_id = <azure-service-principal-tenant-id> azure_client_id = <azure-service-principal-application-id> azure_client_secret = <azure-service-principal-client-secret>对于工作区级别命令,请在
.databrickscfg文件中设置以下值:[<some-unique-configuration-profile-name>] host = <workspace-url> azure_tenant_id = <azure-service-principal-tenant-id> azure_client_id = <azure-service-principal-application-id> azure_client_secret = <azure-service-principal-client-secret>Databricks 建议使用
host,并将 Microsoft Entra ID 服务主体显式分配给工作区。 或者,将azure_workspace_resource_id与Azure资源 ID 一起使用。 此方法需要对Azure资源具有参与者或所有者权限,或者具有特定Azure Databricks权限的自定义角色。使用 Databricks CLI 的
--profile或-p选项后跟配置文件的名称,作为 Databricks CLI 命令调用的一部分,例如databricks account groups list -p <configuration-profile-name>或databricks clusters list -p <configuration-profile-name>。提示
可以在
Tab或--profile之后按-p以显示可供选择的现有可用配置文件的列表,而不是手动输入配置文件名称。
Azure CLI 身份验证
若要配置Azure CLI身份验证,必须执行以下操作:
在本地安装 Azure CLI。
运行
az login命令,使用Azure CLI登录到Azure Databricks。 请参阅使用 Azure CLI 登录。使用 文件中的以下字段创建或标识 Azure Databricks
.databrickscfg。 如果创建配置文件,请将占位符替换为相应值。对于帐户级别命令,请在
.databrickscfg文件中设置以下值:[<some-unique-configuration-profile-name>] host = <account-console-url> account_id = <account-id>对于工作区级别命令,请在
.databrickscfg文件中设置以下值:[<some-unique-configuration-profile-name>] host = <workspace-url>使用 Databricks CLI 的
--profile或-p选项后跟配置文件的名称,作为 Databricks CLI 命令调用的一部分,例如databricks account groups list -p <configuration-profile-name>或databricks clusters list -p <configuration-profile-name>。提示
可以在
Tab或--profile之后按-p以显示可供选择的现有可用配置文件的列表,而不是手动输入配置文件名称。
身份验证评估顺序
每当 Databricks CLI 向Azure Databricks工作区或帐户进行身份验证时,它会按以下顺序查找所需的设置:
- 捆绑设置文件,用于从捆绑工作目录运行的命令。 捆绑设置文件不能直接包含凭据值。
- 环境变量,如本文中列出的,以及 用于统一身份验证的环境变量和字段。
- 文件中的配置文件配置文件
.databrickscfg。
CLI 找到所需的设置后,它会停止搜索其他位置。
示例:
-
DATABRICKS_TOKEN如果设置了环境变量,CLI 会使用它,即使.databrickscfg中存在多个令牌。 - 如果未设置
DATABRICKS_TOKEN,并且 bundle 环境引用配置文件名称(例如dev→配置文件DEV),CLI 将使用.databrickscfg配置文件中的凭据。 -
DATABRICKS_TOKEN如果未设置,而捆绑环境指定了host值,CLI将在.databrickscfg中搜索匹配host的配置文件,并使用其token。
个人访问令牌身份验证(旧版)
重要
如果可能,Azure Databricks建议使用 OAuth 而不是 PAT 进行身份验证,因为 OAuth 提供更强的安全性。 请考虑以下身份验证方法:
- OAuth 机器对机器 (M2M) 身份验证
- OAuth 用户到计算机 (U2M) 身份验证
- Azure托管身份身份验证
- Microsoft Entra ID服务主体身份验证
- Azure CLI身份验证
Azure Databricks个人访问令牌身份验证使用Azure Databricks个人访问令牌对目标Azure Databricks实体(例如Azure Databricks用户帐户)进行身份验证。 请参阅 使用 Azure Databricks 个人访问令牌(旧版)认证。
若要创建个人访问令牌,请按照 为工作区用户创建个人访问令牌中的步骤作。