OAuth マシン間 (M2M) 認証

"OAuth マシン間 (M2M)" 認証では、自動化されたエンティティ (この場合は、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID (旧称 Azure Active Directory) マネージド サービス プリンシパル) の資格情報を使って、ターゲット エンティティを認証します。

Azure Databricks で OAuth M2M 認証要求を通じてターゲット サービス プリンシパルの認証に成功すると、関与するツールまたは SDK に Azure Databricks OAuth トークンが付与され、その時点以降、サービス プリンシパルに代わってトークン ベースの認証が実行されます。 Azure Databricks OAuth トークンの有効期間は 1 時間です。その後、関連するツールまたは SDK は、同じく 1 時間有効な新しいトークンの取得をバックグラウンドで自動的に試行します。

OAuth M2M 認証の構成を開始するには、次の手順を行います。

Note

サービス プリンシパル用の Azure Databricks OAuth 資格情報を管理するには、Azure Databricks アカウント管理者である必要があります。

手順 1: Azure アカウントに Microsoft Entra ID サービス プリンシパルを作成する

Microsoft Entra ID サービス プリンシパルを Azure Databricks アカウント、ワークスペース、またはその両方にリンクする場合は、この手順を完了してください。 そうでない場合は、手順 2 へスキップしてください。

  1. Azure portal にサインインします。

    Note

    使用するポータルは、Microsoft Entra ID (旧称 Azure Active Directory) アプリケーションが Azure パブリック クラウド、各国のクラウドまたはソブリン クラウドのいずれで実行されるかによって異なります。 詳細については、各国のクラウドに関する記事をご覧ください。

  2. 複数のテナント、サブスクリプション、またはディレクトリにアクセスできる場合は、上部のメニューの [ディレクトリ + サブスクリプション] (フィルター付きのディレクトリ) アイコンをクリックして、サービス プリンシパルをプロビジョニングするディレクトリに切り替えます。

  3. [リソース、サービス、ドキュメントの検索] で「Microsoft Entra ID」を検索して選びます。

  4. [+ 追加] をクリックし、[アプリの登録] を選びます。

  5. [名前] にアプリケーションの名前を入力します。

  6. [サポートされているアカウントの種類] セクションで、[この組織ディレクトリのみに含まれるアカウント (シングル テナント)] を選択します。

  7. [登録] をクリックします。

  8. アプリケーション ページの [概要] ページの [要点] セクションで、次の値をコピーします。

    • アプリケーション (クライアント) ID
    • ディレクトリ (テナント) ID

    Azure 登録済みアプリの概要

  9. クライアント シークレットを生成するには、[管理] 内で、[証明書とシークレット] をクリックします。

    Note

    このクライアント シークレットを使って、Azure Databricks で Microsoft Entra ID サービス プリンシパルを認証するための Microsoft Entra ID トークンを生成します。 Azure Databricks ツールまたは SDK が Microsoft Entra ID トークンを使用できるかどうかを確認するには、ツールまたは SDK のドキュメントを参照してください。

  10. [クライアント シークレット] タブで、[新しいクライアント シークレット] をクリックします。

    新しいクライアント シークレット

  11. [クライアントシークレットの追加] ウィンドウの [説明] に、クライアント シークレットの説明を入力します。

  12. [有効期限] で、クライアント シークレットの有効期限の期間を選択して、[追加] をクリックします。

  13. クライアント シークレットの をコピーし、安全な場所に保存します。このクライアント シークレットはアプリケーションのパスワードです。

手順 2: サービス プリンシパルを Azure Databricks アカウントに追加する

この手順は、ターゲットの Azure Databricks ワークスペースで ID フェデレーションが有効な場合にのみ機能します。 ワークスペースで ID フェデレーションが有効になっていない場合は、手順 3 に進んでください。

  1. Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[アカウントを管理する] をクリックします。

    または、https://accounts.azuredatabricks.net で Azure Databricks アカウント コンソールに直接移動します。

  2. ダイアログが表示されたら、Azure Databricks アカウントにサインインします。

  3. サイドバーで、[ユーザー管理] をクリックします。

  4. [サービス プリンシパル] タブをクリックします。

  5. [サービス プリンシパルの追加] をクリックします。

  6. [管理] で、[Databricks managed] (Databricks で管理) または [Microsoft Entra ID managed] (Microsoft Entra ID で管理) を選びます。

  7. [Microsoft Entra ID マネージド] を選択した場合は、[Microsoft Entra アプリケーション ID] に、手順 1 のアプリケーション (クライアント) ID の値を貼り付けます。

  8. サービス プリンシパルの名前を入力します。

  9. [追加] をクリックします。

  10. (省略可能) サービス プリンシパルにアカウント レベルのアクセス許可を割り当てます。

    1. [サービス プリンシパル] タブで、サービス プリンシパルの名前をクリックします。
    2. [ロール] タブで、このサービス プリンシパルに必要な各ターゲット ロールを有効または無効に切り替えます。
    3. [アクセス許可] タブで、このサービス プリンシパルを管理して使用する Azure Databricks ユーザー、サービス プリンシパル、アカウント グループ ロールにアクセス権を付与します。 「サービス プリンシパルのロールを管理する」を参照してください。

手順 3: サービス プリンシパルを Azure Databricks ワークスペースに追加する

ワークスペースで ID フェデレーションが有効になっている場合は、次のようにします。

  1. Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[設定] をクリックします。
  2. [ID およびアクセス管理] タブをクリックします。
  3. [サービス プリンシパル] の横にある [管理] をクリックします。
  4. [サービス プリンシパルの追加] をクリックします。
  5. 手順 2 のサービス プリンシパルを選択し、[追加] をクリックします。

手順 4 に進んでください。

ワークスペースで ID フェデレーションが有効になっていない場合は、次のようにします。

  1. Azure Databricks ワークスペースの上部バーでユーザー名をクリックし、[設定] をクリックします。
  2. [ID およびアクセス管理] タブをクリックします。
  3. [サービス プリンシパル] の横にある [管理] をクリックします。
  4. [サービス プリンシパルの追加] をクリックします。
  5. [新規追加] をクリックします。
  6. [管理] で、[Databricks managed] (Databricks で管理) または [Microsoft Entra ID managed] (Microsoft Entra ID で管理) を選びます。
  7. [Microsoft Entra ID マネージド] を選択した場合は、[Microsoft Entra アプリケーション ID] に、手順 1 のアプリケーション (クライアント) ID の値を貼り付けます。
  8. 新しいサービス プリンシパルの [表示名] を入力し、[追加] をクリックします。

手順 4: サービス プリンシパルにワークスペース レベルのアクセス許可を割り当てる

  1. ワークスペースの管理コンソールがまだ開いていない場合は、上部のバーでユーザー名をクリックし、[設定] をクリックします。
  2. [ID およびアクセス管理] タブをクリックします。
  3. [サービス プリンシパル] の横にある [管理] をクリックします。
  4. サービス プリンシパルの名前をクリックして設定ページを開きます。
  5. [構成] タブで、このワークスペースに対してサービス プリンシパルに付与する各エンタイトルメントの横にあるボックスを有効にし、[更新] をクリックします。
  6. [アクセス許可] タブで、このサービス プリンシパルを管理して使用する Azure Databricks ユーザー、サービス プリンシパル、グループにアクセス権を付与します。 「サービス プリンシパルのロールを管理する」を参照してください。

手順 5: サービス プリンシパルの Azure Databricks OAuth シークレットを作成する

OAuth を使用して Azure Databricks への認証を行う前に、まず OAuth アクセス トークンの生成に使用することができる OAuth シークレットを作成する必要があります。 サービス プリンシパルには、最大 5 つの OAuth シークレットを含めることができます。 アカウント コンソールを使用してサービス プリンシパルの OAuth シークレットを作成するには:

  1. https://accounts.azuredatabricks.net で Azure Databricks アカウント コンソール にサインインします。
  2. ダイアログが表示されたら、Azure Databricks アカウントにサインインします。
  3. サイドバーで、[ユーザー管理] をクリックします。
  4. [サービス プリンシパル] タブをクリックします。
  5. サービス プリンシパルの名前をクリックします。
  6. [プリンシパル情報] タブの [OAuth シークレット] セクションで、[シークレットの生成] をクリックします。
  7. この OAuth シークレットはサービス プリンシパルのパスワードであるため、[シークレットの生成] ダイアログで、 シークレット の値をコピーして安全な場所に保存します。
  8. [Done] をクリックします。

Note

サービス プリンシパルでクラスターまたは SQL ウェアハウスを使用できるようにするには、それらへのアクセス権をサービス プリンシパルに付与する必要があります。 「コンピューティングのアクセス許可」または「SQL ウェアハウスを管理する」を参照してください。

OAuth M2M 認証の構成を完了する

OAuth M2M 認証の構成を完了するには、次の関連する環境変数、.databrickscfg フィールド、Terraform フィールド、または Config フィールドを設定する必要があります。

  • Azure Databricks ホスト。アカウント操作の場合は https://accounts.azuredatabricks.net として指定し、ワークスペース操作の場合は、ターゲット ワークスペースごとの URL として指定します (例: https://adb-1234567890123456.7.azuredatabricks.net)。
  • Azure Databricks アカウント ID (Azure Databricks アカウント操作の場合)。
  • サービス プリンシパルのクライアント ID。
  • サービス プリンシパル シークレット。

OAuth M2M 認証を実行するには、関与するツールまたは SDK に基づいて、コード内に以下を統合します。

環境

特定の Azure Databricks 認証の種類の環境変数をツールまたは SDK で使用するには、「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 構成プロファイルを作成または識別します 。 プロファイルを作成する場合は、プレースホルダーを適切な値に置き換えます。 詳細については、次のセクションと「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) 認証」も参照してください。

のインスタンスに接続するときには、

Note

OAuth M2M 認証は、次の Databricks Connect バージョンでサポートされています。

  • Python の場合、Databricks Connect for Databricks Runtime 14.0 以降。
  • Scala の場合、Databricks Connect for Databricks Runtime 13.3 LTS 以降。 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 環境変数をワークスペースごとの URL に設定します (例: https://adb-1234567890123456.7.azuredatabricks.net)。
  • この記事の「環境」セクションで指定されているように、Azure Databricks ワークスペース レベルの操作の環境変数を設定します。 また、DATABRICKS_CLUSTER_ID 環境変数をワークスペースごとの URL に設定します (例: 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 Host に、ワークスペースごとの URL (例: https://adb-1234567890123456.7.azuredatabricks.net) を入力し、Enter キーを押します。
  4. コマンド パレットで、URL の一覧からターゲット プロファイルの名前を選択します。

詳細については、「Visual Studio Code 用 Databricks 拡張機能の認証設定」を参照してください。

Terraform

アカウントレベルの操作の場合 (既定の認証の場合):

provider "databricks" {
  alias = "accounts"
}

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは HashiCorp Vault などの他の構成ストアから値を取得します。Vault Provider もご覧ください)。 この場合、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 などの他の構成ストアから値を取得します。Vault Provider もご覧ください)。 この場合、ホストは 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 での認証の詳細については、以下を参照してください。

Note

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 は、OAuth M2M 認証に必要な場合に、ユーザーに代わって Azure Databricks OAuth アクセス トークンを自動的に生成、更新、使用します。

何らかの理由で、OAuth M2M 認証に Azure Databricks OAuth アクセス トークンを手動で生成、更新、または使用する必要がある場合は、このセクションの手順に従ってください。

手順 1: サービス プリンシパルと OAuth シークレットを作成する

Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルと、それに対応する Azure Databricks OAuth シークレットをまだお持ちでない場合は、この記事の冒頭の手順 1 から 5 を実行して作成します。

手順 2: アクセス トークンを手動で生成する

Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルのクライアント ID と Azure Databricks OAuth シークレットを使用して、アカウント レベルの REST API とワークスペース レベルの REST API の両方に対する認証を行うための Azure Databricks OAuth アクセス トークンを要求できます。 トークンは 1 時間で期限切れになります。 期限が切れたら、新しい Azure Databricks OAuth アクセス トークンを要求する必要があります。 OAuth アクセス トークンのスコープは、そのトークンの作成元のレベルによって異なります。 トークンは、次のように、アカウント レベルまたはワークスペース レベルのいずれかで作成できます。

アカウント レベルのアクセス トークンを手動で生成する

アカウント レベルから作成された Azure Databricks OAuth アクセス トークンは、そのアカウント内、および Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルが割り当てられている任意のワークスペース内の Databricks REST API に対して使用できます。

  1. アカウント管理者として、アカウント コンソールにログインします。

  2. 右上隅のユーザー名の横にある下矢印をクリックします。

  3. お使いのアカウント ID をコピーします。

  4. 次の URL の <my-account-id> をコピーしたアカウント ID に置き換えて、トークン エンドポイントの URL を作成します。

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. curl などのクライアントを使用して、トークン エンドポイント URL、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルのクライアント ID (アプリケーション ID とも呼ばれます)、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパル用に作成した Azure Databricks OAuth シークレットを含む Azure Databricks OAuth シークレットを要求します。 all-apis スコープは、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルにアクセス権が付与されているすべての Databricks REST API へのアクセスに使用できる Azure Databricks OAuth アクセス トークンを要求します。

    • <token-endpoint-URL> を、上記のトークン エンドポイント URL に置き換えます。
    • <client-id> を、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルのクライアント ID (アプリケーション 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 アクセス トークンの有効期限は 1 時間です。 期限が切れたら、新しい Azure Databricks OAuth アクセス トークンを手動で生成する必要があります。

  6. 手順 3: Databricks REST API を呼び出す」に進みます。

ワークスペース レベルのアクセス トークンを手動で生成する

Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルがアカウント管理者または他のワークスペースのメンバーであったとしても、ワークスペース レベルから作成された Azure Databricks OAuth アクセス トークンでアクセスできるのは、そのワークスペース内の REST API だけです。

  1. https://<databricks-instance> を Azure Databricks のデプロイのワークスペース URL に置き換えて、トークン エンドポイント URL を作成します。

    https://<databricks-instance>/oidc/v1/token
    
  2. curl などのクライアントを使用して、トークン エンドポイント URL、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルのクライアント ID (アプリケーション ID とも呼ばれます)、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパル用に作成した Azure Databricks OAuth シークレットを含む Azure Databricks OAuth シークレットを要求します。 all-apis スコープは、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルに、トークンの要求元のワークスペース内へのアクセスが許可されているすべての Databricks REST API にアクセスするために使用できる Azure Databricks OAuth アクセス トークンを要求します。

    • <token-endpoint-URL> を、上記のトークン エンドポイント URL に置き換えます。

    • <client-id> を、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルのクライアント ID (アプリケーション 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 アクセス トークンの有効期限は 1 時間です。 期限が切れたら、新しい Azure Databricks OAuth アクセス トークンを手動で生成する必要があります。

手順 3: Databricks REST API を呼び出す

Azure Databricks OAuth アクセス トークンを使用して、Azure Databricks アカウント レベルの REST API とワークスペース レベルの REST API に対して認証できるようになりました。 アカウント レベルの REST API を呼び出すには、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルがアカウント管理者である必要があります。

Bearer 認証を使用して、トークンをヘッダーに含めることができます。 この方法は、curl または構築する任意のクライアントで使用できます。

アカウント レベルの REST API 要求の例

この例では、Bearer 認証を使って、アカウントに関連付けられているすべてのワークスペースの一覧を取得します。

  • <oauth-access-token> を、Azure Databricks マネージド サービス プリンシパルまたは Microsoft Entra ID マネージド サービス プリンシパルの Azure Databricks OAuth アクセス トークンに置き換えます。
  • <account-id> を、アカウント 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> を、adb-1111111111111111.1.azuredatabricks.net のような形式のベース ワークスペース URL に置き換えます。

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