使用 Azure Databricks 個人訪問權杖進行驗證(舊版)

Azure Databricks 的個人存取權杖(PAT)讓你在工作空間層級認證資源和 API。 你可以將它們儲存在環境變數或 Azure Databricks 設定檔。 每個 PAT 僅對一個工作區有效,而且使用者最多可以為每個工作區建立 600 個 PAT。 Azure Databricks 會自動撤銷 90 天內未使用的 PAT。

這很重要

Databricks 建議在可能的情況下使用 OAuth 取代 PAT 來進行使用者帳號驗證,因為 OAuth 提供更強的安全性。 想了解如何使用 OAuth 與 Databricks 使用者帳號進行認證,請參見 授權使用者存取 OAuth 的 Azure Databricks。

你不能用個人存取權杖來自動化Azure Databricks 帳號層級功能。 相反地,請使用 Azure Databricks 帳號管理員的 Microsoft Entra ID 令牌。 Azure Databricks 帳號管理員可以是使用者或服務主體。 如需詳細資訊,請參閱:

為工作區使用者建立個人存取權杖

要為你的 Azure Databricks Workspace 使用者建立個人存取權杖,請執行以下操作:

  1. 在你的Azure Databricks工作區,點擊頂欄的使用者名稱,選擇Settings
  2. 按一下 開發人員
  3. 在 [存取權杖] 旁,按一下 [管理]
  4. 點選 產生新的權杖
  5. 輸入可協助您在未來識別此令牌的批注。
  6. 以天為單位設定令牌的存留期。 請參閱 設定新個人存取權杖的最大壽命
  7. 要限制該標記的權限,請選擇一種標記類型並新增 API 作用域。 請參見 Scoped 個人存取令牌
  8. 點選 「」 生成 「」。
  9. 將顯示的權杖複製到安全位置,然後按一下「完成」。 安全地保存令牌,不要共享它。 如果您遺失了它,則必須建立一個新的令牌。

如果您無法建立或使用權杖,您的工作區系統管理員可能已停用權杖或未授與您權限。 請參閱您的工作區管理員或以下內容:

範圍化個人存取令牌

有範圍的個人存取權杖限制了權杖對特定 API 操作的權限。 你不是授予完整工作空間存取權,而是指派一個或多個 API 範圍,例如 sqlunity-catalog、 , scim限制 token 可呼叫的 REST API 操作。

警告

authentication 範圍的標記可以創建具有任何範圍的新標記。 只授予需要管理其他代幣的代幣範圍。

要在工作區介面中建立有範圍的權杖,請選擇權杖類型並在產生新權杖時新增 API 範圍。 如果你沒有指派任何作用域,權杖會保留創建者身份的完整權限。

欲了解完整的範圍及其相關 API 操作,請參見 API 範圍。

建立服務主體的個人存取權杖

服務主體可以為自己建立個人存取權杖。

  1. 執行下列命令以產生存取權杖:

    databricks tokens create \
      --lifetime-seconds <lifetime-seconds> \
      -p <profile-name>
    

    取代下列值:

    • <lifetime-seconds>:代幣存留期(以秒為單位),例如 86400 為 1 天。 預設為工作區上限 (通常為 730 天)。
    • <profile-name>:具有身份驗證資訊的配置設定檔。 預設為 DEFAULT
  2. 請從回應中複製token_value,這是您的服務主體的存取權杖。 安全地保存令牌,不要共享它。 如果您遺失了它,則必須建立一個新的令牌。

如果您無法建立或使用權杖,您的工作區系統管理員可能已停用權杖或未授與您權限。 請參閱您的工作區管理員或以下內容:

執行個人存取權杖驗證

要設定Azure Databricks個人存取憑證驗證,請設定以下相關環境變數,.databrickscfg 欄位、Terraform 欄位或 Config 欄位:

  • Azure Databricks 主機被指定為目標 Azure Databricks 工作區專用的 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net
  • Azure Databricks 個人存取權杖,用於 Azure Databricks 使用者帳戶。

要執行 Azure Databricks 個人存取權杖認證,請根據您的程式碼整合以下內容,依據參與的工具或 SDK:

環境

若要使用特定Azure Databricks認證類型的環境變數,請參見 授權存取Azure Databricks資源或工具或 SDK 的文件。 另請參閱 統一鑑別的環境變數和欄位, 以及 鑑別方法優先順序

設定下列環境變數:

  • DATABRICKS_HOST,設定為 Azure Databricks 工作區專用 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net
  • DATABRICKS_TOKEN設定為令牌字串。

個人檔案

在您的 檔案中建立或識別一個 Azure Databricks .databrickscfg,並包含以下欄位。 如果您建立設定檔,請將占位符替換成適當的值。 若要使用該設定檔搭配工具或 SDK,請參見 授權存取Azure Databricks資源或工具或 SDK 的文件。 另請參閱 統一鑑別的環境變數和欄位, 以及 鑑別方法優先順序

在您的 .databrickscfg 檔案中設定下列值。 此時,主機為 Azure Databricks 每個工作區的 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 DEFAULTdatabricks configure 部分取代為其他組態設定檔名稱。

  1. 使用 Databricks CLI建立一個名為 的 Azure Databricks DEFAULT,使用個人存取權杖認證Azure Databricks。 若要這樣做,請執行下列命令:

    databricks configure --profile DEFAULT
    
  2. 對於提示 Databricks Host,請輸入你的 Azure Databricks 工作區專屬 URL,例如

  3. 對於提示 Personal Access Token,請輸入你工作區的 Azure Databricks 個人存取權杖。

CLI

針對 Databricks CLI,執行 databricks configure 命令。 在提示中,輸入下列設定:

  • Azure Databricks 主機被指定為目標 Azure Databricks 工作區專用的 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net
  • Azure Databricks 個人存取權杖,用於 Azure Databricks 使用者帳戶。

欲了解更多資訊,請參閱 個人存取權杖認證(舊有)。

連線

備註

以下 Databricks Connect 版本支援 Azure Databricks 個人存取令牌認證:

  • 對於 Python,Databricks Connect 適用於 Databricks Runtime 13.3 LTS 及以上版本。
  • 針對 Scala,適用於 Databricks Runtime 13.3 LTS 和更新版本的 Databricks Connect。

對於 Databricks Connect,請使用 Databricks CLI 在 .databrickscfg 檔案中設定 Azure Databricks 的 工作區層級操作,依照 設定檔章節 所指定。

以下程序會建立一個名為 DEFAULT 的 Azure Databricks 配置檔,覆蓋任何現有的 DEFAULT 設定檔。 若要檢查是否存在 DEFAULT 設定檔,請執行 databricks auth env --profile DEFAULT。 如果存在,請使用不同的設定檔名稱。

  1. 執行以下指令建立一個名為 DEFAULT 的Azure Databricks設定檔,使用個人存取權杖認證。

    databricks configure \
      --configure-cluster \
      --profile DEFAULT
    
  2. 對於提示 Databricks Host,請輸入你的 Azure Databricks 工作區專屬 URL,例如

  3. 針對提示的 個人存取權杖,請輸入您的工作區個人存取權杖。

  4. 在可用叢集清單中,選擇你工作空間中的目標 Azure Databricks 叢集。 您可以輸入叢集顯示名稱的任何部分,以篩選可用叢集的清單。

使用 Azure Databricks REST API 來發行個人存取權杖

Azure Databricks 提供一個 REST 端點/api/2.0/token/create 來發出 PAT。 如需 API 詳細 數據,請參閱建立使用者令牌

在下列範例中,設定這些值:

  • <databricks-instance>:您的 Databricks 工作區網址。 例如: dbc-abcd1234-5678.cloud.databricks.com
  • <your-existing-access-token>:現有的有效 PAT (字串),具有建立新權杖的許可權。
  • <lifetime-seconds>:令牌的存留期以秒為單位。
  • <scopes>:一串可指派給標記的範圍清單。 請參見 Scoped 個人存取令牌
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 APIs 的請求中,將回應中的新令牌提供於授權標頭。 例如:

# 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