管理个人访问令牌
要向Databricks REST API进行身份验证,用户可以创建一个个人访问令牌,并在其REST API请求中使用它。令牌有一个可选的过期日期,并且可以撤销。看到使用Databricks个人访问令牌进行身份验证.
每个用户的个人访问令牌数量限制为600个工作空间.
重要的
Databricks强烈建议使用基于令牌的REST身份验证,而不是用户名和密码(本地身份验证)。
默认情况下,为2018年或以后创建的所有Databricks工作区启用了创建个人访问令牌的功能。工作空间管理员可以启用或禁用为任何工作空间创建个人令牌访问的能力,而不管工作空间是什么时候创建的。
当为工作空间启用创建个人访问令牌的能力时,工作空间管理员还可以监视令牌,控制哪些非管理用户可以创建令牌和使用令牌,并设置新令牌的最大生存期。
当生成个人访问令牌的能力是启用对于您的工作空间,在默认情况下,Databricks工作空间中的所有用户都可以生成个人访问令牌来访问Databricks REST api,并且他们可以生成具有任意过期日期的令牌,包括不确定的生命周期。
作为Databricks管理员,您可以使用令牌管理API 2.0而且权限API 2.0在更细粒度的级别上控制令牌使用。api发布在每个工作空间实例上。要了解如何访问API并对其进行身份验证,请参见使用Databricks个人访问令牌进行身份验证.必须以Databricks管理员身份访问API。
对于某些任务,还可以使用管理控制台。
下表显示了可以使用web应用程序执行的任务和可以使用REST api执行的任务。对于显示Yes的单元格,单击单词以查看相关文档。
任务 |
描述 |
管理控制台 |
REST API |
---|---|---|---|
启用/禁用 |
启用或禁用此工作区的所有令牌 |
||
控制谁可以使用令牌 |
将个人访问令牌的创建和使用限制在此工作空间中的指定用户和组。如果撤销用户创建和使用令牌的权限,该用户现有的令牌也将被撤销。 |
||
新令牌的最大生存期。 |
在此工作区中设置新令牌的最大生存期 |
没有 |
|
管理现有令牌 |
对于现有的令牌,获取令牌创建者、过期日期和用户提供的令牌描述。撤销不应该再访问Databricks api的用户的令牌。通过监视和控制令牌的创建,您可以降低丢失令牌或长期令牌的风险,这些风险可能导致数据从工作空间泄露。 |
没有 |
有关使用REST API进行管理和令牌使用的令牌管理的典型流程,请参见下面的图。有关可以使用管理控制台的任务集,请参阅本主题中的表格。
需求
此功能需要优质及以上计划.
为工作区启用或禁用基于令牌的身份验证
对于2018年或以后创建的所有Databricks工作区,默认情况下启用了基于令牌的身份验证。您可以在管理控制台中更改此设置。要指定允许哪些用户使用令牌,请参见控制谁可以使用或创建令牌.
禁用为工作空间创建个人访问令牌的功能:
去管理控制台.
单击工作空间设置选项卡。
单击个人访问令牌切换。
点击确认.此更改可能需要几秒钟才能生效。
若要对REST API请求使用基于令牌的身份验证,请参见使用Databricks个人访问令牌进行身份验证.
在为工作区禁用基于令牌的身份验证时,不会删除任何令牌。如果稍后重新启用令牌,则任何未过期的令牌都可以立即使用。
如果您希望禁用用户子集的令牌访问,您可以为工作区保持启用基于令牌的身份验证,然后为用户和组设置细粒度的权限。看到控制谁可以使用或创建令牌.
您还可以使用REST API来进行此更改。要为工作区启用或禁用令牌管理特性,请调用令牌API的工作区配置(补丁/ workspace-conf
).在JSON请求体中,指定enableTokensConfig
作为真正的
(使)或假
(禁用)。
例如,要启用该特性:
curl -X PATCH -n\https:// < databricks-instance > / api / 2.0 / workspace-conf\- d”{“enableTokensConfig”:“真正的”,} '
控制谁可以使用或创建令牌
用户可以拥有以下令牌权限之一:
没有权限
可以使用—用户是否可以使用个人访问令牌。对于Databricks平台3.28版本(2020年9月9日至15日)发布后创建的工作区,默认没有非adminbob体育客户端下载用户或组被授予Can Use权限。管理员必须显式地将“可以使用”权限授予用户、组或所有用户
用户
组。重要的
在3.28发布之前创建的工作区维护已经存在的权限。之前的默认设置是所有用户都具有“Can Use”权限。管理员可以撤销该组权限,并将其授予其他组或个别非管理员用户。看到删除权限.
可以管理—用户或组是否可以管理个人访问令牌和权限。用户
管理员
组默认具有此权限,且不能撤销。没有其他组可以被授予此权限。API执行这些规则。
下表列出了每个令牌相关任务所需的权限:
任务 |
没有许可 |
可以使用 |
可以管理 |
---|---|---|---|
创建令牌 |
- - - - - - |
是的 |
是的 |
使用令牌进行身份验证 |
- - - - - - |
是的 |
是的 |
撤销您自己的令牌 |
- - - - - - |
是的 |
是的 |
撤销任何用户的令牌** |
- - - - - - |
- - - - - - |
是的 |
列出所有令牌** |
- - - - - - |
- - - - - - |
是的 |
修改令牌权限*** |
- - - - - - |
- - - - - - |
是的 |
标记为**的操作需要令牌管理API 2.0.
标记为***的操作可以在管理控制台中执行或使用权限API 2.0.看到控制谁可以使用或创建令牌.
使用管理控制台管理令牌权限
使用管理控制台管理工作区的令牌权限:
去管理控制台.
单击工作空间设置选项卡。
单击权限旁边的按钮个人访问令牌打开令牌权限编辑器。
添加、删除或更新权限。有关权限的含义和工作空间的默认权限的信息,请参见控制谁可以使用或创建令牌.
如果
用户
组具有“可以使用”权限,并且您希望为非admin用户应用更细粒度的访问权限,请删除可以使用来自用户通过单击X中的权限下拉列表中的用户行。若要将权限授予其他实体,请选择要授予访问权限的每个用户或组。对象中选择用户或组选择用户或组…下拉,选择可以使用,并按+添加按钮。在以下示例中,管理员已删除对用户组,并授予数据科学B2组的访问权限。
点击保存以保存更改。
警告
保存更改后,以前拥有Can Use或Can Manage权限但不再拥有这两种权限的任何用户都将被拒绝访问基于令牌的身份验证,并且他们的活动令牌将立即被删除(撤销)。无法检索已删除的令牌。
使用permissions API管理令牌权限
获取工作区的所有令牌权限
要获得工作区中所有Databricks用户、Databricks组和Databricks服务主体的令牌权限,请调用get-tokens-permissionsAPI来获取工作区的所有令牌权限。(例如,得到/权限/授权/令牌
如在权限API文档。)
响应包括access_control_list
数组中。每个元素是一个用户对象、一个组对象或一个服务主体对象。它们每个都有一个适合于类型的标识字段:用户有一个user_name
场、组都有group_name
字段,服务主体有一个service_principal_name
字段。所有元素都有一个all_permissions
字段,该字段指定权限级别(CAN_USE
或CAN_MANAGE
)。
例如:
curl -n -X GET“https:// < databricks-instance > / api / 2.0 /预览/权限/授权/令牌”
示例响应:
{“object_id”:“授权/令牌”,“object_type”:“令牌”,“access_control_list”:[{“user_name”:“jsmith@example.com”,“all_permissions”:[{“permission_level”:“CAN_USE”,“继承”:假}]}]}
设置令牌权限
要设置令牌权限,请调用更新特定实体API的令牌权限(补丁/权限/授权/令牌
).
您可以为一个或多个用户、组或服务主体设置权限。类中指定的电子邮件地址user_name
请求属性。对于每个组,在group_name
财产。对于服务主体,指定服务主体applicationId
的价值service_principal_name
财产。
没有明确提到的实体(如用户或组)不会直接受到此请求的影响,尽管对组成员资格的更改会间接影响用户访问。
您只能授予,而不能撤销这个API的权限。
例如,下面的示例授予user访问权限又该@例子.com这个小组mygroup.
curl -n -X PATCH“https:// < databricks-instance > / api / 2.0 /预览/权限/授权/令牌”- d”{“access_control_list”:({“user_name”:“jsmith@example.com”,:“permission_level CAN_USE”,},{组:“group_name mygroup”,:“permission_level CAN_USE”,}]} '
示例响应:
{“access_control_list”:[{“user_name”:“jsmith@example.com”,“all_permissions”:[{“permission_level”:“CAN_USE”,“继承”:假}]},{“group_name”:组“mygroup”,“all_permissions”:[{“permission_level”:“CAN_USE”,“继承”:假}]}]}
如果要在一个请求中为工作区中的所有实体设置令牌权限,请使用替换工作区API的所有令牌权限(把/权限/授权/令牌
).看到删除权限
删除权限
请注意
对于Databricks平台3.28版本(2020年9月9日至15日)发布后创建的工作区,默认为没有用户具有Cbob体育客户端下载an Use权限。管理员必须显式授予这些权限,无论是整个用户
组或按用户或组按组。在3.28发布之前创建的工作区维护已经存在的权限。缺省情况下,所有用户都具有“Can Use”权限。管理员可以撤销组权限分配,并将其授予其他组或个别非管理员用户。
要撤消所有或部分非管理员用户的权限,请使用替换工作区API的所有令牌权限(把/权限/授权/令牌
),它要求您为所有被授予整个工作区权限的对象指定完整的权限集。
如果您想授权非管理员用户创建和使用令牌,请执行以下三项操作:
格兰特的用户、组和服务主体
CAN_USE
许可。不授予的
CAN_USE
内置的权限用户
如果您只希望授权一些非管理员用户,则可以对其进行分组。您可以选择将权限分配给该组,在这种情况下,所有非管理员用户都可以创建和使用令牌。格兰特内置的
管理员
集团的CAN_MANAGE
许可。这是API的一个要求。
警告
请求成功后,如果用户或服务主体没有通过组直接或间接拥有令牌权限,则立即删除他们的令牌。无法检索已删除的令牌。
下面的示例授予Can Use令牌分组权限field-automation-group
的权限用户
(所有用户)组和授权CAN_MANAGE
允许使用管理员
按照API的要求进行分组。不在该组中的任何非admin用户field-support-engineers
将失去对令牌创建的访问权,其现有的令牌将立即被删除(撤销)。
curl -n -X PUT“https:// < databricks-instance > / api / 2.0 /预览/权限/授权/令牌”- d”{“access_control_list”:({:“group_name field-automation-group”,:“permission_level CAN_USE”,},{“group_name”:“管理员”,:“permission_level CAN_MANAGE”,},]} '
设置新令牌的最大生存期(仅限REST API)
使用令牌api的工作区配置要管理此工作区中新令牌的最大生命周期。
要设置新令牌的最大生存期,请调用为新令牌API设置最大令牌生存期(补丁/ workspace-conf
).集maxTokenLifetimeDays
到新令牌的最大令牌生命周期(以天为单位),以整数形式表示。如果将其设置为0,则允许新的令牌没有生命期限制。
例如:
curl -n -X PATCH“https:// < databricks-instance > / api / 2.0 / workspace-conf”- d”{“maxTokenLifetimeDays”:“90”} '
警告
此限制仅适用于新令牌。要查看现有的令牌,请参见获取令牌API.
要获得新令牌的工作空间的最大生存期,请调用令牌API的工作区配置(得到/ workspace-conf
)和通过键= maxTokenLifetimeDays
作为查询参数。响应包括maxTokenLifetimeDays
属性,该属性是新令牌的最大令牌生命周期(以天为单位),以整数表示。如果它为零,则允许新的令牌没有生命期限制。
例如:
curl -n -X GET“https:// < databricks-instance > / api / 2.0 / workspace-conf吗?键= maxTokenLifetimeDays”
示例响应:
{“maxTokenLifetimeDays”:“90”}
监视和撤销令牌(仅限REST API)
使用令牌管理api来管理工作区中的现有令牌。
为工作区获取令牌
要获取工作区的令牌,请调用获取所有令牌API(得到令牌管理/令牌
).响应包括token_infos
数组中。每个元素表示一个令牌,并包括ID字段(token_id
),创建时间(creation_time
)、届满时间(expiry_time
),描述(评论
),以及创建它的用户(IDcreated_by_id
或用户名created_by_username
).
方法可以了解有关BOB低频彩该用户的更多信息SCIM获取用户API(得到/ scim / v2 /用户/ {id}
).
若要按用户筛选结果,请设置请求体属性created_by_id
(用于ID)或created_by_username
(用户名)。方法从显示名称中获取用户IDSCIM获取用户API(得到/ scim / v2 /用户
)
例如:
curl -n -X GET“https:// < databricks-instance > / api / 2.0 /令牌管理/令牌”- d”{“created_by_id”:“1234567890”} '
示例响应:
{“token_infos”:[{“token_id”:“< token-id >”,“creation_time”:1580265020299,“expiry_time”:1580265020299,“评论”:“这是ABC部门的自动化脚本。”,“created_by_id”:1234567890,“created_by_username”:“jsmith@example.com”}]}
方法获取特定的令牌获取一个令牌API(得到/令牌管理/令牌/ {token_id}
).
起程拓殖集成
您可以在完全自动化的设置中使用Databricks Terraform提供商而且databricks_permissions如下。
警告
下面的配置包含该语句授权=“令牌”
.只能有一个授权=“令牌”
权限资源每个Databricks工作空间,否则将有一个永久的配置漂移。在应用以下更改后,以前拥有任何一种更改的用户CAN_USE
或CAN_MANAGE
权限,但不再拥有任何权限,撤销其对基于令牌的身份验证的访问。它们的活动令牌将立即被删除(撤销)。
资源"databricks_group" "auto" {display_name = "Automation"}资源"databricks_group" "eng" {display_name = "Engineering"}资源"databricks_permissions" "token_usage" {authorization = "tokens" access_control {group_name = "databricks_group .auto "。display_name permission_level = "CAN_USE"} access_control {group_name = databricks_group.eng. display_name permission_level = "CAN_USE"}display_name permission_level = "CAN_USE"}}