OAuth (OAuth U2M) を使用して、ユーザーアカウントで Databricks へのアクセスを認証します。
Databricks は、OAuth ユーザー間 (U2M) 認証を使用して、ユーザーに代わって Databricks アカウントとワークスペース リソースへの CLI と API アクセスを有効にします。 ユーザーが最初にサインインして OAuth 認証要求に同意すると、参加しているツールまたは SDK に OAuth トークンが提供され、その時点からユーザーに代わってトークンベースの認証が実行されます。 OAuth トークンの有効期間は 1 時間で、その後、関係するツールまたは SDK は、1 時間有効な新しいトークンを取得するための自動バックグラウンド試行を行います。
Databricks では、OAuth を使用してユーザー アカウントのアクセスを認証する 2 つの方法がサポートされています。
Databricks 統合クライアント認証サポートを使用して、ほとんどの場合自動的に行われます。 特定の Databricks SDK (Databricks Terraform SDK など) とツールを使用している場合は、この簡略化されたアプローチを使用します。 サポートされているツールと SDK については、「 Databricks 統合クライアント認証」を参照してください。
手動で、OAuth コード検証ツール/チャレンジのペアと認証コードを直接生成し、それらを使用して、構成で提供する初期 OAuth トークンを作成します。 Databricks 統合クライアント認証でサポートされている API を使用していない場合は、この方法を使用します。 詳細については、「ユーザー対マシン (U2M) 認証用のアクセストークンを手動で生成して使用する」OAuthを参照してください。
Databricks 統合クライアント認証による U2M 認証
注:
認証の設定を開始する前に、ワークスペースオブジェクトに対する特定のカテゴリの操作の ACL アクセス許可を確認し、アカウントに必要なアクセスレベルがあるかどうかを判断します。 詳細については、「 アクセス制御リスト」を参照してください。
Databricks SDK と統合クライアント認証をサポートするツールを使用して OAuth U2M 認証を実行するには、コード内に以下を統合します。
ツールまたは SDK で特定の Databricks 認証の種類の環境変数を使用するには、「 Databricks リソースへのアクセスを認証 する」またはツールまたは SDK のドキュメントを参照してください。 クライアント統合認証の環境変数とフィールド、およびクライアント統合認証のデフォルト方式も参照してください。
アカウント レベルの操作の場合は、次の環境変数を設定します。
DATABRICKS_HOST
:DatabricksアカウントのコンソールURLhttps://accounts.cloud.databricks.com
の値に設定します。DATABRICKS_ACCOUNT_ID
ワークスペース レベルの操作の場合は、次の環境変数を設定します。
DATABRICKS_HOST
で、Databricks ワークスペースの URL の値 (例:https://dbc-a1b2345c-d6e7.cloud.databricks.com
) に設定します。
Databricks 構成プロファイル を作成または識別し、 .databrickscfg
ファイルに次のフィールドを含めます。 プロファイルを作成する場合は、プレースホルダを適切な値に置き換えます。 ツールまたは SDK でプロファイルを使用するには、「 Databricks リソースへのアクセスを認証 する」またはツールまたは SDK のドキュメントを参照してください。 クライアント統合認証の環境変数とフィールド、およびクライアント統合認証のデフォルト方式も参照してください。
アカウント レベルの操作の場合は、 .databrickscfg
ファイルに次の値を設定します。 この場合、Databricks アカウント コンソールの URL はhttps://accounts.cloud.databricks.com
です。
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
ワークスペース レベルの操作の場合は、 .databrickscfg
ファイルに次の値を設定します。 この場合、ホストは Databricks ワークスペース URLです (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
[<some-unique-configuration-profile-name>]
host = <workspace-url>
Databricks CLI の場合は、次のオプションを指定して databricks auth login
コマンドを実行します。
Databricksアカウント レベルの操作の場合、
--host <account-console-url> --account-id <account-id>
。Databricksワークスペース レベルの操作の場合、
--host <workspace-url>
。
このコマンドを実行した後、Web ブラウザーの指示に従って、Databricks アカウントまたはワークスペースにログインします。
詳細については、「 Databricks CLI を使用した OAuth U2M 認証」を参照してください。
注:
OAuth U2M 認証は、次の Databricks Connect バージョンでサポートされています。
Python の場合、Databricks Connect for Databricks Runtime 13.1 以降。
Scala の場合、Databricks Connect for Databricks Runtime 13.3 LTS 以降。
Databricks Connect では、次のいずれかを実行できます。
この記事の「プロファイル」セクションで指定されているように、Databricksワークスペース レベルの操作の値を
.databrickscfg
ファイルに設定します。 また、プロファイル内のcluster_id
環境変数をワークスペース インスタンス URL (例:https://dbc-a1b2345c-d6e7.cloud.databricks.com
) に設定します。この記事の「環境」セクションで指定されているように、Databricksワークスペース レベルの操作の環境変数を設定します。 また、
DATABRICKS_CLUSTER_ID
環境変数をワークスペース インスタンス URL (例:https://dbc-a1b2345c-d6e7.cloud.databricks.com
) に設定します。
.databrickscfg
ファイル内の値は、常に環境変数よりも優先されます。
.databrickscfg
ファイル内のこれらの環境変数または値を使用して Databricks Connect クライアントを初期化するには、次のいずれかを参照してください。
Python の場合は、「 Python の接続プロパティの構成」を参照してください。
Scala については、「 Scala の接続プロパティの構成」を参照してください。
Visual Studio Code の Databricks 拡張機能の場合は、次の操作を行います。
[ 構成 ] ウィンドウで、 [ Databricks の構成] をクリックします。
コマンド パレットの [Databricks Host] に、ワークスペースの URL (例:
https://dbc-a1b2345c-d6e7.cloud.databricks.com
) を入力し、Enter
を押します。[OAuth (ユーザーからマシンへ)] を選択します。
Web ブラウザー内の画面の指示に従って、Databricks アカウントでの認証を完了し、 すべての API アクセスを許可します。
詳細については、「 Databricks CLI を使用した OAuth U2M 認証」を参照してください。
アカウント レベルとワークスペース レベルのどちらの操作でも、Terraform 構成を適用する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。このコマンドは、マシン上のユーザーのホームフォルダー内のパスDatabricksCLI に必要なOAuth トークンを生成してキャッシュするように.databricks/token-cache.json
に指示します。
Databricks アカウント レベルの操作の構成
databricks auth login --host <account-console-url> --account-id <account-id>
次のプレースホルダーを置き換えます。
<account-console-url>
をhttps://accounts.cloud.databricks.com
の値に置き換えます。(これをDatabricksワークスペースURLの値に設定することはできません。)<account-id>
を Databricks アカウントの値に置き換えます。 「アカウント ID を見つける」を参照してください。
注:
既存の Databricks 構成プロファイル に host
フィールドと account_id
フィールドが既に設定されている場合は、 --host <account-console-url> --account-id <account-id>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、アカウントのログイン URL とアカウント ID を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、以下のスニペットのいずれかのようなTerraformコードを使用します。
デフォルトの認証の場合:
provider "databricks" {
alias = "account"
}
直接構成の場合は、次の構成を使用して provider
を設定します。 retrieve-
プレースホルダーを独自の実装に置き換えて、コンソールまたはその他の設定ストア (HashiCorp Vault など) から値を取得します。「Vault プロバイダ」も参照してください)。この例では、 account_id
を Databricks アカウント コンソールの URL に設定できます。
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Databricks ワークスペース レベルの操作の構成
databricks auth login --host <workspace-url>
プレースホルダー <workspace-url>
をターゲットの Databricks ワークスペース URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
注:
既存の Databricks 構成プロファイル に host
フィールドが既に設定されている場合は、 --host <workspace-url>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、ワークスペース URL を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、以下のスニペットのいずれかのようなTerraformコードを使用します。
デフォルトの認証の場合:
provider "databricks" {
alias = "workspace"
}
直接構成の場合 ( retrieve
プレースホルダーを独自の実装に置き換えて、コンソールまたは他の構成ストア ( HashiCorp Vault など) から値を取得します。 「Vault プロバイダ」も参照してください)。この場合、ホストは Databricks ワークスペースの URL です (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Databricks Terraform プロバイダーでの認証の詳細については、「 認証」を参照してください。
アカウント レベルとワークスペース レベルのどちらの操作でも、Python コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。このコマンドは、マシン上のユーザーのホームフォルダー内のパスDatabricksCLI に必要なOAuth トークンを生成してキャッシュするように.databricks/token-cache.json
に指示します。
Databricks アカウント レベルの操作の構成
databricks auth login --host <account-console-url> --account-id <account-id>
次のプレースホルダーを置き換えます。
<account-console-url>
をhttps://accounts.cloud.databricks.com
の値に置き換えます。(これをDatabricksワークスペースURLの値に設定することはできません。)<account-id>
を Databricks アカウントの値に置き換えます。 「アカウント ID を見つける」を参照してください。
注:
既存の Databricks 構成プロファイル に host
フィールドと account_id
フィールドが既に設定されている場合は、 --host <account-console-url> --account-id <account-id>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、アカウントのログイン URL とアカウント ID を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、次のスニペットのいずれかのようなPythonコードを使用します。
デフォルトの認証の場合:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
直接構成の場合(retrieve
プレースホルダーを独自の実装に置き換えて、コンソールや AWS Systems Managerパラメーターストアなどの他の構成ストアから値を取得します)。この場合、DatabricksアカウントのコンソールURLは https://accounts.cloud.databricks.com
です。
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Databricks ワークスペース レベルの操作の構成
databricks auth login --host <worskpace-url>
プレースホルダー <workspace-url>
をターゲットの Databricks ワークスペース URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
注:
既存の Databricks 構成プロファイル に host
フィールドが既に設定されている場合は、 --host <workspace-url>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、ワークスペース URL を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、次のスニペットのいずれかのようなPythonコードを使用します。
デフォルトの認証の場合:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
直接設定の場合 ( retrieve
プレースホルダーを独自の実装に置き換えて、コンソールまたは他の設定ストア ( AWS Systems Manager パラメーターストアなど) から値を取得します)。 この場合、ホストは Databricks ワークスペースの URL です (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...
を使用し、Databricks PythonDatabricksクライアント統合認証 を実装する ツールと SDK を使用した認証の詳細については 以下を参照してください。
アカウント レベルとワークスペース レベルのどちらの操作でも、Java コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。このコマンドは、必要なDatabricksCLI OAuthトークンを生成して、コンピューター上のユーザーのホーム.databricks/token-cache.json
フォルダーのパス にキャッシュするように に指示します。
Databricks アカウント レベルの操作の構成
databricks auth login --host <account-console-url> --account-id <account-id>
次のプレースホルダーを置き換えます。
<account-console-url>
をhttps://accounts.cloud.databricks.com
の値に置き換えます。(これをDatabricksワークスペースURLの値に設定することはできません。)<account-id>
を Databricks アカウントの値に置き換えます。 「アカウント ID を見つける」を参照してください。
注:
既存の Databricks 構成プロファイル に host
フィールドと account_id
フィールドが既に設定されている場合は、 --host <account-console-url> --account-id <account-id>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、アカウントのログイン URL とアカウント ID を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、次のスニペットのいずれかのようなJavaコードを使用します。
デフォルトの認証の場合:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
直接構成の場合(retrieve
プレースホルダーを独自の実装に置き換えて、コンソールや AWS Systems Managerパラメーターストアなどの他の構成ストアから値を取得します)。この場合、DatabricksアカウントのコンソールURLは https://accounts.cloud.databricks.com
です。
import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
Databricks ワークスペース レベルの操作の構成
ワークスペース レベルの操作の場合は、Java コードを実行する前に、まず Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、 Databricks CLI 、マシン上のユーザーのホームフォルダー内のパス .databricks/token-cache.json
に必要なOAuthトークンを生成してキャッシュするように指示します。
databricks auth login --host <worskpace-url>
プレースホルダー <workspace-url>
をターゲットの Databricks ワークスペース URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
注:
既存の Databricks 構成プロファイル に host
フィールドが既に設定されている場合は、 --host <workspace-url>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、ワークスペース URL を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、次のスニペットのいずれかのようなJavaコードを使用します。
デフォルトの認証の場合:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
直接設定の場合 ( retrieve
プレースホルダーを独自の実装に置き換えて、コンソールまたは他の設定ストア ( AWS Systems Manager パラメーターストアなど) から値を取得します)。 この場合、ホストは Databricks ワークスペースの URL です (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
を使用し、Databricks JavaDatabricksクライアント統合認証 を実装する ツールと SDK を使用した認証の詳細については 以下を参照してください。
Scala 用 Databricks Connect クライアントを設定します (Scala 用 Databricks Connect クライアントでは、認証に付属の Databricks SDK for Java が使用されます)
アカウント レベルとワークスペース レベルのどちらの操作でも、Go コードを実行する前に、Databricks CLI を使用して次のコマンドを実行する必要があります。このコマンドは、マシン上のユーザーのホームフォルダー内のパスDatabricksCLI に必要なOAuth トークンを生成してキャッシュするように.databricks/token-cache.json
に指示します。
Databricks アカウント レベルの操作の構成
databricks auth login --host <account-login-url> --account-id <account-id>
次のプレースホルダーを置き換えます。
<account-console-url>
をhttps://accounts.cloud.databricks.com
の値に置き換えます。(これをDatabricksワークスペースURLの値に設定することはできません。)<account-id>
を Databricks アカウントの値に置き換えます。 「アカウント ID を見つける」を参照してください。
注:
既存の Databricks 構成プロファイル に host
フィールドと account_id
フィールドが既に設定されている場合は、 --host <account-console-url> --account-id <account-id>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、アカウントのログイン URL とアカウント ID を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、次のスニペットのいずれかのようなGoコードを使用します。
デフォルトの認証の場合:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
直接構成の場合(retrieve
プレースホルダーを独自の実装に置き換えて、コンソールや AWS Systems Managerパラメーターストアなどの他の構成ストアから値を取得します)。この場合、DatabricksアカウントのコンソールURLは https://accounts.cloud.databricks.com
です。
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
Databricks ワークスペース レベルの操作の構成
ワークスペース レベルの操作の場合は、Go コードを実行する前に、まず Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、 Databricks CLI 、マシン上のユーザーのホームフォルダー内のパス .databricks/token-cache.json
に必要なOAuthトークンを生成してキャッシュするように指示します。
databricks auth login --host <worskpace-url>
プレースホルダー <workspace-url>
をターゲットの Databricks ワークスペース URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
注:
既存の Databricks 構成プロファイル に host
フィールドが既に設定されている場合は、 --host <workspace-url>
を --profile <profile-name>
に置き換えることができます。
auth login
コマンドを実行すると、ワークスペース URL を Databricks 構成プロファイルとして保存するように求められます。プロンプトが表示されたら、 .databrickscfg
ファイル内の新規または既存のプロファイルの名前を入力します。 .databrickscfg
ファイル内に同じ名前の既存のプロファイルは上書きされます。
プロンプトが表示されたら、Webブラウザの画面上の指示に従ってログインを完了します。次に、次のスニペットのいずれかのようなGoコードを使用します。
デフォルトの認証の場合:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
直接設定の場合 ( retrieve
プレースホルダーを独自の実装に置き換えて、コンソールまたは他の設定ストア ( AWS Systems Manager パラメーターストアなど) から値を取得します)。 この場合、ホストは Databricks ワークスペースの URL です (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com
)。
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
}))
// ...
Go を使用し、 クライアント統合認証 を実装するDatabricks ツールと SDKDatabricks を使用した認証の詳細については、「 アカウントまたはワークスペースで Go の を認証DatabricksSDKDatabricks する」を参照してください。
OAuth ユーザー対マシン (U2M) 認証用のアクセストークンを手動で生成して使用する
注:
このセクションは、 Databricks クライアントの統合認証 標準で動作しないサードパーティのツールまたはサービスを使用しているユーザーを対象としています。
何らかの理由で、OAuth U2M 認証に Databricks OAuth アクセス ノートを手動で生成、更新、または使用する必要がある場合は、このセクションの手順に従ってください。
ステップ 1: OAuth コードベリファイアとコード チャレンジのペアを生成する
OAuth U2M 認証用のアクセストークンを手動で生成して使用するには、まず OAuth コード検証ツールと、コード検証ツールから派生した OAuth コード チャレンジが必要です。ステップ 2 のコード チャレンジを使用して、OAuth 認証コードを生成します。 ステップ 3 のコード検証ツールと認証コードを使用して、 OAuth アクセストークンを生成します。
注:
技術的には、コード検証ツールとコード チャレンジにエンコードされていないプレーンテキスト文字列を使用することは可能ですが、Databricks では、 代わりに OAuth 標準に従ってコード検証ツールとコード チャレンジを生成する ことを強くお勧めします。
具体的には、コードベリファイアは、セットA-Z
、 a-z
、 0-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 認可コードを使用して、Databricks OAuth アクセストークンを生成します。 認可コードは、Databricks OAuth アクセストークンの生成に使用した直後に期限切れになります。 認可コードのスコープは、生成元のレベルによって異なります。 次のように、Databricks アカウント レベルまたはワークスペース レベルで認可コードを生成できます。
ユーザー アカウント がアクセスできる アカウント および ワークスペース 内の アカウント レベルRESTAPIs およびワーク スペース レベルのDatabricks を呼び出すには、 アカウント レベルで承認コードを生成します 。
ユーザー アカウントがアクセスできる 1 つのワークスペースのみで REST APIsを呼び出すには、そのワークスペースのみに対してワークスペース レベルで認可コードを生成できます。
アカウントレベルの認可コードを生成する
アカウント管理者として、アカウントコンソールにログインします。
右上隅にあるユーザー名の横にある下向き矢印をクリックします。
アカウント IDをコピーします。
Web ブラウザーのアドレス バーで、次の URL を参照します。 読みやすくするために改行が追加されています。 URL にこれらの改行を含めることはできません。
次の URL で、以下を置き換えます。
<account-id>
をコピーしたアカウント IDに置き換えます。<redirect-url>
をローカル コンピューターへのリダイレクト URL に置き換えます (例:http://localhost:8020
)。<state>
認可コードの整合性を検証するために使用できるプレーンテキスト文字列に置き換えます。<code-challenge>
をステップ 1 で生成したコード チャレンジに置き換えます。
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/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
プロンプトが表示されたら、画面上の指示に従って Databricks アカウントにログインします。
Web ブラウザーのアドレスバーで、認可コードをコピーします。 認可コードは、URL 内の
code=
と&
文字の間の完全な文字列です。 たとえば、次の URL の認可コードはdcod...7fe6
です。http://localhost:8020/?code=dcod...7fe6&state=<state>
この応答 URL の
<state>
値が、要求 URL で指定したstate
値と一致することを視覚的に確認して、この承認コードの整合性を確認する必要があります。 値が異なる場合は、侵害される可能性があるため、この認可コードを使用しないでください。「アカウントレベルのアクセストークンを生成する」に進んでください。
ワークスペースレベルの認可コードを生成する
Web ブラウザーのアドレス バーで、次の URL を参照します。 読みやすくするために改行が追加されています。 URL にこれらの改行を含めることはできません。
次の URL で、以下を置き換えます。
<databricks-instance>
Databricks ワークスペース インスタンス名(例:dbc-a1b2345c-d6e7.cloud.databricks.com
に置き換えます。<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
プロンプトが表示されたら、画面上の指示に従って Databricks ワークスペースにログインします。
Web ブラウザーのアドレスバーで、認可コードをコピーします。 認可コードは、URL 内の
code=
と&
文字の間の完全な文字列です。 たとえば、次の URL の認可コードはdcod...7fe6
です。http://localhost:8020/?code=dcod...7fe6&state=<state>
この応答 URL の
<state>
値が、要求 URL で指定したstate
値と一致することを視覚的に確認して、この承認コードの整合性を確認する必要があります。 値が異なる場合は、侵害される可能性があるため、この認可コードを使用しないでください。
ステップ 3: 認可コードを使用して OAuth アクセストークンを生成する
次のように、前のステップの OAuth 認可コードを使用して、Databricks OAuth アクセストークンを生成します。
ユーザー アカウント がアクセスできる RESTAPIsアカウント および ワークスペース 内の アカウント レベル およびワーク スペース レベルのDatabricks を呼び出すには、 アカウント レベルの承認コードを使用して 、 アカウント レベルで アクセストークン を生成します 。
ユーザー アカウントがアクセス権を持つ 1 つのワークスペースのみで REST APIsを呼び出すには、ワークスペース レベルの承認コードを使用して、そのワークスペースのみに対してワークスペース レベルでアクセスを生成できます。
アカウントレベルのアクセストークンを生成する
curl
などのクライアントをアカウント レベルの認可コードとともに使用して、アカウント レベルの OAuth アクセスを生成します。 次のcurl
呼び出しで、次のプレースホルダーを置き換えます。<account-id>
をステップ 2 のアカウント IDに置き換えます。<redirect-url>
をステップ 2 のリダイレクト URL に置き換えます。<code-verifier>
ステップ 1 で生成したコードベリファイアに置き換えます。<authorization-code>
を、ステップ 2 で生成したアカウントレベルの認可コードに置き換えます。
curl --request POST \ https://accounts.cloud.databricks.com/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>"
レスポンス内の、アカウント レベルの 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 を呼び出す」に進んでください。
ワークスペースレベルのアクセストークンを生成する
curl
などのクライアントをワークスペース レベルの認可コードとともに使用して、ワークスペース レベルの OAuth アクセストークンを生成します。 次のcurl
呼び出しで、次のプレースホルダーを置き換えます。<databricks-instance>
Databricks ワークスペース インスタンス名(例:dbc-a1b2345c-d6e7.cloud.databricks.com
に置き換えます。<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>"
レスポンス内の、ワークスペース レベルの 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 アクセス インスタンスを使用して、Databricks アカウント レベルの REST APIsおよびワークスペース レベルの REST APIsに対する認証を行います。 アカウント レベルの REST APIsを呼び出すには、Databricks ユーザー アカウントがアカウント管理者である必要があります。
アカウントレベルの REST API リクエストの例
この例では、 curl
とBearer
認証を使用して、アカウントに関連付けられたすべてのワークスペースのリストを取得します。
<oauth-access-token>
をアカウント レベルの OAuth アクセス権に置き換えます。<account-id>
をアカウント ID に置き換えます。
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.cloud.databricks.com/api/2.0/accounts/<account-id>/workspaces"
ワークスペースレベルの REST API リクエストの例
この例では、 curl
とBearer
認証を使用して、指定されたワークスペース内で使用可能なすべてのクラスターを一覧表示します。
<oauth-access-token>
アカウント レベルまたはワークスペース レベルの OAuth アクセス ノートに置き換えます。<databricks-instance>
Databricks ワークスペース インスタンス名(例:dbc-a1b2345c-d6e7.cloud.databricks.com
に置き換えます。
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"