다음을 통해 공유

Databricks CLI 的身份验证

注意

此信息适用于 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 身份验证:

  1. 完成 OAuth M2M 身份验证设置步骤。 请参阅 使用 OAuth 授权服务主体访问 Azure Databricks

  2. 在文件中使用以下字段.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 用户分配的托管标识,请执行以下操作:

  1. 创建或确定 Azure VM 并在其上安装 Databricks CLI,然后将托管标识分配给你的 Azure VM 和你的目标 Azure Databricks 帐户、工作区或两者。 请参阅为 Azure Databricks 自动化设置和使用 Azure 托管标识身份验证

  2. 在 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 资源具有“参与者”或“所有者”权限。

  3. 在 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 身份验证。 还必须执行以下操作:

  1. 文件中使用以下字段创建或标识 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 资源具有“参与者”或“所有者”权限。

  2. 使用 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 身份验证,必须执行以下操作:

  1. 在本地安装 Azure CLI

  2. 运行 az login 命令,使用 Azure CLI 登录到 Azure Databricks。 请参阅使用 Azure Databricks 用户帐户登录 Azure CLI

  3. 文件中使用以下字段创建或标识 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>
    
  4. 使用 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 工作区或帐户进行身份验证时,它会按以下顺序查找所需的设置:

  1. 捆绑设置文件,用于从捆绑工作目录运行的命令。 捆绑设置文件不能直接包含凭据值。

  2. 环境变量,如本文中列出的,以及 用于统一客户端身份验证的环境变量和字段

  3. 文件中的.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 帐户进行身份验证,请改用以下身份验证方法之一:

Azure Databricks 个人访问令牌身份验证使用 Azure Databricks 个人访问令牌对目标 Azure Databricks 实体(例如 Azure Databricks 用户帐户)进行身份验证。 请参阅 Azure Databricks 个人访问令牌身份验证

要创建个人访问令牌,请遵循适用于工作区用户的 Azure Databricks 个人访问令牌中的步骤。