Azure Databricks个人访问令牌(PAT)允许你在工作区级别对资源和 API 进行身份验证。 可以将它们存储在环境变量或Azure Databricks 配置配置文件中。 每个 PAT 仅对一个工作区有效,用户可以为每个工作区创建最多 600 个 PAT。 Azure Databricks 自动撤销在 90 天内未使用的 PAT。
重要
如果可能,Databricks 建议使用 OAuth 而不是 PAT 进行身份验证,因为 OAuth 提供更强的安全性。 若要了解如何通过 Databricks 用户使用 OAuth 进行身份验证,请参阅 使用 OAuth 授权用户访问 Azure Databricks。
您无法使用个人访问令牌自动执行 Azure Databricks 帐户级别功能。 请改用Azure Databricks帐户管理员的Microsoft Entra ID令牌。 Azure Databricks帐户管理员可以是用户或服务主体。 有关详细信息,请参阅:
为工作区用户创建个人访问令牌
若要为Azure Databricks工作区用户创建个人访问令牌,请执行以下操作:
- 在Azure Databricks工作区中,单击顶部栏中的用户名,然后选择 Settings。
- 单击“开发人员”。
- 在“访问令牌”旁边,单击“管理”。
- 单击“生成新令牌”。
- 输入有助于将来标识此令牌的注释。
- 设置令牌的生存期(以天为单位)。 请参阅 设置新个人访问令牌的最大生存期。
- 若要限制令牌的权限,请选择令牌类型并添加 API 范围。 请参阅 作用域内个人访问令牌。
- 单击“生成”按钮。
- 将显示的令牌复制到安全位置,然后单击“ 完成”。 安全地保存令牌,不共享该令牌。 如果丢失该令牌,则必须创建新的令牌。
如果无法创建或使用令牌,则工作区管理员可能已禁用令牌或未授予你权限。 请与工作区管理员联系,或参阅以下内容:
作用域内的个人访问令牌
限定作用域的个人访问令牌将令牌的权限限制为特定的 API 操作。 无需授予完全工作区访问权限,而是分配一个或多个 API 范围,例如 sql, unity-catalog或 scim限制令牌可以调用的 REST API 操作。
警告
具有authentication作用域的令牌可以生成具备任意作用域的新令牌。 仅将此范围授予需要管理其他令牌的令牌。
若要在工作区 UI 中创建限定范围的令牌,请在生成新令牌时选择令牌类型并添加 API 范围。 如果未分配任何范围,令牌将保留创建标识的完整权限。
有关范围及其关联的 API 操作的完整列表,请参阅 API 范围。
为服务主体创建个人访问令牌
服务主体可以自行创建个人访问令牌。
运行以下命令以生成访问令牌:
databricks tokens create \ --lifetime-seconds <lifetime-seconds> \ -p <profile-name>请替换以下值:
-
<lifetime-seconds>:令牌生存期(以秒为单位),例如 86400(1 天)。 默认为工作区最大值(通常为 730 天)。 -
<profile-name>:包含身份验证信息的配置文件。 默认为DEFAULT。
-
从响应中复制
token_value,这就是你的服务主体的访问令牌。 安全地保存令牌,不共享该令牌。 如果丢失该令牌,则必须创建新的令牌。
如果无法创建或使用令牌,则工作区管理员可能已禁用令牌或未授予你权限。 请与工作区管理员联系,或参阅以下内容:
执行个人访问令牌身份验证
若要配置Azure Databricks个人访问令牌身份验证,请设置以下关联的环境变量、.databrickscfg 字段、Terraform 字段或 Config 字段:
- Azure Databricks主机,指定为目标 Azure Databricks per-workspace URL,例如
https://adb-1234567890123456.7.azuredatabricks.net。 - Azure Databricks用户帐户的个人访问令牌。
若要执行Azure Databricks个人访问令牌身份验证,请根据参与的工具或 SDK 在代码中集成以下内容:
环境
若要在工具或 SDK 中使用特定的 Azure Databricks 身份验证-类型的环境变量,请参阅 授权访问Azure Databricks资源或工具或 SDK 的文档。 另请参阅 环境变量和字段,了解统一身份验证 和 身份验证方法优先级。
设置以下环境变量:
-
DATABRICKS_HOST,设置为 Azure Databricks per-workspace URL,例如https://adb-1234567890123456.7.azuredatabricks.net。 -
DATABRICKS_TOKEN,设置为令牌字符串。
简档
使用 文件中的以下字段创建或标识 Azure Databricks .databrickscfg。 如果您已创建配置文件,请将占位符替换为适当的值。 若要将配置文件与工具或 SDK 配合使用,请参阅 授权访问 Azure Databricks 资源或该工具或 SDK 的文档。 另请参阅 环境变量和字段,了解统一身份验证 和 身份验证方法优先级。
在 .databrickscfg 文件中设置以下值。 在这种情况下,主机是 Azure Databricks per-workspace URL,例如 https://adb-1234567890123456.7.azuredatabricks.net:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
token = <token>
可以使用 Databricks CLI 来设置这些值,而不是手动设置这些值:
注意
以下过程使用 Databricks CLI 创建名为 的 Azure Databricks DEFAULT。 如果已具有 DEFAULT 配置文件,此过程将覆盖现有的 DEFAULT 配置文件。
要检查是否已有 DEFAULT 配置文件,并查看此配置文件的设置(如果存在),请使用 Databricks CLI 运行命令 databricks auth env --profile DEFAULT。
要使用除 DEFAULT 以外的名称创建配置文件,请将以下 DEFAULT 命令中 --profile DEFAULT 的 databricks configure 部分替换为其他配置文件名称。
使用 Databricks CLI创建Azure Databricks 配置配置文件名为
DEFAULT,该配置文件使用Azure Databricks个人访问令牌身份验证。 为此,请运行以下命令:databricks configure --profile DEFAULT对于提示Databricks Host,请输入Azure Databricks per-workspace URL,例如
https://adb-1234567890123456.7.azuredatabricks.net。对于提示个人访问令牌,请输入Azure Databricks工作区的个人访问令牌。
CLI
对于 Databricks CLI,请运行 databricks configure 命令。 在出现提示时,输入以下设置:
- Azure Databricks主机,指定为目标 Azure Databricks per-workspace URL,例如
https://adb-1234567890123456.7.azuredatabricks.net。 - Azure Databricks用户帐户的个人访问令牌。
有关详细信息,请参阅个人访问令牌身份验证(旧版)。
连接
注意
以下 Databricks Connect 版本支持Azure Databricks个人访问令牌身份验证:
- 对于 Python,Databricks Connect for Databricks Runtime 13.3 LTS 及更高版本。
- 对于 Scala,为 Databricks Connect for Databricks Runtime 13.3 LTS 及更高版本。
对于 Databricks Connect,请使用 Databricks CLI 设置您的 .databrickscfg 文件中的值,以用于在 Profile 节中指定的 Azure Databricks 工作区级操作。
以下过程创建名为 DEFAULT 的Azure Databricks配置文件,该配置文件覆盖任何现有的 DEFAULT 配置文件。 若要检查 DEFAULT 配置文件是否存在,请运行 databricks auth env --profile DEFAULT。 如果已经存在,请使用其他配置文件名称。
运行以下命令,创建一个名为
DEFAULT的Azure Databricks配置文件,该配置文件使用个人访问令牌身份验证。databricks configure \ --configure-cluster \ --profile DEFAULT对于提示Databricks Host,请输入Azure Databricks per-workspace URL,例如
https://adb-1234567890123456.7.azuredatabricks.net。对于提示 个人访问令牌,请输入工作区的个人访问令牌。
在可用群集列表中,选择您工作区中的目标 Azure Databricks 群集。 可以键入群集显示名称的任何部分来筛选可用群集的列表。
使用 Azure Databricks REST API 颁发个人访问令牌
Azure Databricks提供 REST 终结点/api/2.0/token/create来颁发 PAT。 请参阅 “创建用户令牌 ”了解 API 详细信息。
在以下示例中,设置以下值:
-
<databricks-instance>:Databricks 工作区 URL。 例如,dbc-abcd1234-5678.cloud.databricks.com。 -
<your-existing-access-token>:有权创建新令牌的现有有效 PAT(字符串)。 -
<lifetime-seconds>:令牌的生存期(以秒为单位)。 -
<scopes>:要分配给令牌的范围的列表。 请参阅 作用域内个人访问令牌。
curl -X POST https://<databricks-instance>/api/2.0/token/create \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
"lifetime_seconds": <lifetime-seconds>,
"scopes": [
"sql",
"authentication"
]
}'
如果成功,则会导致响应有效负载类似于:
{
"token_value": "<your-newly-issued-pat>",
"token_info": {
"token_id": "<token-id>",
"creation_time": <creation-timestamp>,
"expiry_time": <expiry-timestamp>,
"comment": "<comment>",
"scopes": ["authentication", "sql"],
"last_accessed_time": 0
}
}
在后续调用 Databricks REST API 时,将响应中的新令牌提供到授权标头中。 例如:
# This example uses a simple GET. For POST or other REST verbs, you may need to provide additional parameters.
curl -X GET "https://<databricks-instance>/api/2.0/<path-to-endpoint>" \
-H "Authorization: Bearer <your-new-pat>"
import requests
headers = {
'Authorization': 'Bearer <your-new-pat>'
}
# This example is for an HTTP GET operation.
response = requests.get('https://<databricks-instance>/api/2.0/<path-to-endpoint>', headers=headers)
更新个人访问令牌的范围
如果作用域内令牌缺少 API 调用所必需的权限范围,请求将失败,并返回一个错误,指出缺少的权限范围。 若要更新令牌的范围,请使用 REST 终结点 /api/2.0/token/<token_id>。 调用令牌必须具有 authentication 范围,该范围允许管理其他令牌。 使用 update_mask 字段指定要更新的令牌字段。
curl -X PATCH https://<databricks-instance>/api/2.0/token/<token_id> \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
"token": {
"scopes": ["sql", "unity-catalog"]
},
"update_mask": "scopes"
}'
范围更改最多可能需要十分钟才能传播。
若要查看所有可用的范围,请使用 GET /api/2.0/token-scopes。