单用刷新令牌

本页介绍与 Azure Databricks 集成的 OAuth 应用程序的单用刷新令牌,并介绍如何使用 Azure Databricks API 对其进行配置。 单次使用刷新令牌通过在每次使用后要求令牌轮换来增强安全性。

什么是单用刷新令牌?

自定义和已发布的应用程序集成在用户到计算机(U2M)身份验证流中使用单用刷新令牌(也称为刷新令牌轮换)。 它们通过允许每个刷新令牌仅使用一次来增强 OAuth 安全性。 当客户端应用程序使用刷新令牌获取新的访问凭据时,Azure Databricks 会颁发新的刷新令牌并使旧令牌失效。

默认情况下,为以下项启用了一次性刷新令牌:

对于大多数其他已发布的应用和自定义 OAuth 集成,请使用 Azure Databricks API 启用此功能。

大多数现代 OAuth 客户端应用程序可以自动处理一次性刷新令牌,使最终用户无需进行任何操作变化。 并非所有客户端应用程序都支持此功能。 如果客户端应用程序在启用单用刷新令牌时无法正常工作,则可以禁用该功能以还原为多用途刷新令牌。

配置单用刷新令牌

可以通过 Databricks API 或 Databricks CLI 配置单用刷新令牌。 有关 API 的详细信息,请参阅 Azure Databricks API 文档。 有关 Databricks CLI 的详细信息,请参阅 什么是 Databricks CLI?

若要启用单用刷新令牌并设置 OAuth 会话生存时间(TTL),请指定enable_single_use_refresh_tokens下面的absolute_session_lifetime_in_minutestoken_access_policy字段。

Databricks API

{
  "confidential": true,
  "name": "Example Tableau Server",
  "redirect_urls": ["https://example.online.tableau.com/auth/add_oauth_token"],
  "scopes": ["all-apis", "offline_access"],
  "token_access_policy": {
    "access_token_ttl_in_minutes": 60,
    "refresh_token_ttl_in_minutes": 1440,
    "enable_single_use_refresh_tokens": true,
    "absolute_session_lifetime_in_minutes": 43200
  }
}

Databricks 命令行界面 (CLI)

databricks account custom-app-integration update <app_integration_id> --json '{
    "token_access_policy": {
      "access_token_ttl_in_minutes": 60,
      "refresh_token_ttl_in_minutes": 1440,
      "enable_single_use_refresh_tokens": true,
      "absolute_session_lifetime_in_minutes": 43200
    }
}'