Databricks ODBC ドライバーの認証設定

この記事では、Databricks ODBC ドライバーの Azure Databricks 認証設定を構成する方法について説明します。

Databricks ODBC ドライバーは、次の Azure Databricks 認証の種類をサポートしています。

Azure Databricks 個人用アクセス トークン

Azure Databricks 個人用アクセス トークンを作成するには、次の操作を行います。

  1. Azure Databricks ワークスペースの上部バーで、目的の Azure Databricks ユーザー名をクリックし、次にドロップダウンから [設定] を選択します。
  2. [開発者] をクリックします。
  3. [アクセス トークン] の横にある [管理] をクリックします。
  4. [新しいトークンの生成] をクリックします。
  5. (省略可能) 将来このトークンを識別するのに役立つコメントを入力し、トークンの既定の有効期間 90 日を変更します。 有効期間のないトークンを作成するには (推奨されません)、[有効期間 (日)] ボックスを空のままにします。
  6. [Generate](生成) をクリックします。
  7. 表示されたトークンを安全な場所にコピーし、[完了] をクリックします。

Note

コピーしたトークンは必ず安全な場所に保存してください。 コピーしたトークンは他人に見せないでください。 コピーしたトークンを失った場合、それとまったく同じトークンは再生成できません。 代わりに、この手順を繰り返して新しいトークンを作成する必要があります。 コピーしたトークンを紛失した場合や、トークンが侵害されていると思われる場合、Databricks では、[アクセス トークン] ページのトークンの横にあるごみ箱 ([取り消し]) アイコンをクリックして、ワークスペースからそのトークンをすぐに削除することを強くお勧めします。

ワークスペースでトークンを作成することや使用することができない場合は、ワークスペース管理者によってトークンが無効にされているか、トークンを作成または使用する権限が作業者に付与されていない可能性があります。 ワークスペース管理者に連絡するか、以下のトピックを参照してください。

Azure Databricks 個人用アクセス トークンを使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 Value
AuthMech 3
UID token
PWD ワークスペース ユーザーの Databricks 個人用アクセス トークン

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=3
UID=token
PWD=<personal-access-token>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=3;
UID=token;
PWD=<personal-access-token>

Microsoft Entra ID トークン

ODBC ドライバー 2.6.15 以降では、Azure Databricks ユーザーまたは Microsoft Entra ID サービス プリンシパルの Microsoft Entra ID トークンがサポートされています。

Microsoft Entra ID アクセス トークンを作成するには、次の操作を行います。

Microsoft Entra ID アクセス トークンの既定の有効期間は約 1 時間です。 アクセス トークンは、「Microsoft Entra ID アクセス トークンを更新する」のコードを実行することで、接続を中断することなく、既存のセッションに対してプログラムで更新できます。 トークンを更新する方法については、Databricks ODBC ドライバー ガイドのセクション Configuring Authentication on Windows > Providing a New Access Token を参照してください。

Microsoft Entra ID トークンを使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 Value
AuthMech 11
Auth_Flow 0
Auth_AccessToken Microsoft Entra ID トークン

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=0
Auth_AccessToken=<microsoft-entra-id-token>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=0;
Auth_AccessToken=<microsoft-entra-id-token>

詳細については、Databricks ODBC ドライバー ガイドToken Pass-through セクションを参照してください。

OAuth 2.0 トークン

ODBC ドライバー 2.7.5 以降では、Microsoft Entra ID サービス プリンシパルの OAuth 2.0 トークンがサポートされています。 これは、OAuth 2.0 ''トークン パススルー'' 認証とも呼ばれます。

重要

ODBC ドライバー 2.7.5 以降では、Azure Databricks OAuth シークレットを使用した OAuth 2.0 トークンの作成がサポートされています。 Microsoft Entra ID シークレットはサポートされていません。

OAuth 2.0 トークンの既定の有効期間は 1 時間です。 新しい OAuth 2.0 トークンを生成するには、このプロセスを繰り返します。

OAuth 2.0 トークン パススルー認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 Value
AuthMech 11
Auth_Flow 0
Auth_AccessToken Azure Databricks OAuth トークン

(Microsoft Entra ID トークンは、OAuth 2.0 トークン パススルー認証ではサポートされていません。)

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=0
Auth_AccessToken=<databricks-oauth-token>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=0;
Auth_AccessToken=<databricks-oauth-token>

詳細については、Databricks ODBC ドライバー ガイドToken Pass-through セクションを参照してください。

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

ODBC ドライバー 2.8.2 以降では、Azure Databricks ユーザーの OAuth ユーザー対マシン (U2M) 認証がサポートされています。 これは、OAuth 2.0 ''ブラウザーベース'' の認証とも呼ばれます。

OAuth U2M または OAuth 2.0 ブラウザーベースの認証には、前提条件はありません。 OAuth 2.0 トークンの既定の有効期間は 1 時間です。 OAuth U2M または OAuth 2.0 ブラウザーベースの認証では、期限切れの OAuth 2.0 トークンが自動的に更新されるはずです。

Note

OAuth U2M または OAuth 2.0 ブラウザーベースの認証は、ローカルで実行されるアプリケーションでのみ機能します。 サーバーベースまたはクラウドベースのアプリケーションでは機能しません。

OAuth ユーザー対マシン (U2M) または OAuth 2.0 ブラウザーベースの認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 Value
AuthMech 11
Auth_Flow 2
PWD 任意のパスワード。 ドライバーでは、更新トークンの暗号化にこのキーが使用されます。
Auth_Client_ID (任意) databricks-sql-odbc (既定) 該当するすべてのアプリケーションは、Databricks アカウント コンソールの [アプリの接続] の設定で確認できます。「Azure Databricks UI を使用してカスタム OAuth アプリケーションを有効にする」をご覧ください。
Auth_Scope (任意) sql offline_access (既定)
OAuth2RedirectUrlPort (任意) 8020 (既定)

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=2
PWD=<password>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=2;
PWD=<password>

詳細については、Databricks ODBC ドライバー ガイドBrowser Based セクションを参照してください。

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

ODBC ドライバー 2.8.2 以降では、Azure Databricks ユーザーの Microsoft Entra ID OAuth ユーザー対マシン (U2M) 認証がサポートされています

Microsoft Entra ID OAuth ユーザー対マシン (U2M) を使うには、OAuth クライアント (アプリケーション) を Microsoft Entra ID に登録する必要があります。手順に関する記事をご覧ください。

Microsoft Entra ID OAuth ユーザー対マシン (U2M) を使って認証を行うには、次の構成をコンピューティングの設定と、すべての特殊または高度なドライバー機能の設定に追加します。

設定 Value
AuthMech 11
Auth_Flow 2
PWD 任意のパスワード。 ドライバーは、更新トークンの暗号化にこのキーを使います
Auth_Client_ID Azure アプリケーションのアプリケーション (クライアント) ID
Auth_Scope 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/user_impersonation offline_access
OIDCDiscoveryEndpoint https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration
OAuth2RedirectUrlPort Azure アプリケーションのリダイレクト ポート

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=1
Auth_Client_ID=<application-id-azure-application>
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/user_impersonation offline_access
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration
OAuth2RedirectUrlPort=<redirect port of the Azure application>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=1;
Auth_Client_ID=<application-id-azure-application>;
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/user_impersonation offline_access;
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration;
OAuth2RedirectUrlPort=<redirect port of the Azure application>;

OAuth マシン間 (M2M) 認証

ODBC ドライバーは、Azure Databricks サービス プリンシパルの OAuth マシン間 (M2M) 認証をサポートしています。 これは、OAuth 2.0 ''クライアント資格情報'' 認証とも呼ばれます。

OAuth M2M または OAuth 2.0 クライアント資格情報認証を構成するには、次のようにします。

  1. Azure Databricks ワークスペースで Azure Databricks サービス プリンシパルを作成し、そのサービス プリンシパルの OAuth シークレットを作成します。

    サービスプリンシパルと OAuth シークレットを作成するには、「OAuth(OAuth M2M)を使用してサービスプリンシパルで Azure Databricks へのアクセスを認証する」を参照してください。 サービス プリンシパルの UUID またはアプリケーション ID の値と、サービス プリンシパルの OAuth シークレットのシークレットを書き留めておいてください。

  2. サービス プリンシパルにクラスターまたはウェアハウスへのアクセス権を付与します。 「コンピューティングのアクセス許可」または「SQL ウェアハウスを管理する」を参照してください。

OAuth マシン間 (M2M) または OAuth 2.0 クライアント資格情報認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 Value
AuthMech 11
Auth_Flow 1
Auth_Client_ID サービス プリンシパルの UUID/アプリケーション ID の値。
Auth_Client_Secret サービス プリンシパルの OAuth シークレットの値。
Auth_Scope (任意) all-apis (既定)

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=1
Auth_Client_ID=<service-principal-application-ID>
Auth_Client_Secret=<service-principal-secret>
Auth_Scope=all-apis

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=1;
Auth_Client_ID=<service-principal-application-ID>;
Auth_Client_Secret=<service-principal-secret>;
Auth_Scope=all-apis

詳細については、Databricks ODBC ドライバー ガイドClient Credentials セクションを参照してください。

Microsoft Entra ID OAuth マシン間 (M2M) 認証

ODBC ドライバー 2.8.2 以降では、Microsoft Entra ID サービス プリンシパルの Entra ID OAuth マシン間 (M2M) 認証がサポートされています。

Entra ID OAuth マシン間 (M2M) 認証を構成するには、次のようにします。

  1. Microsoft Entra ID 管理サービス プリンシパルを作成します。 これを行うには、「サービス プリンシパルを管理する」を参照してください。
  2. サービス プリンシパルにクラスターまたはウェアハウスへのアクセス権を付与します。 「コンピューティングのアクセス許可」または「SQL ウェアハウスを管理する」を参照してください。

Entra ID OAuth マシン間 (M2M) を使って認証を行うには、次の構成をコンピューティングの設定と、すべての特殊または高度なドライバー機能の設定に追加します。

設定 Value
AuthMech 11
Auth_Flow 1
Auth_Client_ID Entra ID でのサービス プリンシパルのアプリケーション ID
Auth_Client_Secret Entra ID でのサービス プリンシパルのクライアント シークレット。 これは、ユーザーが Microsoft Entra ID の [証明書とシークレット] で作成するクライアント シークレットです。
Auth_Scope 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default
OIDCDiscoveryEndpoint https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=1
Auth_Client_ID=<entra-id-service-principal-application-ID>
Auth_Client_Secret=<entra-id-service-principal-client-secret>
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=1;
Auth_Client_ID=<entra-id-service-principal-application-ID>>;
Auth_Client_Secret=<entra-id-service-principal-client-secret>;
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default;
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration

Azure マネージド ID 認証

ODBC ドライバー 2.7.7 以降では Azure マネージド ID 認証がサポートされていて、Azure Databricks を認証するために、Azure リソース用マネージド ID (旧称マネージド サービス ID (MSI)) が使用されます。 Azure VM などのマネージド ID をサポートする Azure リソースを操作する場合、Azure Databricks ワークスペース操作に対するプログラム呼び出しでは、これらのマネージド ID を使用します。

Azure マネージド ID 認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 Value
AuthMech 11
Auth_Flow 3
Auth_Client_ID Azure マネージド ID の ID。
Azure_workspace_resource_id Azure Databricks ワークスペースの Azure リソース ID。

この ID を取得するには、Azure Databricks ワークスペースの上部ナビゲーション バーで、ユーザー名をクリックし、次をクリックします:
Azure Portal。 表示された Azure Databricks ワークスペース リソース ページで、サイドバーの [設定] の下にある [プロパティ] をクリックします。 ID は [Essentials] の下の [ID] にあります。

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=3
Auth_Client_ID=<azure-managed-identity-ID>
Azure_workspace_resource_id=<azure-workspace-resource-ID>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 読みやすいように改行が追加されています。 文字列にはこれらの改行を含めることはできません。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=3;
Auth_Client_ID=<azure-managed-identity-ID>;
Azure_workspace_resource_id=<azure-workspace-resource-ID>