共用方式為


Azure Databricks 個人存取令牌驗證

Azure Databricks 個人存取令牌 (PAT) 可用來驗證 Azure Databricks 工作區層級的資源和 API 存取權。 許多認證和相關信息的記憶體機制,例如環境變數和 Azure Databricks 組態配置檔,提供 Azure Databricks 個人存取令牌的支援。 雖然用戶可以在 Azure Databricks 工作區中有多個個人存取令牌,但每個個人存取令牌僅適用於單一 Azure Databricks 工作區。 每位使用者的個人存取權杖數目限制為每個工作區 600 個。

Databricks 會自動撤銷 90 天以上未使用的個人存取令牌。

這很重要

Databricks 強烈建議使用 OAuth,而不是使用 PAT 進行使用者帳戶用戶端驗證和授權,因為 OAuth 的安全性有所改善。 若要瞭解如何使用 OAuth 搭配 Databricks 使用者帳戶執行客戶端驗證,請參閱 使用 OAuth 以使用者帳戶授權對 Azure Databricks 資源的互動式存取

使用 Azure Databricks 使用者名稱和密碼的基本(非令牌型)驗證已於 2024 年 7 月 10 日終止。

若要自動化 Azure Databricks 帳戶層級 功能,您無法使用 Azure Databricks 個人存取令牌。 相反地,您必須使用 Azure Databricks 帳戶管理員的 Microsoft Entra ID 令牌。 Azure Databricks 帳戶管理員可以是用戶或服務主體。 如需詳細資訊,請參閱:

適用於工作區使用者的 Azure Databricks 個人存取令牌

若要為 Azure Databricks 工作區使用者建立 Azure Databricks 個人存取令牌,請執行下列動作:

  1. 在 Azure Databricks 工作區中,點一下頂部列中您的 Azure Databricks 使用者名稱,然後從下拉式清單中選取 [設定]

  2. 按一下 開發人員

  3. 在 [存取權杖] 旁,按一下 [管理]

  4. 點選 產生新的權杖

  5. 輸入可協助您在未來識別此令牌的批注。

  6. 以天為單位設定令牌的存留期。

    如果您將 [有效期限(日數)] 留空,令牌的有效期限將設為工作區的最長有效期限。 根據預設,工作區的令牌存留期上限為730天。 請參閱 設定新個人存取令牌的最大存留期。

  7. 點選 「」 生成 「」。

  8. 將顯示的令牌複製到安全的位置,然後按兩下 [ 完成]。

備註

請務必將複製的令牌儲存在安全的位置。 請勿與其他人共享複製的令牌。 如果您遺失複製的令牌,就無法重新產生完全相同的令牌。 相反地,您必須再重複此程序來創建一個新的憑證。 如果您遺失了複製的令牌,或您認為令牌已遭入侵,Databricks 強烈建議您立即在 存取令牌 頁面上點擊令牌旁的垃圾桶(Revoke)圖示以刪除該令牌。

如果您無法在工作區中建立或使用令牌,這可能是因為您的工作區系統管理員已停用令牌,或未授與您建立或使用令牌的許可權。 請參閱工作區管理員或下列主題:

服務主體的 Azure Databricks 個人存取令牌

服務主體可以自行建立 Databricks 個人存取令牌,如下所示:

此程序假設您使用 OAuth 機器對機器(M2M)驗證Microsoft Entra ID 服務主體驗證,來設定 Databricks CLI,用於驗證服務主體並自行生成 Azure Databricks 個人存取令牌。 請參閱 OAuth 機器對機器(M2M)驗證Microsoft Entra ID 服務主體驗證

  1. 使用 Databricks CLI 執行下列命令,這會為服務主體產生另一個存取令牌。

    執行下列命令:

    databricks tokens create --comment <comment> --lifetime-seconds <lifetime-seconds> -p <profile-name>
    
    • --comment:將<comment>替換為對存取令牌用途的有意義評論。 --comment如果未指定選項,則不會產生任何批注。
    • --lifetime-seconds:將 <lifetime-seconds> 替換為存取令牌有效的秒數。 例如,1 天是86400秒。 如果未指定 --lifetime-seconds 選項,存取令牌會設定為工作區的最大存留期。 根據預設,工作區的令牌存留期上限為730天。
    • --profile-name:將 取代 <profile-name> 為 Azure Databricks 組態配置檔的名稱,其中包含服務主體和目標工作區的驗證資訊。 -p如果未指定選項,Databricks CLI 會嘗試尋找並使用名為 DEFAULT的組態配置檔。
  2. 在回應中,複製token_value的值。這是服務主體的存取令牌。

    請務必將複製的令牌儲存在安全的位置。 請勿與其他人共享複製的令牌。 如果您遺失複製的令牌,就無法重新產生完全相同的令牌。 相反地,您必須再重複此程序來創建一個新的憑證。

    如果您無法在工作區中建立或使用令牌,這可能是因為您的工作區系統管理員已停用令牌,或未授與您建立或使用令牌的許可權。 請參閱您的工作區管理員或以下內容:

執行 Azure Databricks 個人存取令牌驗證

若要設定 Azure Databricks 個人存取令牌驗證,您必須設定下列相關聯的環境變數、.databrickscfg 字段、Terraform 欄位或 Config 字段:

  • Azure Databricks 主機,指定為目標 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net
  • Azure Databricks 用戶帳戶的 Azure Databricks 個人存取令牌。

若要執行 Azure Databricks 個人存取令牌驗證,請根據您的參與工具或 SDK,在您的程式代碼中整合下列專案:

環境

若要搭配工具或 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 個別工作區網址,例如 https://adb-1234567890123456.7.azuredatabricks.net

[<some-unique-configuration-profile-name>]
host  = <workspace-url>
token = <token>

您可以改用 Databricks CLI 來設定這些值,而不是在 .databrickscfg 檔案中手動設定上述值,如下所示:

備註

下列程序使用 Databricks CLI 來創建一個名為 的 Azure Databricks 設定檔案。 如果已具有 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,例如 https://adb-1234567890123456.7.azuredatabricks.net

  3. 在提示中輸入您工作區的 Azure Databricks 個人存取權杖。

CLI(命令列介面)

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

  • Azure Databricks 主機,指定為目標 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net
  • Azure Databricks 用戶帳戶的 Azure Databricks 個人存取令牌。

如需詳細資料,請參閱 Azure Databricks 個人存取權杖驗證

連線

備註

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

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

針對 Databricks Connect,您可以使用 Databricks CLI 將值設定在檔案 .databrickscfg 中,針對本文「配置檔」一節中指定的 Azure Databricks 工作區層級操作,如下所示:

備註

下列程序使用 Databricks CLI 來創建一個名為 的 Azure Databricks 設定檔案。 如果已具有 DEFAULT 組態設定檔,此程序將覆寫現有的 DEFAULT 組態設定檔。

若要檢查您是否已經有組 DEFAULT 態設定檔,以及若要檢視此設定檔的設定是否存在,請使用 Databricks CLI 來執行命令 databricks auth env --profile DEFAULT

若要使用除 DEFAULT 以外的名稱建立組態配置檔,請將 DEFAULT 命令中的 --profile DEFAULT 部分替換為 databricks configure,如以下步驟所示,給組態配置檔取不同的名稱。

  1. 使用 Databricks CLI 建立名為 的 Azure Databricks DEFAULT,該配置檔會使用 Azure Databricks 個人存取令牌驗證。 若要這樣做,請執行下列命令:

    databricks configure --configure-cluster --profile DEFAULT
    
  2. 如需提示 Databricks Host,請輸入您的 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

  3. 在提示中輸入您工作區的 Azure Databricks 個人存取權杖。

  4. 在出現的可用叢集清單中,使用向上鍵和向下鍵來選取工作區中的目標 Azure Databricks 叢集,然後按 Enter。 您也可以輸入叢集顯示名稱的任何部分,以篩選可用叢集的清單。

使用 Azure Databricks REST API 來發出個人存取令牌

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

您必須提供 REST API 的特定值。 在下列範例中,設定這些值:

  • 請將 <databricks-instance> 替換成您的 Databricks 工作區 URL。 例如: dbc-abcd1234-5678.cloud.databricks.com
  • 請用具有建立新令牌許可權的現有有效 PAT(字串)替換 <your-existing-access-token>

提供這些參數的值:

  • comment:新令牌的描述。
  • lifetime_seconds:令牌的存留期以秒為單位。
curl -X POST https://<databricks-instance>/api/2.0/token/create \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
  "comment": "New PAT using DB API",
  "lifetime_seconds": <lifetime-of-pat-in-seconds>
}'

-d 標會提供要求的 JSON 承載。

如果成功,這將產生類似於以下的回應數據:

{
  "access_token": "<your-newly-issued-pat>",
  "token_type": "Bearer",
  "expires_in": <the-duration-of-the-new-pat>
}

在後續對 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)