使用 Azure Databricks 个人访问令牌进行身份验证

若要对 Databricks REST API 进行身份验证和访问,可使用 Azure Databricks 个人访问令牌或 Azure Active Directory (Azure AD) 令牌。

本文介绍如何使用 Azure Databricks 个人访问令牌。 有关 Azure AD 令牌,请参阅使用 Azure Active Directory 令牌进行身份验证

重要

令牌替代身份验证流中的密码,并且应像密码一样进行保护。 为了保护令牌,Databricks 建议将令牌存储到:

要求

2018 年 1 月之后启动的所有 Azure Databricks 帐户默认启用基于令牌的身份验证。 如果禁用基于令牌的身份验证,则管理员必须先启用该身份验证,然后才能执行 管理个人访问令牌中所述的任务。

生成个人访问令牌

本部分介绍如何在 Azure Databricks UI 中生成个人访问令牌。 还可以使用 令牌 API 2.0生成和吊销令牌。

每个用户的个人访问令牌数限制为每个工作区 600 个。

  1. 单击 Azure Databricks 工作区左下角的 "用户设置图标设置

  2. 单击“用户设置”。

  3. 转到“访问令牌”选项卡。

  4. 单击“生成新令牌”按钮。

  5. 选择性地输入说明(注释)和有效期。

    Generate_Token

  6. 单击“生成”按钮。

  7. 复制生成的令牌,并将其存储在安全的位置。

撤销个人访问令牌

本部分介绍如何使用 Azure Databricks UI 撤销个人访问令牌。 你还可以使用 令牌 API 2.0生成和吊销访问令牌。

  1. 单击 Azure Databricks 工作区左下角的 "用户设置图标设置
  2. 单击“用户设置”。
  3. 转到“访问令牌”选项卡。
  4. 针对要撤销的令牌单击 x。
  5. 在“撤销令牌”对话框中,单击“撤销令牌”按钮。

使用个人访问令牌访问 Databricks REST API

可以将个人访问令牌存储在文件中 .netrc ,并在其中使用它, curl 或将其传递给 Authorization: Bearer 标头。

将令牌存储在 .netrc 文件中,并将其用于 curl

使用login 和属性创建 netrc 文件 password

machine <databricks-instance>
login token
password <token-value>

其中:

  • <databricks-instance> 是 Azure Databricks 部署的 <databricks-instance> 的实例 ID 部分。 例如,如果工作区 URL 为, https://adb-1234567890123456.7.azuredatabricks.net<databricks-instance>adb-1234567890123456.7.azuredatabricks.net
  • token 文本字符串 token
  • <token-value> 标记的值,例如 dapi1234567890ab1cde2f3ab456c7d89efa

结果类似以下形式:

machine adb-1234567890123456.7.azuredatabricks.net
login token
password dapi1234567890ab1cde2f3ab456c7d89efa

对于多个计算机/标记条目,请在每个条目中添加一行, machineloginpassword 每个计算机/令牌匹配对在同一行上。 结果类似以下形式:

machine adb-1234567890123456.7.azuredatabricks.net login token password dapi1234567890ab1cde2f3ab456c7d89efa
machine adb-2345678901234567.8.azuredatabricks.net login token password dapi2345678901cd2efa3b4cd567e8f90abc
machine adb-3456789012345678.9.azuredatabricks.net login token password dapi3456789012de3fab4c5de678f9a01bcd

此示例 .netrc 使用 (调用文件 --netrc ,还可以 -n 在命令中使用) curl 。 它使用指定的工作区 URL machine 在文件中查找匹配项 .netrc

curl --netrc -X GET https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list

将令牌传递到 Bearer 身份验证

可使用 Bearer 身份验证将令牌包含在标头中, 也可将此方法用于 curl 或你构建的任何客户端。 如果是后者,请参阅将大文件上传到 DBFS

此示例使用 Bearer 身份验证来列出指定工作区中的所有可用群集。

export DATABRICKS_TOKEN=dapi1234567890ab1cde2f3ab456c7d89efa

curl -X GET --header "Authorization: Bearer $DATABRICKS_TOKEN" \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list