分享方式:


對 Azure Databricks 資源的存取進行驗證

若要使用 Databricks CLI 或 REST API 存取 Azure Databricks 資源,用戶端必須使用具有存取資源所需授權的 Azure Databricks 帳戶進行驗證。 若要安全地執行 Databricks CLI 命令,或呼叫需要對帳戶或工作區進行授權存取的 Databricks API 要求,您必須根據有效的 Azure Databricks 帳戶認證提供存取權杖。 本文涵蓋的驗證選項,可提供這些認證,並授權對 Azure Databricks 工作區或帳戶的存取。

下表顯示 Azure Databricks 帳戶可用的驗證方法。

Azure Databricks 驗證方法

因為 Azure Databricks 工具和 SDK 可與一或多個支援的 Azure Databricks 驗證方法搭配使用,因此您可以為您的使用案例選取最佳驗證方法。 如需詳細資料,請參閱開發人員工具和指導中的工具或 SDK 文件。

方法 描述 使用案例
適用於服務主體的 OAuth (OAuth M2M) 服務主體的短期 OAuth 權杖。 無人參與的驗證案例,例如完全自動化和 CI/CD 工作流程。
適用於使用者的 OAuth (OAuth U2M) 使用者的短期 OAuth 權杖。 有人參與的驗證案例,您可以在出現提示時,使用網頁瀏覽器即時向 Azure Databricks 進行驗證。
個人存取權杖 (PAT) 使用者或服務主體的短期或長期權杖。 目標工具不支援 OAuth 的案例。
Azure 受控識別驗證 Azure 受控識別的 Microsoft Entra ID 權杖。 只能與支援受控識別的 Azure 資源搭配使用,例如 Azure 虛擬機器。
Microsoft Entra ID 服務主體驗證 Microsoft Entra ID 服務主體的 Microsoft Entra ID 權杖。 只能與支援 Microsoft Entra ID 權杖且不支援受控識別的 Azure 資源搭配使用,例如 Azure DevOps。
Azure CLI 驗證 使用者或 Microsoft Entra ID 服務主體的 Microsoft Entra ID 權杖。 用於使用 Azure CLI 對 Azure 資源和 Azure Databricks 的存取進行驗證。
Microsoft Entra ID 使用者驗證 使用者的 Microsoft Entra ID 權杖。 只能與僅支援 Microsoft Entra ID 權杖的 Azure 資源搭配使用。 Databricks 不建議手動為 Azure Databricks 使用者建立 Microsoft Entra ID 權杖。

我應該選擇哪一種驗證方法?

您有兩個選項可用來驗證 Databricks CLI 命令或 API 呼叫,以存取 Azure Databricks 資源:

  • 使用 Azure Databricks 使用者帳戶 (稱為「使用者對機器」驗證或 U2M)。 只有在您從本機用戶端環境執行 Azure Databricks CLI 命令,或從您擁有的程式碼呼叫 Azure Databricks API 要求時,才能選擇此選項,並獨佔執行。
  • 使用 Azure Databricks 服務主體 (稱為「機器對機器」驗證或 M2M)。 如果其他人將執行您的程式碼 (特別是在應用程式的情況下),或如果您要建置將呼叫 Azure Databricks CLI 命令或 API 要求的自動化,請選擇此選項。
  1. 如果您使用 Azure Databricks,您也可以使用 MS Entra 服務主體來驗證對 Azure Databricks 帳戶或工作區的存取。 不過,Databricks 建議您將 Databricks 服務主體與透過 MS Entra 服務主體驗證提供的 OAuth 驗證搭配使用。 這是因為當 Databricks 的驗證僅搭配使用 OAuth 存取權杖與 Azure Databricks 進行驗證時,可更加強固。

如需有關使用 MS Entra 服務主體存取 Databricks 資源的詳細資料,請參閱 MS Entra 服務主體驗證

您還必須擁有連結至您將用來呼叫 Databricks API 的帳戶的存取權杖。 此權杖可以是 OAuth 2.0 存取權杖,也可以是個人存取權杖 (PAT)。 不過,Azure Databricks 強烈建議您使用 OAuth 而不是 PAT 進行授權,因為根據預設會自動重新整理 OAuth 權杖,而且不需要直接管理存取權杖,改善安全性,以防止權杖劫持和不必要的存取。 因為 OAuth 會為您建立和管理存取權杖,因此您會提供 OAuth 權杖端點網址、用戶端識別碼,以及您從 Azure Databricks 工作區產生的祕密,而不是自行直接提供權杖字串。 如果未定期稽核和輪替或撤銷,或未針對您的開發環境安全管理權杖字串和密碼,則 PAT 會暴露長期權杖提供輸出機會的風險。

如何使用 OAuth 向 Azure Databricks 進行驗證?

Azure Databricks 提供統一用戶端驗證,以使用您可以設定為特定認證值的預設環境變數集來協助您進行驗證。 這可協助您更輕鬆地且安全地工作,因為這些環境變數是將執行 Azure Databricks CLI 命令或呼叫 Azure Databricks API 的環境所特有的。

  • 針對使用者帳戶 (使用者對機器) 驗證,只要工具和 SDK 實作其標準,就會透過 Databricks 用戶端統一驗證為您處理 Azure Databricks OAuth。 如果沒有,您可以手動產生 OAuth 程式碼驗證器和查問配對,以直接在 Azure Databricks CLI 命令和 API 要求中使用。 請參閱步驟 1:產生 OAuth 程式碼驗證器和程式碼查問配對
  • 針對服務主體 (機器對機器) 驗證,Azure Databricks OAuth 會要求呼叫者提供用戶端認證,以及可授權要求的權杖端點網址。 (如果您使用支援 Databricks 統一用戶端驗證的 Azure Databricks 工具和 SDK,則會為您處理這項作業。) 認證包含唯一的用戶端識別碼用戶端密碼。 用戶端是將執行程式碼的 Databricks 服務主體,必須指派至 Databricks 工作區。 將服務主體指派至其將存取的工作區之後,系統會提供您使用特定環境參數設定的用戶端識別碼和用戶端密碼。

這些環境變數包括:

  • DATABRICKS_HOST:此環境變數會設定為 Azure Databricks 帳戶主控台 (http://accounts.cloud.databricks.com) 或 Azure Databricks 工作區網址 (https://{workspace-id}.cloud.databricks.com) 的網址。 根據您要在程式碼中執行的作業類型,選擇主機網址類型。 具體而言,如果您使用 Azure Databricks 帳戶層級 CLI 命令或 REST API 要求,請將此變數設定為 Azure Databricks 帳戶網址。 如果您使用 Azure Databricks 工作區層級 CLI 命令或 REST API 要求,請使用您的 Azure Databricks 工作區網址。
  • DATABRICKS_ACCOUNT_ID:用於 Azure Databricks 帳戶作業。 這是您的 Azure Databricks 帳戶識別碼。 若要取得它,請參閱尋找您的帳戶識別碼
  • DATABRICKS_CLIENT_ID:(僅限 M2M OAuth) 建立服務主體時指派的用戶端識別碼。
  • DATABRICKS_CLIENT_SECRET:(僅限 M2M OAuth) 建立服務主體時產生的用戶端密碼。

您可以直接設定,也可以透過在用戶端機器上使用 Databricks 組態設定檔 (.databrickscfg) 進行設定。

若要使用 OAuth 存取權杖,您的 Azure Databricks 工作區或帳戶管理員必須已向您的使用者帳戶或服務主體授與對您程式碼將存取的帳戶和工作區功能的 CAN USE 權限。

如需有關設定用戶端 OAuth 授權以及檢閱雲端提供者特定授權選項的詳細資料,請參閱統一用戶端驗證

第三方服務和工具的驗證

如果您要撰寫可存取第三方服務、工具或 SDK 的程式碼,您必須使用第三方提供的驗證和授權機制。 不過,如果您必須授與第三方工具、SDK 或服務對 Azure Databricks 帳戶或工作區資源的存取權,Databricks 會提供下列支援:

Azure Databricks 組態設定檔

Azure Databricks 組態設定檔包含 Azure Databricks 需要驗證的設定和其他資訊。 Azure Databricks 組態設定檔會儲存在本機用戶端檔案中,以供要使用的工具、SDK、指令和應用程式使用。 標準組態設定檔的檔案命名為 .databrickscfg。 如需詳細資訊,請參閱 Azure Databricks 組態設定檔