OAuth 機器對機器 (M2M) 驗證

OAuth 機器對計算機 (M2M) 驗證會使用自動化實體的認證(在此案例中為 Azure Databricks 受控服務主體或 Microsoft Entra ID(先前稱為 Azure Active Directory)受控服務主體)來驗證目標實體。

在 Azure Databricks 透過 OAuth M2M 驗證要求成功驗證目標服務主體之後,系統會將 Azure Databricks OAuth 令牌提供給參與工具或 SDK,以代表服務主體從該時間開始執行令牌型驗證。 Azure Databricks OAuth 令牌的存留期為 1 小時,之後所涉及的工具或 SDK 會進行自動背景嘗試,以取得也有效的新令牌一小時。

若要開始設定 OAuth M2M 驗證,請執行下列動作:

注意

您必須是 Azure Databricks 帳戶管理員,才能管理服務主體的 Azure Databricks OAuth 認證。

步驟 1:在 Azure 帳戶中建立 Microsoft Entra ID 服務主體

如果您想要將 Microsoft Entra ID 服務主體連結至 Azure Databricks 帳戶、工作區或兩者,請完成此步驟。 否則,請直接跳到步驟 2。

  1. 登入 Azure 入口網站

    注意

    要使用的入口網站會因 Microsoft Entra ID(先前稱為 Azure Active Directory)應用程式在 Azure 公用雲端或國家或主權雲端中執行而有所不同。 如需詳細資訊,請參閱 國家雲端

  2. 如果您有多個租使用者、訂用帳戶或目錄的存取權,請按兩下 頂端選單中的 [目錄 + 訂用帳戶] 圖示,切換至您要布建服務主體的目錄。

  3. 在 [ 搜尋資源、服務和檔] 中,搜尋並選取 [Microsoft Entra ID]。

  4. 按兩下 [+ 新增 ],然後選取 [ 應用程式註冊]。

  5. 針對 [ 名稱],輸入應用程式的名稱。

  6. 在 [支持的帳戶類型] 區段中,選取 [僅限此組織目錄中的帳戶](單一租使用者)。

  7. 按一下 [註冊] 。

  8. 在應用程式頁面的 [概觀 ] 頁面上的 [Essentials ] 區段中,複製下列值:

    • 應用程式 (用戶端) 識別碼
    • 目錄 (租用戶) 識別碼

    Azure 註冊的應用程式概觀

  9. 若要產生客戶端密碼,請在 [管理] 中,按兩下 [憑證與秘密]。

    注意

    您可以使用此用戶端密碼來產生 Microsoft Entra 識別符令牌,以向 Azure Databricks 驗證 Microsoft Entra ID 服務主體。 若要判斷 Azure Databricks 工具或 SDK 是否可以使用 Microsoft Entra ID 令牌,請參閱工具或 SDK 的檔。

  10. 在 [用戶端密碼] 索引標籤中,按一下 [新增用戶端密碼]

    新用戶端密碼

  11. 在 [ 新增客戶端密碼 ] 窗格中,針對 [描述] 輸入客戶端密碼的描述。

  12. 針對 [到期],選取客戶端密碼的到期時間週期,然後按兩下 [ 新增]。

  13. 將客戶端密碼的值複製並儲存在安全的地方,因為此客戶端密碼是應用程式的密碼。

步驟 2:將服務主體新增至 Azure Databricks 帳戶

只有當目標 Azure Databricks 工作區已啟用 身分識別同盟時,此步驟才能運作。 如果您的工作區未啟用身分識別同盟,請直接跳至步驟 3。

  1. 在 Azure Databricks 工作區中,按兩下頂端列中的使用者名稱,然後按兩下 [ 管理帳戶]。

    或者,在 直接移至您的 Azure Databricks 帳戶控制台 https://accounts.azuredatabricks.net

  2. 如果出現提示,請登入您的 Azure Databricks 帳戶。

  3. 在提要欄位中,按兩下 [ 使用者管理]。

  4. 按兩下 [ 服務主體] 索引標籤

  5. 按兩下 [ 新增服務主體]。

  6. 在 [管理] 底下,選擇 [Databricks 受管理] 或 [Microsoft Entra ID 受控]。

  7. 如果您選擇受管理的 Microsoft Entra 識別碼,請在 [Microsoft Entra 應用程式識別符] 底下,貼上步驟 1 中的應用程式 (用戶端) 識別符值。

  8. 輸入服務主體的 [名稱]。

  9. 按一下新增

  10. (選擇性)將帳戶層級許可權指派給服務主體:

    1. 在 [ 服務主體] 索引標籤上 ,按兩下服務主體的名稱。
    2. 在 [ 角色] 索引標籤上,切換為啟用或停用您想要此服務主體擁有的每個目標角色。
    3. 在 [ 許可權] 索引標籤上,授與您想要管理及使用此服務主體的任何 Azure Databricks 使用者、服務主體和帳戶群組角色的存取權。 請參閱 管理服務主體上的角色。

步驟 3:將服務主體新增至 Azure Databricks 工作區

如果您的工作區已啟用 身分識別同盟

  1. 在 Azure Databricks 工作區中,按兩下頂端列中的使用者名稱,然後按兩下 [設定]。
  2. 按兩下 [ 身分識別和存取 ] 索引標籤。
  3. 按兩下 [服務主體] 旁 [ 管理]。
  4. 按兩下 [ 新增服務主體]。
  5. 從步驟 2 選取您的服務主體,然後按兩下 [ 新增]。

直接跳到步驟 4。

如果您的工作區未針對身分識別同盟啟用:

  1. 在 Azure Databricks 工作區中,按兩下頂端列中的使用者名稱,然後按兩下 [設定]。
  2. 按兩下 [ 身分識別和存取 ] 索引標籤。
  3. 按兩下 [服務主體] 旁 [ 管理]。
  4. 按兩下 [ 新增服務主體]。
  5. 按一下 [新增] 。
  6. 在 [管理] 底下,選擇 [Databricks 受管理] 或 [Microsoft Entra ID 受控]。
  7. 如果您選擇受管理的 Microsoft Entra 識別碼,請在 [Microsoft Entra 應用程式識別符] 底下,貼上步驟 1 中的應用程式 (用戶端) 識別符值。
  8. 輸入新服務主體的一些 顯示名稱 ,然後按兩下 [ 新增]。

步驟 4:將工作區層級許可權指派給服務主體

  1. 如果工作區的管理控制台尚未開啟,請按兩下頂端列中的使用者名稱,然後按兩下 [設定]。
  2. 按兩下 [ 身分識別和存取 ] 索引標籤。
  3. 按兩下 [服務主體] 旁 [ 管理]。
  4. 按兩下服務主體的名稱,以開啟其設定頁面。
  5. 在 [ 組態] 索引標籤上,核取您希望服務主體為此工作區擁有之每個權利旁的方塊,然後按兩下 [ 更新]。
  6. 在 [ 許可權] 索引標籤上,授與您想要管理及使用此服務主體的任何 Azure Databricks 使用者、服務主體和群組的存取權。 請參閱 管理服務主體上的角色。

步驟 5:為服務主體建立 Azure Databricks OAuth 秘密

您必須先建立可用來產生 OAuth 存取令牌的 OAuth 秘密,才能使用 OAuth 向 Azure Databricks 進行驗證。 服務主體最多可以有五個 OAuth 秘密。 若要使用帳戶主控台建立服務主體的 OAuth 秘密:

  1. 在 登入 Azure Databricks 帳戶控制台 https://accounts.azuredatabricks.net
  2. 如果出現提示,請登入您的 Azure Databricks 帳戶。
  3. 在提要欄位中,按兩下 [ 使用者管理]。
  4. 按兩下 [ 服務主體] 索引標籤
  5. 按兩下服務主體的名稱。
  6. 在 [ 主體資訊 ] 索引標籤的 [OAuth 秘密 ] 區段中,按兩下 [ 產生秘密]。
  7. 在 [產生秘密] 對話框中,複製秘密值並將其儲存在安全的地方,因為此 OAuth 秘密是服務主體的密碼。
  8. 按一下完成

注意

若要讓服務主體使用叢集或 SQL 倉儲,您必須授與服務主體存取權。 請參閱 計算許可權管理 SQL 倉儲

完成 OAuth M2M 驗證的設定

若要完成 OAuth M2M 驗證的設定,您必須設定下列相關聯的環境變數、 .databrickscfg 欄位、Terraform 字段或 Config 欄位:

  • 針對帳戶作業或每個工作區 URL 的目標指定https://accounts.azuredatabricks.net為 的 Azure Databricks 主機,例如https://adb-1234567890123456.7.azuredatabricks.net工作區作業。
  • Azure Databricks 帳戶作業的 Azure Databricks 帳戶標識符。
  • 服務主體用戶端識別碼。
  • 服務主體秘密。

若要執行 OAuth M2M 驗證,請根據您的參與工具或 SDK,在您的程式代碼中整合下列專案:

Environment

若要搭配工具或 SDK 使用特定 Azure Databricks 驗證類型的環境變數,請參閱 Azure Databricks 工具或 SDK 或工具或 SDK 的文件支援的驗證類型。 另請參閱用戶端統一驗證的環境變數和欄位,以及用戶端統一驗證方法和認證的預設評估順序。

針對 帳戶層級作業,請設定下列環境變數:

  • DATABRICKS_HOST,設定為 Azure Databricks 帳戶主控台 URL, https://accounts.azuredatabricks.net
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

針對 工作區層級作業,請設定下列環境變數:

  • DATABRICKS_HOST,設定為 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

設定檔

使用檔案.databrickscfg中的下列欄位,建立或識別 Azure Databricks 組態配置檔。 如果您建立設定檔,請將佔位元取代為適當的值。 若要搭配工具或 SDK 使用設定檔,請參閱 Azure Databricks 工具或 SDK 或工具或 SDK 的檔支援的驗證類型。 另請參閱用戶端統一驗證的環境變數和欄位,以及用戶端統一驗證方法和認證的預設評估順序。

針對 帳戶層級作業,請在您的 .databrickscfg 檔案中設定下列值。 在此情況下,Azure Databricks 帳戶主控台 URL 為 https://accounts.azuredatabricks.net

[<some-unique-configuration-profile-name>]
host          = <account-console-url>
account_id    = <account-id>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

針對 工作區層級作業,請在您的 .databrickscfg 檔案中設定下列值。 在此情況下,主機是 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

[<some-unique-configuration-profile-name>]
host          = <workspace-url>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Cli

針對 Databricks CLI,請執行下列其中一項:

  • 如本文的「環境」一節中所指定,設定環境變數。
  • 如本文的「配置檔」一節所指定,設定檔案 .databrickscfg 中的值。

環境變數一律優先於檔案 .databrickscfg 中的值。

請參閱 OAuth 計算機對電腦 (M2M) 驗證

連線

注意

下列 Databricks 連線 版本支援 OAuth M2M 驗證:

  • 針對 Python,Databricks 連線 Databricks Runtime 14.0 和更新版本。
  • 針對 Scala,Databricks 連線 Databricks Runtime 13.3 LTS 和更新版本。 Databricks Runtime 13.3 LTS 和更新版本隨附於 Databricks 連線 的 Databricks SDK for Java,必須升級至適用於 Java 0.17.0 或更新版本之 Databricks SDK。

針對 Databricks 連線,您可以執行下列其中一項作業:

  • 如本文的「配置檔」一節中所指定,為 Azure Databricks 工作區層級作業設定檔案.databrickscfg中的值。 此外, cluster_id 將設定檔中的環境變數設定為每個 工作區URL,例如 https://adb-1234567890123456.7.azuredatabricks.net
  • 如本文的「環境」一節中所指定,設定 Azure Databricks 工作區層級作業 的環境變數。 此外,將 DATABRICKS_CLUSTER_ID 環境變數設定為每個 工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

檔案 .databrickscfg 中的值一律優先於環境變數。

若要使用檔案.databrickscfg中的這些環境變數或值來初始化 Databricks 連線 用戶端,請參閱下列其中一項:

Vs code

針對 Visual Studio Code 的 Databricks 擴充功能,請執行下列動作:

  1. 如本文的「配置檔」一節中所指定,為 Azure Databricks 工作區層級作業設定檔案.databrickscfg中的值。
  2. 在 Visual Studio Code Databricks 延伸模組的 [ 設定 ] 窗格中,按兩下 [ 設定 Databricks]。
  3. 在 [命令選擇區] 的 Databricks Host 中,輸入每個工作區的 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net,然後按 Enter
  4. 在命令 選擇區中,選取 URL 清單中的目標設定檔名稱。

如需詳細資訊,請參閱 VS Code Databricks 延伸模組的驗證設定。

Terraform

針對 帳戶層級作業,針對 預設驗證

provider "databricks" {
  alias = "accounts"
}

針對直接設定(將 retrieve 佔位元取代為您自己的實作,以從控制台或其他一些組態存放區擷取值,例如 HashiCorp Vault。另 請參閱保存庫提供者)。 在此情況下,Azure Databricks 帳戶主控台 URL 為 https://accounts.azuredatabricks.net

provider "databricks" {
  alias         = "accounts"
  host          = <retrieve-account-console-url>
  account_id    = <retrieve-account-id>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

針對 工作區層級作業,針對 預設驗證

provider "databricks" {
  alias = "workspace"
}

針對直接設定(將 retrieve 佔位元取代為您自己的實作,以從控制台或其他一些組態存放區擷取值,例如 HashiCorp Vault。另 請參閱保存庫提供者)。 在此情況下,主機是 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

provider "databricks" {
  alias         = "workspace"
  host          = <retrieve-workspace-url>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

如需使用 Databricks Terraform 提供者進行驗證的詳細資訊,請參閱 驗證

Python

針對 帳戶層級作業,請使用下列專案進行 默認驗證

from databricks.sdk import AccountClient

a = AccountClient()
# ...

針對直接設定,請使用下列命令,將佔位元取代 retrieve 為您自己的實作,以從控制台或其他一些組態存放區擷取值,例如 Azure KeyVault。 在此情況下,Azure Databricks 帳戶主控台 URL 為 https://accounts.azuredatabricks.net

from databricks.sdk import AccountClient

a = AccountClient(
  host          = retrieve_account_console_url(),
  account_id    = retrieve_account_id(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

針對 工作區層級作業,特別是 預設驗證

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

針對直接設定,請將 retrieve 佔位符取代為您自己的實作,以從控制台或其他一些組態存放區擷取值,例如 Azure KeyVault。 在此情況下,主機是 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host          = retrieve_workspace_url(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

如需使用 Python 和實 作 Databricks 用戶端整合驗證之 Databricks 工具和 SDK 進行驗證的詳細資訊,請參閱:

注意

適用於 Visual Studio Code 的 Databricks 延伸模組使用 Python,但尚未實作 OAuth M2M 驗證。

Java

針對 工作區層級作業,針對 預設驗證

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

針對直接設定(將 retrieve 佔位元取代為您自己的實作,以從控制台或其他一些組態存放區擷取值,例如 Azure KeyVault)。 在此情況下,主機是 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

如需使用 Java 和實 作 Databricks 用戶端整合驗證之 Databricks 工具和 SDK 進行驗證的詳細資訊,請參閱:

Go

針對 帳戶層級作業,針對 預設驗證

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

針對直接設定(將 retrieve 佔位元取代為您自己的實作,以從控制台或其他一些組態存放區擷取值,例如 Azure KeyVault)。 在此情況下,Azure Databricks 帳戶主控台 URL 為 https://accounts.azuredatabricks.net

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:         retrieveAccountConsoleUrl(),
  AccountId:    retrieveAccountId(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

針對 工作區層級作業,針對 預設驗證

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

針對直接設定(將 retrieve 佔位元取代為您自己的實作,以從控制台或其他一些組態存放區擷取值,例如 Azure KeyVault)。 在此情況下,主機是 Azure Databricks 個別工作區 URL,例如 https://adb-1234567890123456.7.azuredatabricks.net

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

如需使用 Go 和實 作 Databricks 用戶端整合驗證之 Databricks 工具和 SDK 進行驗證的詳細資訊,請參閱 使用 Azure Databricks 帳戶或工作區驗證 Databricks SDK for Go。

手動產生和使用 OAuth 機器對機器的存取令牌 (M2M) 驗證

作 Databricks 用戶端統一驗證 標準的 Azure Databricks 工具和 SDK,將會自動產生、重新整理和使用 Azure Databricks OAuth 存取令牌,以代表您進行 OAuth M2M 驗證。

如果基於某些原因,您必須手動產生、重新整理或使用適用於 OAuth M2M 驗證的 Azure Databricks OAuth 存取令牌,請遵循本節中的指示。

步驟 1:建立服務主體和 OAuth 秘密

如果您還沒有 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體及其對應的 Azure Databricks OAuth 秘密,請完成本文開頭的步驟 1-5 來建立它們。

步驟 2:手動產生存取令牌

您可以使用 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的用戶端識別符和 Azure Databricks OAuth 秘密,要求 Azure Databricks OAuth 存取令牌向帳戶層級 REST API 和工作區層級 REST API 進行驗證。 令牌將在一小時內到期。 您必須在到期后要求新的 Azure Databricks OAuth 存取令牌。 OAuth 存取令牌的範圍取決於您建立令牌的來源層級。 您可以在帳戶層級或工作區層級建立令牌,如下所示:

  • 若要在 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體可存取的帳戶和工作區內呼叫帳戶層級和工作區層級 REST API, 請在帳戶層級手動產生存取令牌。
    • 若要在 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體只能存取的一個工作區內呼叫 REST API,您可以 僅針對該工作區在工作區層級 手動產生存取令牌。

手動產生帳戶層級存取令牌

從帳戶層級建立的 Azure Databricks OAuth 存取令牌,可用於帳戶中的 Databricks REST API,以及已指派 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的任何工作區。

  1. 身為帳戶管理員,登入 帳戶控制台

  2. 按兩下右上角使用者名稱旁邊的向下箭號。

  3. 複製您的帳戶 標識碼

  4. 使用您複製的帳戶標識碼取代 <my-account-id> 下列 URL,以建構令牌端點 URL。

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. 使用用戶端,例如 curl ,透過令牌端點 URL 要求 Azure Databricks OAuth 存取令牌、Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的用戶端標識符(也稱為應用程式標識符),以及您為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體建立的 Azure Databricks OAuth 秘密。 all-apis範圍會要求 Azure Databricks OAuth 存取令牌,此令牌可用來存取 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體已授與存取權的所有 Databricks REST API。

    • 將取代 <token-endpoint-URL> 為上述的令牌端點 URL。
    • 將 取代 <client-id> 為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的用戶端識別碼,也稱為應用程式標識碼。
    • 將 取代 <client-secret> 為您為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體所建立的 Azure Databricks OAuth 秘密。
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    這會產生類似下列的回應:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "scope": "all-apis",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    access_token從回應複製 。

    Azure Databricks OAuth 存取令牌將在一小時內到期。 您必須在到期後手動產生新的 Azure Databricks OAuth 存取令牌。

  6. 直接跳到 步驟 3:呼叫 Databricks REST API

手動產生工作區層級存取令牌

從工作區層級建立的 Azure Databricks OAuth 存取令牌只能存取該工作區中的 REST API,即使 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體是帳戶管理員或屬於其他工作區的成員也一樣。

  1. 使用 Azure Databricks 部署的工作區 URL 取代 https://<databricks-instance>來建構令牌端點 URL

    https://<databricks-instance>/oidc/v1/token
    
  2. 使用用戶端,例如 curl ,透過令牌端點 URL 要求 Azure Databricks OAuth 存取令牌、Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的用戶端標識符(也稱為應用程式標識符),以及您為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體建立的 Azure Databricks OAuth 秘密。 all-apis範圍會要求 Azure Databricks OAuth 存取令牌,此令牌可用來存取 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體已授與您要求令牌之工作區內所有 Databricks REST API 的存取權。

    • 將取代 <token-endpoint-URL> 為上述的令牌端點 URL。

    • 將 取代 <client-id> 為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的用戶端識別碼,也稱為應用程式標識碼。

    • 將 取代 <client-secret> 為您為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體所建立的 Azure Databricks OAuth 秘密。

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      

      這會產生類似下列的回應:

      {
        "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
        "scope": "all-apis",
        "token_type": "Bearer",
        "expires_in": 3600
      }
      

      access_token從回應複製 。

      Azure Databricks OAuth 存取令牌將在一小時內到期。 您必須在到期後手動產生新的 Azure Databricks OAuth 存取令牌。

步驟 3:呼叫 Databricks REST API

您現在可以使用 Azure Databricks OAuth 存取令牌向 Azure Databricks 帳戶層級 REST API 和 工作區層級 REST API 進行驗證。 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體必須是帳戶管理員,才能呼叫帳戶層級 REST API。

您可以使用驗證在標頭 Bearer 中包含令牌。 您可以使用此方法搭配 curl 或您所建置的任何用戶端。

範例帳戶層級 REST API 要求

此範例會使用 Bearer 驗證來取得與帳戶相關聯的所有工作區清單。

  • 將 取代 <oauth-access-token> 為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的 Azure Databricks OAuth 存取令牌。
  • 以您的帳號識別碼取代 <account-id>
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces'

範例工作區層級 REST API 要求

此範例會使用 Bearer 驗證來列出指定工作區中的所有可用叢集。

  • 將 取代 <oauth-access-token> 為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的 Azure Databricks OAuth 存取令牌。

  • <workspace-URL>取代為您的基底工作區 URL,其表單類似 adb-1111111111111111.1.azuredatabricks.net

    export OAUTH_TOKEN=<oauth-access-token>
    
    curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
    'https://<workspace-URL>/api/2.0/clusters/list'