使用 Azure CLI 进行身份验证

Azure CLI 身份验证使用 Azure CLI 对登录用户或 Microsoft Entra ID 服务主体进行身份验证

注意

Azure Databricks 托管服务主体直接在 Azure Databricks 中进行管理。 Microsoft Entra ID 托管服务主体在 Microsoft Entra ID 中进行管理,这需要其他权限。 Databricks 建议在大多数情况下,对 Azure Databricks 托管服务主体使用 OAuth 机器对机器 (M2M) 身份验证,而非对 Microsoft Entra ID 服务主体使用 Azure CLI 身份验证。 但是,Databricks 建议在必须同时向 Azure Databricks 和其他 Azure 资源进行身份验证的情况下,对 Microsoft Entra ID 服务主体进行 Azure CLI 身份验证。

若要将 OAuth M2M 身份验证用于 Azure Databricks 托管服务主体,而不是通过 Microsoft Entra ID 服务主体进行 Azure CLI 身份验证,请跳过此页面,并参阅 使用 OAuth 授权服务主体访问 Azure Databricks

若要使用 Azure Databricks 进行配置,必须执行以下操作:

  1. 在本地安装 Azure CLI 进行身份验证

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

  3. 设置以下关联的环境变量、 .databrickscfg 字段、Terraform 字段或 Config 字段:

    • Azure Databricks 主机。
      • 对于帐户操作,请指定 https://accounts.databricks.azure.cn
      • 对于工作区操作,请指定每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn
    • 对于帐户操作,请指定 Azure Databricks 帐户 ID

若要使用 Azure Databricks 执行 Azure CLI 身份验证,请根据相关的工具或 SDK 在代码中集成以下内容:

环境

若要对工具或 SDK 的特定 Azure Databricks 身份验证类型使用环境变量,请参阅 授权访问 Azure Databricks 资源 或工具或 SDK 的文档。 另请参阅 环境变量和字段,了解统一身份验证身份验证方法优先级

对于帐户级操作,请设置以下环境变量:

  • DATABRICKS_HOST,将其设置为你的 Azure Databricks 账户控制台 URL,即 https://accounts.databricks.azure.cn
  • DATABRICKS_ACCOUNT_ID

对于工作区级操作,请设置以下环境变量:

  • DATABRICKS_HOST,设置为 Azure Databricks 每个工作区的 URL 的值,例如 https://adb-1234567890123456.7.databricks.azure.cn

个人资料

在你的 .databrickscfg 文件中,使用以下字段创建或识别 Azure Databricks 配置文件。 如果您创建了该配置文件,请将占位符替换为相应的值。 若要将配置文件与工具或 SDK 配合使用,请参阅 授权访问 Azure Databricks 资源 或工具或 SDK 的文档。 另请参阅 环境变量和字段,了解统一身份验证身份验证方法优先级

对于帐户级操作,请在 .databrickscfg 文件中设置以下值。 在本例中,Azure Databricks 帐户控制台 URL 为 https://accounts.databricks.azure.cn

[<some-unique-configuration-profile-name>]
host       = <account-console-url>
account_id = <account-id>

对于工作区级操作,请在 .databrickscfg 文件中设置以下值。 在本例中,主机是 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn

[<some-unique-configuration-profile-name>]
host = <workspace-url>

CLI

对于 Databricks CLI,请执行以下操作之一:

  • 设置“ 环境 ”选项卡上指定的环境变量。
  • 按照Profile选项卡中的说明,在您的.databrickscfg文件中设置相应的值。

环境变量始终优先于 .databrickscfg 文件中的值。

另请参阅 Azure CLI 身份验证

连接

注意

以下 Databricks Connect 版本支持 Azure CLI 身份验证:

  • 对于 Python,Databricks Runtime 13.1 及以上版本适用 Databricks Connect。
  • 对于 Scala,Databricks Connect 适用于 Databricks Runtime 13.3 LTS 及更高版本。

对于 Databricks Connect,您可以选择以下操作之一:

  • 使用配置文件:.databrickscfg”选项卡上所述,在文件中设置工作区级别值。此外,将cluster_id工作区实例 URL 设置为工作区实例 URL。
  • 使用环境变量: 设置与“ 环境 ”选项卡上显示的相同值。此外,将 DATABRICKS_CLUSTER_ID 工作区实例 URL 设置为工作区实例 URL。

.databrickscfg值优先于环境变量。

若要使用这些设置初始化 Databricks Connect,请参阅 Databricks Connect 的计算配置

VS Code

对于Databricks IDE扩展,请执行以下操作:

  1. 在 配置 窗格中,单击 配置 Databricks。

  2. 命令面板 中,在 Databricks Host 中输入您的 工作区专属 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn,然后按 Enter

  3. 选择“Azure CLI”。

有关详细信息,请参阅设置 Azure CLI 身份验证

Terraform

对于帐户级操作,对于默认身份验证

provider "databricks" {
  alias = "accounts"
}

对于直接配置(将 retrieve 占位符替换为您自己的实现,以便从控制台或其他配置存储(例如 HashiCorp Vault)中检索这些值。另请参阅 Vault Provider)。 在本例中,Azure Databricks 帐户控制台 URL 为 https://accounts.databricks.azure.cn

provider "databricks" {
  alias      = "accounts"
  host       = <retrieve-account-console-url>
  account_id = <retrieve-account-id>
}

对于工作区级操作,对于默认身份验证

provider "databricks" {
  alias = "workspace"
}

对于直接配置(将 retrieve 占位符替换为你自己的实现,以便从控制台或其他配置存储(例如 HashiCorp Vault)中检索这些值。另请参阅 Vault Provider)。 在本例中,主机是 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn

provider "databricks" {
  alias = "workspace"
  host  = <retrieve-workspace-url>
}

有关使用 Databricks Terraform 提供程序进行身份验证的详细信息,请参阅身份验证

Python

对于帐户级操作,对于默认身份验证

from databricks.sdk import AccountClient

a = AccountClient()
# ...

对于直接配置(将 retrieve 占位符替换为您自己的实现,以便从控制台或其他配置存储(例如 Azure KeyVault)中检索值)。 在本例中,Azure Databricks 帐户控制台 URL 为 https://accounts.databricks.azure.cn

from databricks.sdk import AccountClient

a = AccountClient(
  host       = retrieve_account_console_url(),
  account_id = retrieve_account_id()
)
# ...

对于工作区级操作,对于默认身份验证

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

对于直接配置(将 retrieve 占位符替换为你自己的实现,以便从控制台或其他配置存储(如 Azure KeyVault)获取这些值)。 在本例中,主机是 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = retrieve_workspace_url())
# ...

有关使用 Python 和实现 Databricks 统一身份验证的 Databricks 工具和 SDK 进行身份验证的详细信息,请参阅:

Java

对于帐户级操作,对于默认身份验证

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

对于直接配置(将 retrieve 占位符替换为你自己的实现,以便从控制台或其他配置存储(例如 Azure KeyVault)中获取这些值)。 在本例中,Azure Databricks 帐户控制台 URL 为 https://accounts.databricks.azure.cn

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId())
AccountClient a = new AccountClient(cfg);
// ...

对于工作区级操作,对于默认身份验证

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

对于直接配置(将 retrieve 占位符替换为您自己的实现,以便从控制台或其他配置存储(例如 Azure KeyVault)中获取这些值)。 在本例中,主机是 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

有关使用 Java 和实现 Databricks 统一身份验证的 Databricks 工具和 SDK 进行身份验证的详细信息,请参阅:

Go

对于帐户级操作,对于默认身份验证

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

对于直接配置(将 retrieve 占位符替换为你自己的实现,以便从控制台或其他配置存储(如 Azure KeyVault)中获取这些值)。 在本例中,Azure Databricks 帐户控制台 URL 为 https://accounts.databricks.azure.cn

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

对于工作区级操作,对于默认身份验证

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

对于直接配置(将 retrieve 占位符替换为您自己的实现,以便从控制台或其他配置存储(例如 Azure KeyVault)中获取这些值)。 在本例中,主机是 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

有关借助使用 Go 并实现 Databricks 客户端统一身份验证的 Databricks 工具和 SDK 进行身份验证的详细信息,请参阅使用 Azure Databricks 帐户或工作区对 Databricks SDK for Go 进行身份验证