OAuth ユーザー対マシン (U2M) 認証

"OAuth ユーザー対マシン (U2M)" 認証では、リアルタイムの人間のサインインと同意を使用して、ターゲットの Azure Databricks ユーザー アカウントを認証します。 ユーザーが正常にサインインし、OAuth 認証要求に同意すると、関与するツールまたは SDK に OAuth トークンが付与され、その時点からユーザーの代わりにトークンベースの認証が実行されます。 OAuth トークンの有効期間は 1 時間です。その後、関連するツールまたは SDK は、1 時間有効な新しいトークンを自動的に取得しようとします。

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

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

Azure Databricks での OAuth U2M 認証を実行するには、関与するツールまたは SDK に基づいて、コード内に以下を統合します。 コードで呼び出される Azure Databricks 操作によっては、必ずしも Azure Databricks アカウントの管理者である必要はありません。

環境

特定の Azure Databricks 認証の種類の環境変数をツールまたは SDK で使用するには、「Azure Databricks ツールまたは SDK でサポートされる認証の種類」や、ツールまたは SDK のドキュメントを参照してください。 「クライアント統合認証用の環境変数とフィールド」と「クライアント統合認証の方法と資格情報の既定の評価順序」も参照してください。

アカウントレベルの操作の場合は、次の環境変数を設定します。

  • DATABRICKS_HOST。Azure Databricks アカウント コンソール URL (https://accounts.azuredatabricks.net) の値に設定します。
  • DATABRICKS_ACCOUNT_ID

ワークスペースレベルの操作の場合は、次の環境変数を設定します。

プロファイル

.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>

ワークスペース レベルの操作の場合は、.databrickscfg ファイルに次の値を設定します。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net)。

[<some-unique-configuration-profile-name>]
host = <workspace-url>

Cli

Databricks CLI の場合は、次のオプションを指定して databricks auth login コマンドを実行します。

  • --host <account-console-url> --account-id <account-id> (Azure Databricks アカウント レベルの操作の場合)。
  • --host <workspace-url> (Azure Databricks ワークスペース レベルの操作の場合)。

このコマンドを実行した後、Web ブラウザーの指示に従って、Azure Databricks アカウントまたはワークスペースにログインします。

詳細については、「OAuth ユーザー対マシン (U2M) 認証」を参照してください。

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

Note

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

  • Python の場合、Databricks Connect for Databricks Runtime 13.1 以降。
  • Scala の場合、Databricks Connect for Databricks Runtime 13.3 LTS 以降。

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. [構成] ウィンドウで、[Configure Databricks](Databricks の構成) をクリックします。
  2. コマンド パレットDatabricks Host に、ワークスペースごとの URL (例: https://adb-1234567890123456.7.azuredatabricks.net) を入力し、Enter キーを押します。
  3. [OAuth (user to machine)]\(OAuth (ユーザー対マシン)\) を選択します。
  4. Web ブラウザーの画面の指示に従って Azure Databricks アカウントの認証を完了し、[all-apis]\(すべての API\) アクセスを許可します。

詳細については、「OAuth U2M 認証を設定する」を参照してください。

Terraform

Note

OAuth U2M 認証は、まだサポートされていません。

Python

アカウント レベルの操作の場合、Python コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、必要な OAuth トークンを、ご使用のマシン上のユーザーのホーム フォルダーのパス .databricks/token-cache.json に生成してキャッシュするように Databricks CLI に指示します。

databricks auth login --host <account-console-url> --account-id <account-id>

次のプレースホルダーを置き換えます。

  • <account-console-url> を値 https://accounts.azuredatabricks.net で置き換えます。 (これを Azure Databricks ワークスペース URL の値に設定しないでください。)
  • <account-id> を Azure Databricks アカウントの値で置き換えます。 「アカウント ID を特定する」を参照してください。

Note

host および account_id のフィールドが既に設定された、既存の Azure Databricks 構成プロファイルがある場合は、--host <account-console-url> --account-id <account-id>--profile <profile-name> で置き換えることができます。

auth login コマンドを実行した後で、アカウント ログイン URL とアカウント ID を Azure Databricks 構成プロファイルとして保存するように求められます。 プロンプトが表示されたら、.databrickscfg ファイルに新規または既存のプロファイルの名前を入力します。 .databrickscfg ファイル内に同じ名前の既存のプロファイルがあると上書きされます。

プロンプトが表示されたら、Web ブラウザーの画面の指示に従ってログインを完了します。 その後、次のいずれかのスニペットのような 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       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

ワークスペース レベルの操作の場合、Python コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、必要な OAuth トークンを、ご使用のマシン上のユーザーのホーム フォルダーのパス .databricks/token-cache.json に生成してキャッシュするように Databricks CLI に指示します。

databricks auth login --host <worskpace-url>

プレースホルダー <workspace-url> を対象の Azure Databricks の ワークスペース単位の URL で置き換えます (例: https://adb-1234567890123456.7.azuredatabricks.net)。

Note

host フィールドが既に設定された、既存の Azure Databricks 構成プロファイルがある場合は、--host <workspace-url>--profile <profile-name> で置き換えることができます。

auth login コマンドを実行した後で、ワークスペース URL を Azure Databricks 構成プロファイルとして保存するように求められます。 プロンプトが表示されたら、.databrickscfg ファイルに新規または既存のプロファイルの名前を入力します。 .databrickscfg ファイル内に同じ名前の既存のプロファイルがあると上書きされます。

プロンプトが表示されたら、Web ブラウザーの画面の指示に従ってログインを完了します。 その後、次のいずれかのスニペットのような Python コードを使用します。

既定の認証の場合:

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 = retrieveWorkspaceUrl())
# ...

Python を使用し、Databricks クライアント統合認証を実装した Databricks ツールや SDK を使用した認証については、以下を参照してください。

Java

アカウント レベルの操作の場合、Java コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、必要な OAuth トークンを、ご使用のマシン上のユーザーのホーム フォルダーのパス .databricks/token-cache.json に生成してキャッシュするように Databricks CLI に指示します。

databricks auth login --host <account-console-url> --account-id <account-id>

次のプレースホルダーを置き換えます。

  • <account-console-url> を値 https://accounts.azuredatabricks.net で置き換えます。 (これを Azure Databricks ワークスペース URL の値に設定しないでください。)
  • <account-id> を Azure Databricks アカウントの値で置き換えます。 「アカウント ID を特定する」を参照してください。

Note

host および account_id のフィールドが既に設定された、既存の Azure Databricks 構成プロファイルがある場合は、--host <account-console-url> --account-id <account-id>--profile <profile-name> で置き換えることができます。

auth login コマンドを実行した後で、アカウント ログイン URL とアカウント ID を Azure Databricks 構成プロファイルとして保存するように求められます。 プロンプトが表示されたら、.databrickscfg ファイルに新規または既存のプロファイルの名前を入力します。 .databrickscfg ファイル内に同じ名前の既存のプロファイルがあると上書きされます。

プロンプトが表示されたら、Web ブラウザーの画面の指示に従ってログインを完了します。 その後、次のいずれかのスニペットのような Java コードを使用します。

既定の認証の場合:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net です。

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

ワークスペース レベルの操作の場合、Java コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、必要な OAuth トークンを、ご使用のマシン上のユーザーのホーム フォルダーのパス .databricks/token-cache.json に生成してキャッシュするように Databricks CLI に指示します。

databricks auth login --host <worskpace-url>

プレースホルダー <workspace-url> を対象の Azure Databricks の ワークスペース単位の URL で置き換えます (例: https://adb-1234567890123456.7.azuredatabricks.net)。

Note

host フィールドが既に設定された、既存の Azure Databricks 構成プロファイルがある場合は、--host <workspace-url>--profile <profile-name> で置き換えることができます。

auth login コマンドを実行した後で、ワークスペース URL を Azure Databricks 構成プロファイルとして保存するように求められます。 プロンプトが表示されたら、.databrickscfg ファイルに新規または既存のプロファイルの名前を入力します。 .databrickscfg ファイル内に同じ名前の既存のプロファイルがあると上書きされます。

プロンプトが表示されたら、Web ブラウザーの画面の指示に従ってログインを完了します。 その後、次のいずれかのスニペットのような 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())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Java を使用し、Databricks クライアント統合認証を実装した Databricks ツールや SDK を使用した認証については、以下を参照してください。

Go

アカウント レベルの操作の場合、Go コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、必要な OAuth トークンを、ご使用のマシン上のユーザーのホーム フォルダーのパス .databricks/token-cache.json に生成してキャッシュするように Databricks CLI に指示します。

databricks auth login --host <account-login-url> --account-id <account-id>

次のプレースホルダーを置き換えます。

  • <account-console-url> を値 https://accounts.azuredatabricks.net で置き換えます。 (これを Azure Databricks ワークスペース URL の値に設定しないでください。)
  • <account-id> を Azure Databricks アカウントの値で置き換えます。 「アカウント ID を特定する」を参照してください。

Note

host および account_id のフィールドが既に設定された、既存の Azure Databricks 構成プロファイルがある場合は、--host <account-console-url> --account-id <account-id>--profile <profile-name> で置き換えることができます。

auth login コマンドを実行した後で、アカウント ログイン URL とアカウント ID を Azure Databricks 構成プロファイルとして保存するように求められます。 プロンプトが表示されたら、.databrickscfg ファイルに新規または既存のプロファイルの名前を入力します。 .databrickscfg ファイル内に同じ名前の既存のプロファイルがあると上書きされます。

プロンプトが表示されたら、Web ブラウザーの画面の指示に従ってログインを完了します。 その後、次のいずれかのスニペットのような Go コードを使用します。

既定の認証の場合:

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

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、Azure Databricks アカウント コンソール の URL は https://accounts.azuredatabricks.net です。

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

ワークスペース レベルの操作の場合、Go コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、必要な OAuth トークンを、ご使用のマシン上のユーザーのホーム フォルダーのパス .databricks/token-cache.json に生成してキャッシュするように Databricks CLI に指示します。

databricks auth login --host <worskpace-url>

プレースホルダー <workspace-url> を対象の Azure Databricks の ワークスペース単位の URL で置き換えます (例: https://adb-1234567890123456.7.azuredatabricks.net)。

Note

host フィールドが既に設定された、既存の Azure Databricks 構成プロファイルがある場合は、--host <workspace-url>--profile <profile-name> で置き換えることができます。

auth login コマンドを実行した後で、ワークスペース URL を Azure Databricks 構成プロファイルとして保存するように求められます。 プロンプトが表示されたら、.databrickscfg ファイルに新規または既存のプロファイルの名前を入力します。 .databrickscfg ファイル内に同じ名前の既存のプロファイルがあると上書きされます。

プロンプトが表示されたら、Web ブラウザーの画面の指示に従ってログインを完了します。 その後、次のいずれかのスニペットのような Go コードを使用します。

既定の認証の場合:

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

直接構成の場合 (retrieve プレースホルダーを独自の実装に置き換えて、コンソールまたは Azure KeyVault のような他の構成ストアから値を取得します)。 この場合、ホストは Azure Databricks のワークスペースごとの URL です (例: https://adb-1234567890123456.7.azuredatabricks.net)。

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

Go を使用し、Databricks クライアント統合認証を実装する Databricks ツールおよび SDK を使用した認証の詳細については、「Azure Databricks アカウントまたはワークスペースで Databricks SDK for Go を認証する」を参照してください。

OAuth ユーザー対マシン (U2M) 認証用のアクセス トークンを手動で生成して使用する

Databricks クライアント統合認証標準を実装する Azure Databricks ツールと SDK は、OAuth U2M 認証に必要な場合に、ユーザーに代わって Azure Databricks OAuth アクセス トークンを自動的に生成、更新、使用します。

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

手順 1: OAuth コード検証ツールとコード チャレンジのペアを生成する

OAuth U2M 認証のためのアクセス トークンを手動で生成して使用するには、まず、OAuth コード検証ツールと、コード検証ツールから導出される OAuth コード チャレンジが必要です。 コード チャレンジを後の手順 2 で使用して、OAuth 承認コードを生成します。 コード検証ツールと承認コードを後の手順 3 で使用して、OAuth アクセス トークンを生成します。

Note

エンコードされていないプレーンテキスト文字列をコード検証ツールとコード チャレンジで使用することは技術的には可能ですが、Databricks では、コード検証ツールとコード チャレンジの生成には OAuth 標準に従うように強くお勧めします。

具体的には、コード検証ツールは、A-Za-z0-9、句読文字 -._~ (ハイフン、ピリオド、アンダースコア、チルダ) のセットの文字を使用し、43 字から 128 字までの暗号のようにランダムな文字列にする必要があります。 コード チャレンジは、コード検証ツールの SHA256 ハッシュの Base64-URL エンコード文字列である必要があります。 詳細については、「承認要求」をご覧ください。

次の Python スクリプトを実行すると、一意のコード検証ツールとコード チャレンジのペアをすばやく生成できます。 このように生成されたコード検証ツールとコード チャレンジのペアは複数回再利用できますが、Databricks では、OAuth U2M 認証用のアクセス トークンを手動で生成するたびに、新しいコード検証ツールとコード チャレンジのペアを生成することをお勧めします。

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

手順 2: 承認コードを生成する

OAuth 承認コードを使用して、Azure Databricks OAuth アクセス トークンを生成します。 承認コードは、Azure Databricks OAuth アクセス トークンの生成に使用した直後に期限切れになります。 承認コードのスコープは、それを生成するレベルによって異なります。 承認コードは、次のように、Azure Databricks アカウント レベルまたはワークスペース レベルで生成できます。

  • ご使用の Azure Databricks ユーザー アカウントでアクセスできるアカウントとワークスペース内のアカウント レベルおよびワークスペース レベルの REST API を呼び出すには、アカウント レベルで承認コードを生成します。
  • ご使用のユーザー アカウントがアクセスできる 1 つのワークスペース内でのみ REST API を呼び出すには、そのワークスペースに対してのみワークスペース レベルで承認コードを生成します。

アカウント レベルの承認コードを生成する

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

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

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

  4. Web ブラウザーのアドレス バーで次の URL をブラウズします。 読みやすいように改行が追加されています。 URL にはこれらの改行を含めることはできません。

    この後の URL で次を置き換えます。

    • <account-id> を、コピーしたアカウント ID で置き換えます。
    • <redirect-url> を、ローカル マシンへのリダイレクト URL で置き換えます (例: http://localhost:8020)。
    • <state> を、承認コードの整合性の確認に使用できるプレーン テキスト文字列で置き換えます。
    • <code-challenge> を、手順 1 で生成したコード チャレンジで置き換えます。
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize
    ?client_id=databricks-cli
    &redirect_url=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. プロンプトが表示されたら、画面の指示に従って Azure Databricks アカウントにログインします。

  6. Web ブラウザーのアドレス バーで承認コードをコピーします。 承認コードは、URL の code=& 文字の間にあるすべての文字の文字列です。 たとえば、次の URL の承認コードは dcod...7fe6 です。

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    この承認コードの整合性を確認するには、この応答 URL の <state> 値が、要求 URL で指定した state 値と一致することを目視して確認する必要があります。 値が異なる場合は、侵害される可能性があるため、この承認コードを使用しないでください。

  7. アカウント レベルのアクセス トークンを手動で生成する」に進みます。

ワークスペース レベルの承認コードを生成する

  1. Web ブラウザーのアドレス バーで次の URL をブラウズします。 読みやすいように改行が追加されています。 URL にはこれらの改行を含めることはできません。

    この後の URL で次を置き換えます。

    • <databricks-instance> は、Azure Databricks のワークスペース インスタンスの名前 (例: adb-1234567890123456.7.azuredatabricks.net) に置き換えます。
    • <redirect-url> を、ローカル マシンへのリダイレクト URL で置き換えます (例: http://localhost:8020)。
    • <state> を、承認コードの整合性の確認に使用できるプレーン テキスト文字列で置き換えます。
    • <code-challenge> を、手順 1 で生成したコード チャレンジで置き換えます。
    https://<databricks-instance>/oidc/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  2. プロンプトが表示されたら、画面の指示に従って Azure Databricks ワークスペースにログインします。

  3. Web ブラウザーのアドレス バーで承認コードをコピーします。 承認コードは、URL の code=& 文字の間にあるすべての文字の文字列です。 たとえば、次の URL の承認コードは dcod...7fe6 です。

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    この承認コードの整合性を確認するには、この応答 URL の <state> 値が、要求 URL で指定した state 値と一致することを目視して確認する必要があります。 値が異なる場合は、侵害される可能性があるため、この承認コードを使用しないでください。

手順 3: 承認コードを使用して OAuth アクセス トークンを生成する

前の手順の OAuth 承認コードを使用し、Azure Databricks OAuth アクセス トークンを次のように生成します。

  • ご使用の Azure Databricks ユーザー アカウントでアクセスできるアカウントとワークスペース内のアカウント レベルおよびワークスペース レベルの REST API を呼び出すには、アカウント レベルの承認コードを使用してアカウント レベルでアクセス トークンを生成します。
  • ご使用のユーザー アカウントがアクセスできる 1 つのワークスペース内でのみ REST API を呼び出すには、ワークスペース レベルの承認コードを使用して、そのワークスペースに対してのみワークスペース レベルでアクセス トークンを生成します。

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

  1. curl などのクライアントと共にアカウント レベルの承認コードを使用して、アカウント レベルの OAuth アクセス トークンを生成します。 次の curl 呼び出しで、次のプレースホルダーを置き換えます。

    • <account-id> を、手順 2 のアカウント ID で置き換えます。
    • <redirect-url> を、手順 2 のリダイレクト URL で置き換えます。
    • <code-verifier> を、手順 1 で生成したコード検証ツールで置き換えます。
    • <authorization-code> を、手順 2 で生成したアカウント レベルの承認コードで置き換えます。
    curl --request POST \
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. 応答で、アカウント レベルの OAuth アクセス トークンをコピーします。 アクセス トークンは、access_token オブジェクト内のすべての文字の文字列です。 たとえば、次の応答のアクセス トークンは eyJr...Dkag です。

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    このアクセス トークンの有効期限は 1 時間です。 新しいアクセス トークンを生成するには、手順 1 からこの手順を繰り返します。

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

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

  1. curl などのクライアントと共にワークスペース レベルの承認コードを使用して、ワークスペース レベルの OAuth アクセス トークンを生成します。 次の curl 呼び出しで、次のプレースホルダーを置き換えます。

    • <databricks-instance> は、Azure Databricks のワークスペース インスタンスの名前 (例: adb-1234567890123456.7.azuredatabricks.net) に置き換えます。
    • <redirect-url> を、手順 2 のリダイレクト URL で置き換えます。
    • <code-verifier> を、手順 1 で生成したコード検証ツールで置き換えます。
    • <authorization-code> を、手順 2 で生成したワークスペース レベルの承認コードで置き換えます。
    curl --request POST \
    https://<databricks-instance>/oidc/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. 応答で、ワークスペース レベルの OAuth アクセス トークンをコピーします。 アクセス トークンは、access_token オブジェクト内のすべての文字の文字列です。 たとえば、次の応答のアクセス トークンは eyJr...Dkag です。

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    このアクセス トークンの有効期限は 1 時間です。 新しいアクセス トークンを生成するには、手順 1 からこの手順を繰り返します。

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

アカウント レベルまたはワークスペース レベルの OAuth アクセス トークンを使用し、アクセス トークンのスコープに応じて、Azure Databricks アカウント レベルの REST API とワークスペース レベルの REST API に対する認証を行います。 アカウント レベルの REST API を呼び出すには、ご使用の Azure Databricks ユーザー アカウントがアカウント管理者である必要があります。

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

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

  • <oauth-access-token> を、アカウント レベルの 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 要求の例

この例では、curlBearer 認証と共に使用して、指定されたワークスペースで使用可能なすべてのクラスターを一覧表示します。

  • <oauth-access-token> を、アカウント レベルまたはワークスペース レベルの OAuth アクセス トークンで置き換えます。
  • <databricks-instance> は、Azure Databricks のワークスペース インスタンスの名前 (例: adb-1234567890123456.7.azuredatabricks.net) に置き換えます。
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"