监视和撤销个人访问令牌

若要向 Azure Databricks REST API 进行身份验证,用户可以创建个人访问令牌(PAT),并将其用于 REST API 请求。 用户还可以创建服务主体并将其与个人访问令牌配合使用,以在其 CI/CD 工具和自动化中调用 Azure Databricks REST API。 本文介绍如何在 Azure Databricks 管理员的工作区中管理个人访问令牌。 若要创建个人访问令牌,请参阅 Azure Databricks 个人访问令牌身份验证

使用 OAuth 而不是个人访问令牌

Databricks 建议使用 OAuth 访问令牌而不是 PAT,以便提高安全性和便利性。 Databricks 继续支持 PAT,但由于其安全风险更大,建议审核帐户的当前 PAT 使用情况,并将用户和服务主体迁移到 OAuth 访问令牌。 若要创建 OAuth 访问令牌(而不是 PAT)以便在自动化中与服务主体配合使用,请参阅使用 OAuth (OAuth M2M) 通过服务主体对 Azure Databricks 的访问进行身份验证

Databricks 建议通过以下步骤最大程度地减少个人访问令牌公开:

  1. 为工作区中创建的所有新令牌设置短生存期。 生存期应小于 90 天。 默认情况下,所有新令牌的最大生存期为 730 天(两年)。
  2. 请与 Azure Databricks 工作区管理员和用户合作,切换到生存期较短的令牌。
  3. 撤销所有生存期较长的令牌,以减少这些旧令牌随时间推移被滥用的风险。 当令牌在 90 天或更多天内未使用时,Databricks 会自动撤销 Azure Databricks 工作区的所有 PAT。

要求

你必须是管理员才能管理个人访问令牌。

Azure Databricks 帐户管理员可以在整个帐户中监视和撤销个人访问令牌。

Azure Databricks 工作区管理员可以执行以下操作:

  • 禁用工作区的个人访问令牌。
  • 控制哪些非管理员用户可以创建令牌并使用令牌。
  • 为新令牌设置最长生存期。
  • 监视并撤销他们工作区中的令牌。

在工作区中管理个人访问令牌需要高级计划

监视和撤销帐户中的个人访问令牌

重要

此功能位于 个人预览版中。 若要加入此预览版,请联系 Azure Databricks 帐户团队。

帐户管理员可以从帐户控制台监视和撤销个人访问令牌。 仅当帐户管理员使用令牌报告页时,才能运行用于监视令牌的查询。

  1. 若要加入此预览版,请先联系 Azure Databricks 帐户团队。

  2. 作为帐户管理员,登录到 帐户控制台

  3. 在边栏中,单击“预览”

  4. 使用切换 将控件切换到“开”位置。 启用“访问令牌报表”

    启用访问令牌报表。

  5. 在边栏中,单击“设置”和“令牌报表”

    可以按令牌所有者、工作区、创建日期、到期日期和上次使用令牌的日期进行筛选。 使用报表顶部的按钮筛选非活动主体的访问令牌或没有到期日期的访问令牌。

    查看个人访问令牌报告。

  6. 若要将报表导出到 CSV,请单击 导出

  7. 若要吊销令牌,请选择令牌并单击 撤销

    撤销个人访问令牌。

为工作区启用或禁用个人访问令牌身份验证

默认情况下,将为在 2018 年或之后创建的所有 Azure Databricks 工作区启用个人访问令牌身份验证。 可以在工作区设置页中更改此设置。

为工作区禁用个人访问令牌时,个人访问令牌不能用于向 Azure Databricks 进行身份验证,工作区用户和服务主体无法创建新令牌。 为工作区禁用个人访问令牌身份验证时,不会删除任何令牌。 如果以后重新启用令牌,则任何未过期的令牌都会变得可供使用。

如果要对部分用户禁用令牌访问权限,可以始终为该工作区启用个人访问令牌身份验证,并为用户和组设置细化的权限。 请参阅 控制谁可以创建和使用个人访问令牌

警告

Partner Connect合作伙伴集成需要在工作区启用个人访问令牌。

要禁用为工作区创建和使用个人访问令牌的功能:

  1. 转到设置页

  2. 单击“高级” 选项卡。

  3. 单击“个人访问令牌”切换开关。

  4. 单击“确认” 。

    此更改可能需要几秒钟的时间才能生效。

还可以使用工作区配置 API 来禁用工作区的个人访问令牌。

控制谁可以创建和使用个人访问令牌

工作区管理员可以设置对个人访问令牌的权限,以控制哪些用户、服务主体和组可以创建和使用令牌。 有关如何配置个人访问令牌权限的详细信息,请参阅管理个人访问令牌权限

设置新个人访问令牌的最大生存期

默认情况下,新令牌的最大生存期为 730 天(两年)。 可以使用 Databricks CLI工作区配置 API在工作区中设置较短的最大令牌生存期。 此限制仅适用于新令牌。

maxTokenLifetimeDays 设置为新令牌的最长令牌生存期(以天为单位的整数)。 例如:

Databricks CLI

databricks workspace-conf set-status --json '{
  "maxTokenLifetimeDays": "90"
}'

工作区配置 API

curl -n -X PATCH "https://<databricks-instance>/api/2.0/workspace-conf" \
  -d '{
  "maxTokenLifetimeDays": "90"
  }'

如果将 maxTokenLifetimeDays 设置为零,则可以使用最长 730 天(两年)的生存期创建新令牌。

若要使用 Databricks Terraform 提供程序管理工作区中新令牌的最长生存期,请参阅 databricks_workspace_conf 资源

监视并撤销你的工作区中的令牌

本部分介绍工作区管理员如何使用 Databricks CLI 来管理工作区中的现有令牌。 还可以使用令牌管理 API。 Databricks 自动撤销在 90 天或更多天内未使用的个人访问令牌。

获取工作区的令牌

若要获取工作区的令牌,请执行以下操作:

Python

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

spark.createDataFrame([token.as_dict() for token in w.token_management.list()]).createOrReplaceTempView('tokens')

display(spark.sql('select * from tokens order by creation_time'))

Bash

# Filter results by a user by using the `created-by-id` (to filter by the user ID) or `created-by-username` flags.
databricks token-management list

删除(撤销)令牌

若要删除令牌,请将 TOKEN_ID 替换为要删除的令牌的 ID:

databricks token-management delete TOKEN_ID