注意
此信息适用于 Databricks CLI 版本 0.205 及更高版本。 Databricks CLI 目前处于公共预览版阶段。
Databricks CLI 的使用须遵守 Databricks 许可和 Databricks 隐私声明,包括任何数据使用规定。
本文介绍如何在 Azure Databricks CLI 与 Azure Databricks 帐户和工作区之间设置身份验证。 它假定已安装 Azure Databricks CLI。 请参阅安装或更新 Databricks CLI。
在运行 Azure Databricks CLI 命令之前,必须为计划使用的帐户或工作区配置 身份验证 。 所需的设置取决于是要运行 工作区级 命令、 帐户级 命令还是同时运行两者。
若要查看可用的 CLI 命令组,请运行 databricks -h
。 有关相应的 REST API作的列表,请参阅 Databricks REST API。
OAuth 计算机到计算机 (M2M) 身份验证
使用 OAuth 进行计算机到计算机(M2M)身份验证允许服务、脚本或应用程序在没有交互式用户登录的情况下访问 Databricks 资源。 M2M 身份验证使用服务主体和 OAuth 客户端凭据流来请求和管理令牌,而不是依赖于个人访问令牌(PAT)或用户凭据。
配置和使用 OAuth M2M 身份验证:
完成 OAuth M2M 身份验证设置步骤。 请参阅 使用 OAuth 授权服务主体访问 Azure Databricks。
在文件中使用以下字段
.databrickscfg
创建 Azure Databricks 配置文件。对于帐户级命令
[<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>
按 Tab 或--profile
-p
显示可用配置文件的列表。
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>
按 Tab 或--profile
-p
显示可用配置文件的列表。
Azure 托管标识身份验证
Azure 托管标识身份验证使用 Azure 资源的托管标识(以前称为托管服务标识 [MSI])进行身份验证。 请参阅什么是 Azure 资源托管标识?。 另请参阅《Azure 托管标识身份验证》。
若要创建 Azure 用户分配的托管标识,请执行以下操作:
创建或确定 Azure VM 并在其上安装 Databricks CLI,然后将托管标识分配给你的 Azure VM 和你的目标 Azure Databricks 帐户、工作区或两者。 请参阅为 Azure Databricks 自动化设置和使用 Azure 托管标识身份验证。
在 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 = true
对于工作区级别命令,如果尚未将目标标识添加到工作区,请指定
azure_workspace_resource_id
和 Azure 资源 ID,而不是指定host
和工作区 URL。 在这种情况下,目标标识必须至少对 Azure 资源具有“参与者”或“所有者”权限。在 Azure VM 上,使用 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 创建和管理服务主体,请参阅 服务主体。 另请参阅 MS 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>
对于工作区级别命令,如果尚未将目标 Microsoft Entra ID 服务主体添加到工作区,请指定
azure_workspace_resource_id
和 Azure 资源 ID,而不是指定host
和工作区 URL。 在这种情况下,目标 Microsoft Entra ID 服务主体必须至少对 Azure 资源具有“参与者”或“所有者”权限。使用 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 对登录实体进行身份验证。 另请参阅 Azure CLI 身份验证。
若要配置 Azure CLI 身份验证,必须执行以下操作:
在本地安装 Azure CLI。
运行
az login
命令,使用 Azure CLI 登录到 Azure Databricks。 请参阅使用 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
如果未设置,并且捆绑环境引用配置文件名称(如dev
→配置文件DEV
),CLI 将使用该配置文件中的.databrickscfg
凭据。 -
DATABRICKS_TOKEN
如果未设置,并且捆绑环境指定一个host
值,CLI 将使用匹配.databrickscfg
项搜索配置文件host
并使用其token
配置文件。
个人访问令牌身份验证(已弃用)
重要
使用 Azure Databricks 用户名和密码的基本身份验证已于 2024 年 7 月 10 日结束。 若要使用 Azure Databricks 帐户进行身份验证,请改用以下身份验证方法之一:
- OAuth 计算机到计算机 (M2M) 身份验证
- OAuth 用户到计算机 (U2M) 身份验证
- Azure 托管标识身份验证
- Microsoft Entra ID 服务主体身份验证
- Azure CLI 身份验证
Azure Databricks 个人访问令牌身份验证使用 Azure Databricks 个人访问令牌对目标 Azure Databricks 实体(例如 Azure Databricks 用户帐户)进行身份验证。 请参阅 Azure Databricks 个人访问令牌身份验证。
要创建个人访问令牌,请遵循适用于工作区用户的 Azure Databricks 个人访问令牌中的步骤。