Azure Databricks 個人存取權杖驗證
Azure Databricks 個人存取權杖 (PAT) 可用於驗證對 Azure Databricks 工作區層級資源和 API 的存取權。 許多認證和相關資訊的儲存體機制 (例如環境變數和 Azure Databricks 組態設定檔) 都提供 Azure Databricks 個人存取權杖的支援。 雖然使用者可以在 Azure Databricks 工作區中有多個個人存取權杖,但每個個人存取權杖僅適用於單一 Azure Databricks 工作區。 每位使用者的個人存取權杖數目限制為每個工作區 600 個。
Databricks 會自動撤銷 90 天以上未使用的個人存取令牌。
重要
由於 OAuth 的安全性得到提高,Databricks 建議使用 OAuth 而不是 PAT 進行使用者帳戶用戶端驗證和授權。 若要了解如何使用 OAuth 透過 Databricks 使用者帳戶執行用戶端驗證,請參閱使用 OAuth (OAuth M2M) 透過使用者帳戶對 Azure Databricks 的存取進行驗證 (對於使用者帳戶驗證)。
使用 Azure Databricks 使用者名稱和密碼進行的基本 (非權杖型) 驗證生命週期已於 2024 年 7 月 10 日結束。
若要自動化 Azure Databricks 帳戶層級功能,您無法使用 Azure Databricks 個人存取權杖。 相反的,您必須使用 Azure Databricks 帳戶系統管理員的 Microsoft Entra ID 權杖。 Azure Databricks 帳戶管理員可以是使用者或服務主體。 如需詳細資訊,請參閱
適用於工作區使用者的 Azure Databricks 個人存取權杖
若要建立適用於 Azure Databricks 工作區使用者的 Azure Databricks 個人存取權杖,請執行以下操作:
- 在 Azure Databricks 工作區中,按一下頂端列中的 Azure Databricks 使用者名稱,然後從下拉式清單中選取 [設定]。
- 按一下 [開發人員]。
- 在 [存取權杖] 旁,按一下 [管理]。
- 按一下 產生新權杖。
- (選擇性) 輸入可協助您之後識別此權杖的註解,並變更權杖的預設存留期 90 天。 若要建立沒有存留期的權杖 (不建議),請將 [存留期 (天)] 方塊留空 (空白)。
- 按一下 產生。
- 將顯示的權杖複製到安全位置,然後選取 [完成]。
注意
請務必將複製的權杖儲存在安全位置。 請勿與其他人共用複製的權杖。 如果您遺失複製的權杖,就無法重新產生完全相同的權杖。 相反地,您必須重複此程序來建立新的權杖。 如果您遺失複製的權杖,或您認為權杖已遭入侵,Databricks 強烈建議您按一下 [存取權杖] 頁面上權杖旁邊的垃圾桶 (撤銷) 圖示,立即從工作區中刪除該權杖。
注意:如果您無法在工作區中建立或使用 PAT,這可能是因為您的工作區系統管理員已停用權杖,或未授與您建立或使用權杖的權限。 請諮詢您的工作區系統管理員或參閱下列主題:
適用於服務主體的 Azure Databricks 個人存取權杖
服務主體可以自行建立 Databricks 個人存取權杖,如下所示:
此程序假設您使用 OAuth 機器對機器 (M2M) 驗證或 Microsoft Entra ID 服務主體驗證來設定 Databricks CLI 以驗證服務主體,從而自行產生 Azure Databricks 個人存取權杖。 請參閱 OAuth 機器對機器 (M2M) 驗證或 Microsoft Entra ID 服務主體驗證。
使用 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
的組態設定檔。
-
在回應中,複製的
token_value
值,這是服務主體的存取權杖。請務必將複製的權杖儲存在安全位置。 請勿與其他人共用複製的權杖。 如果您遺失複製的權杖,就無法重新產生完全相同的權杖。 相反地,您必須重複此程序來建立新的權杖。
注意:如果您無法在工作區中建立或使用 PAT,這可能是因為您的工作區系統管理員已停用權杖,或未授與您建立或使用權杖的權限。 請參閱您的工作區系統管理員或下列內容:
執行 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 將下列內容整合到您的程式碼中:
Environment
若要透過工具或 SDK 將環境變數用於特定 Azure Databricks 驗證類型,請參閱對 Azure Databricks 資源的存取進行驗證或者參閱工具或 SDK 的文件。 另請參閱用戶端統一驗證的環境變數和欄位和用戶端統一驗證的預設方法。
設定下列環境變數:
-
DATABRICKS_HOST
,設定為 Azure Databricks 個別工作區網址,例如https://adb-1234567890123456.7.azuredatabricks.net
。 -
DATABRICKS_TOKEN
,設定為 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
組態設定檔。
若要檢查是否已具有 DEFAULT
組態設定檔,並檢視此設定檔的設置 (如果存在),請使用 Databricks CLI 來執行命令 databricks auth env --profile DEFAULT
。
若要使用除 DEFAULT
以外的名稱建立組態設定檔,請將下列 DEFAULT
命令中 --profile DEFAULT
的 databricks configure
部分取代為其他組態設定檔名稱。
使用 Databricks CLI 建立名為 的 Azure Databricks
DEFAULT
,此設定檔使用 Azure Databricks 個人存取權杖驗證。 若要這樣做,請執行下列命令:databricks configure --profile DEFAULT
對於提示 Databricks 主機,輸入 Azure Databricks 個別工作區 URL,例如
https://adb-1234567890123456.7.azuredatabricks.net
。對於提示個人存取權杖,輸入工作區的 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 Connect for Databricks Runtime 13.3 LTS 和更新版本。
- 針對 Scala,即為適用於 Databricks Runtime 13.3 LTS 和更新版本的 Databricks Connect。
對於 Databricks Connect,您可以使用 Databricks CLI 按照本文的「設定檔」一節所述為 Azure Databricks .databrickscfg
設定 檔案中的值,如下所示:
注意
下列程序使用 Databricks CLI 建立名為 的 Azure Databricks DEFAULT
。 如果已具有 DEFAULT
組態設定檔,此程序將覆寫現有的 DEFAULT
組態設定檔。
若要檢查是否已具有 DEFAULT
組態設定檔,並檢視此設定檔的設置 (如果存在),請使用 Databricks CLI 來執行命令 databricks auth env --profile DEFAULT
。
若要使用除 DEFAULT
以外的名稱建立組態設定檔,請將 DEFAULT
命令中 --profile DEFAULT
的 databricks configure
部分取代為組態設定檔的不同名稱,如下列步驟所示。
使用 Databricks CLI 建立名為 的 Azure Databricks
DEFAULT
,此設定檔使用 Azure Databricks 個人存取權杖驗證。 若要這樣做,請執行下列命令:databricks configure --configure-cluster --profile DEFAULT
對於提示 Databricks 主機,輸入 Azure Databricks 個別工作區 URL,例如
https://adb-1234567890123456.7.azuredatabricks.net
。對於提示個人存取權杖,輸入工作區的 Azure Databricks 個人存取權杖。
在顯示的可用叢集清單中,使用向上鍵和向下鍵選取工作區中的目標 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
。 - 將取代
<your-existing-access-token>
為具有建立新令牌許可權的現有有效 PAT(字串)。
提供這些參數的值:
-
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 API 的授權標頭中,提供回應中的新令牌。 例如:
# 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)