分享方式:


使用 OAuth (OAuth M2M) 透過服務主體對 Azure Databricks 的存取進行驗證

本文說明如何建立 Azure Databricks 服務主體,並使用它或 Microsoft Entra ID 受控服務主體向目標實體進行驗證。

注意

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

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

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

  1. 登入 Azure 入口網站

    注意

    使用的入口網站有所不同,取決於您的 Microsoft Entra ID 應用程式是在 Azure 公用雲端中執行,還是在國家雲端或主權雲端中執行。 如需詳細資訊,請參閱國家雲端

  2. 如果您有權存取多個租用戶、訂用帳戶或目錄,請按一下頂端功能表中的 [目錄 + 訂用帳戶] (帶篩選器的目錄) 圖示,切換至您要佈建服務主體的目錄。

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

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

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

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

  7. 按一下 [註冊]

  8. 在應用程式頁面 [概觀] 頁面的 [基本資訊] 區段,拷貝下列值:

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

    Azure 註冊的應用程式概觀

  9. 若要產生用戶端密碼,請在 [管理] 中按一下 [認證與祕密]。

    注意

    您可以使用此用戶端密碼來產生 Microsoft Entra ID 權杖,以使用 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 ID],請在 [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 ID],請在 [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. 按一下完成

若要從工作區建立服務主體的 OAuth 祕密,請執行以下操作:

  1. 作為工作區系統管理員,按一下頂端列中的使用者名稱,然後按一下 [設定]

  2. 按一下 [身分識別與存取] 索引標籤。

  3. 在 [服務主體] 旁邊,按一下 [管理]。

  4. 按一下服務主體的名稱,以開啟設定頁面。

  5. 按一下 [祕密] 索引標籤。

  6. 在 [OAuth 祕密] 下,按一下 [產生祕密]

  7. 複製顯示的 [祕密] 和 [用戶端識別碼],然後按一下 [完成]

    祕密在建立期間僅顯示一次。 用戶端識別碼與服務主體的應用程式識別碼相同。

注意

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

完成設定 OAuth M2M 驗證

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

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

若要執行 OAuth M2M 驗證,請根據參與工具或 SDK 將下列內容整合到您的程式碼中:

Environment

若要透過工具或 SDK 將環境變數用於特定 Azure Databricks 驗證類型,請參閱對 Azure Databricks 資源的存取進行驗證或者參閱工具或 SDK 的文件。 另請參閱用戶端統一驗證的環境變數和欄位用戶端統一驗證的預設方法

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

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

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

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

設定檔

使用 .databrickscfg 檔案中的下列欄位,建立或識別 Azure Databricks 組態設定檔。 如果您建立設定檔,請將預留位置取代為適當的值。 若要透過工具或 SDK 使用設定檔,請參閱對 Azure Databricks 資源的存取進行驗證或者參閱工具或 SDK 的文件。 另請參閱用戶端統一驗證的環境變數和欄位用戶端統一驗證的預設方法

針對帳戶層級作業,請在您的 .databrickscfg 檔案中設定下列值。 在此情況下,Azure Databricks 帳戶主控台網址為 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 個別工作區網址,例如 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 Connect 版本支援 OAuth M2M 驗證:

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

針對 Databricks Connect,您可以執行下列其中一項:

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

.databrickscfg 檔案中的值始終優先於環境變數。

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

VS Code

針對適用於 Visual Studio Code 的 Databricks 延伸項目,請執行下列動作:

  1. 按照本文的「設定檔」一節所述,為 Azure Databricks 工作區層級作業設定 .databrickscfg 檔案中的值。
  2. 在適用於 Visual Studio Code 的 Databricks 延伸項目的 [設定] 窗格中,按下 [設定 Databricks]
  3. 在 [命令選擇區] 中,針對 [Databricks 主機],輸入個別工作區網址,例如 https://adb-1234567890123456.7.azuredatabricks.net,然後按 Enter
  4. 在 [命令選擇區] 中,在您的網址清單中選取目標設定檔名稱。

如需詳細資料,請參閱適用於 Visual Studio Code 的 Databricks 延伸項目的驗證設定

Terraform

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

provider "databricks" {
  alias = "accounts"
}

針對直接組態 (將 retrieve 預留位置取代為您自己的實作,以從主控台或某些其他設定存放區 (例如 HashiCorp Vault) 擷取值。另請參閱 Vault 提供者)。 在此情況下,Azure Databricks 帳戶主控台網址為 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) 擷取值。另請參閱 Vault 提供者)。 在此情況下,主機是 Azure Databricks 個別工作區網址,例如 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 帳戶主控台網址為 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 個別工作區網址,例如 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 個別工作區網址,例如 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 帳戶主控台網址為 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 個別工作區網址,例如 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 帳戶或工作區驗證適用於 Go 的 Databricks SDK

手動產生和使用 OAuth M2M 驗證的存取權杖

實作 Databricks 用戶端統一驗證標準的 Azure Databricks 工具和 SDK 將根據 OAuth M2M 驗證的需要,代表您自動產生、重新整理和使用 Azure Databricks OAuth 存取權杖。

如果您必須手動產生、重新整理或或使用 Azure Databricks OAuth 存取權杖進行 OAuth M2M 驗證,請遵循本節中的指示。

步驟 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 受控服務主體已指派至的任何工作區中的 Databricks REST API。

  1. 身為帳戶管理員,登入帳戶主機

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

  3. 複製您的帳戶識別碼

  4. 透過將下列 URL 中的 <my-account-id> 取代為您複製的帳戶識別碼,來建構權杖端點 URL。

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. 使用 curl 等用戶端透過權杖端點 URL、Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的用戶端識別碼 (也稱為應用程式識別碼),以及為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體建立的 Azure Databricks OAuth 祕密,要求 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. 透過將 https://<databricks-instance> 取代為您的 Azure Databricks 部署的工作區 URL 來建構權杖端點 URL:

    https://<databricks-instance>/oidc/v1/token
    
  2. 使用 curl 等用戶端透過權杖端點 URL、Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體的用戶端識別碼 (也稱為應用程式識別碼),以及為 Azure Databricks 受控服務主體或 Microsoft Entra ID 受控服務主體建立的 Azure Databricks OAuth 祕密,要求 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

步驟 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'
    

其他資源