🧱

TROCCOのdatabricksコネクタにOAuth認証方式が追加されたので試してみた

2025/01/17に公開

この記事について

TROCCOでは2024年にDatabricksコネクタをリリースしています。
そのために利用する、Databricks接続情報の認証方法として今まではPersonal Access Token(以下PAT)を利用した認証方法のみがサポートされていましたが、直近でM2M OAuth方式が追加サポートされたのでその設定方法を紹介します。

はじめに: PATとM2M OAuthの使い分けについて

本題の解説に入る前に2つの認証方法の使い分けについても簡単に説明します。

前提として、PATは個人ユーザーに紐づく認証方式であり、ユーザー自身の権限に基づいて操作できるリソース(カタログやスキーマ)が決まります。一方、M2M OAuthはサービスプリンシパルに基づく認証方式であり、権限を用途ごとに柔軟に設定できます。

これにより、M2M OAuthを使えば、外部アプリケーションごとにstagingやproductionなど、特定のカタログやスキーマへのアクセス権限を個別に設定でき、より細かいアクセス制御や運用の安定性が期待できます。

一方で、初期構築段階でDatabricksとTROCCOの連携を気軽に試したい場合や、ミッションクリティカルでない用途に利用する場合には、取得や操作が簡易なPATを使用するのも一つの選択肢です。用途に応じて適切な認証方法を選択すると良さそうですね。

両者の使い分けについては@nakazaxさんの記事も参考になります

https://qiita.com/nakazax/items/991482e590cbb40da383

具体的な操作方法

Databricksからのサービスプリンシパルの作成方法

まずは、サービスプリンシパルを作成したいDatabricks workspaceの

Workspace settings > Identity and access > Service principals

ページから、Add service principal ボタンを押下しサービスプリンシパルを作成しましょう。

サービスプリンシパルを作成したら、一覧画面から当該サービスプリンシパルの詳細ページに遷移、 Secret タブから Generate secret ボタンを押し ClientIDとSecretを取得しましょう

作成されたsecretのイメージ

TROCCO接続情報の作成

接続情報の新規追加画面から、「Databricks」を選択し接続情報を作成しましょう。
「Server Host Name」および「HTTP Path」は従来と同様の設定項目です。参照方法はヘルプドキュメントも参照ください。
https://documents.trocco.io/docs/connection-configuration-Databricks

「認証タイプ」が追加されているので「OAuthマシン間(M2M)認証」にチェックを入れましょう。
「クライアントID」「OAuthシークレット」入力欄が表示されるので、先ほどDatabricksで取得した情報を入力します。
Databricksから取得した「ClientID」をTROCCOの「クライアントID」に、Databricksから取得した「Secret」をTROCCOの「OAuthシークレット」の入力欄にそれぞれ入力しましょう。

念の為、画面イメージも添付します。

接続情報設定画面(必要な項目部分)

ここまでで接続情報を使う準備が完了しました。
あとは通常通り、転送先ないし転送元をDatabricksとする転送設定を作成する際にこの接続情報を使うだけです。
具体的な操作方法は@manabianさんが例によってわかりやすい記事を書いてくださっているのでそちらも参考にしてください(いつも本当にありがとうございます…!!)。

https://qiita.com/manabian/items/a4688641c56891279b04#2-3-salesforce-の-account-オブジェクトを-Databricks-のテーブルに書き込むデータ転送設定を作成

最後に

DatabricksとTROCCOの接続情報について、期待されるセキュリティや用途によって複数の認証方法を選択できるようになったのでその操作方法を紹介しました。必要に応じて使い分けてみてください。

株式会社primeNumber

Discussion