OAuthユーザー対マシン(U2M)認証
OAuth のユーザー対マシン (U2M) 認証では、リアルタイムの人間によるサインインと同意を使用して、ターゲットの Databricks ユーザーアカウントを認証します。ユーザーがサインインに成功し、OAuth 認証リクエストに同意すると、OAuth トークンが参加ツールまたは SDK に渡され、その時点からユーザーに代わってトークンベースの認証を実行します。OAuth トークンの有効期間は 1 時間で、その後、関連するツールまたは SDK が自動的にバックグラウンドで、同様に 1 時間有効な新しいトークンの取得を試みます。
Databricks で OAuth U2M 認証を構成するには、次の関連する環境変数、 .databrickscfg
フィールド、Terraform フィールド、または Config
フィールドを設定する必要があります。
アカウント操作の場合は
https://accounts.cloud.databricks.com
として指定される Databricks ホスト、またはワークスペース操作の場合はターゲット ワークスペース URL (ワークスペース操作の場合はhttps://dbc-a1b2345c-d6e7.cloud.databricks.com
など) として指定されます。Databricksアカウント操作用のDatabricksアカウントID。
Databricks で OAuth U2M 認証を実行するには、参加しているツールまたは SDK に基づいて、コード内に以下を統合します。 コードで呼び出す Databricks 操作によっては、必ずしも Databricks アカウントの管理者である必要はありません。
ツールまたは で特定の 認証タイプに環境変数を使用するには、DatabricksSDK DatabricksAPIsツールと の認証 またはツールまたは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ツールとAPIsの認証、またはツールまたは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 アカウントまたはワークスペースにログインします。
詳細については、「 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 アクセスを許可します。
詳細については、「 OAuth U2M 認証の設定」を参照してください。
アカウント レベルの操作の場合は、Terraform 構成を適用する前に、まず Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、 Databricks CLI 、マシン上のユーザーのホームフォルダー内のパス .databricks/token-cache.json
に必要なOAuthトークンを生成してキャッシュするように指示します。
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"
}
直接構成の場合(retrieve
プレースホルダーを独自の実装に置き換えて、コンソールやHashiCorp Vaultなどの他の構成ストアから値を取得します。「Vaultのプロバイダー」も参照してください。)この場合、DatabricksアカウントのコンソールURLは https://accounts.cloud.databricks.com
です。
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
ワークスペース レベルの操作の場合は、Terraform 構成を適用する前に、まず Databricks CLI を使用して次のコマンドを実行する必要があります。 このコマンドは、 Databricks CLI 、マシン上のユーザーのホームフォルダー内のパス .databricks/token-cache.json
に必要なOAuthトークンを生成してキャッシュするように指示します。
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 を使用して次のコマンドを実行する必要があります。 このコマンドは、 Databricks CLI 、マシン上のユーザーのホームフォルダー内のパス .databricks/token-cache.json
に必要なOAuthトークンを生成してキャッシュするように指示します。
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()
)
# ...
ワークスペース レベルの操作の場合は、Python コードを実行する前に、まず 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ブラウザの画面上の指示に従ってログインを完了します。次に、次のスニペットのいずれかのような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 を使用して次のコマンドを実行する必要があります。 このコマンドは、 Databricks CLI 、マシン上のユーザーのホームフォルダー内のパス .databricks/token-cache.json
に必要なOAuthトークンを生成してキャッシュするように指示します。
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);
// ...
ワークスペース レベルの操作の場合は、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 を使用して次のコマンドを実行する必要があります。 このコマンドは、 Databricks CLI 、マシン上のユーザーのホームフォルダー内のパス .databricks/token-cache.json
に必要なOAuthトークンを生成してキャッシュするように指示します。
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(),
}))
// ...
ワークスペース レベルの操作の場合は、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 標準を実装するDatabricks ツールと SDK は、DatabricksOAuthOAuth U2M 認証に必要な ユーザーに代わってアクセストークンを自動的に生成、更新、および使用します。
何らかの理由で、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_url=<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"