User/interactive Azure AD authentication

オープン
#690 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
30/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
azure, python, sql

調査の方向性

この issue では dbx_sql.connect、databricks-sdk WorkspaceClient、DefaultAzureCredential、および既存の Entra ID M2M メソッドが挙げられていますが、リポジトリのファイルやテストはありません。まず、接続認証のエントリポイントとその M2M 実装を見つけ、次に示されている az login と DefaultAzureCredential のフローと比較してください。サポートされている U2M ワークフローで認証し、サンプル SQL クエリを実行できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

#621 by @jprakash-db added a great feature that we will be testing ASAP. Since Entra ID authentication seems to be getting upgraded, I wanted to ask about interactive login.

Using databricks-sdk I can perform this user authentication by doing (from the terminal)

az login --use-device-code
...
User is logged in

then in python

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host="https://adb-XXXXXX.azuredatabricks.net/")

Would the newly-added Entra ID M2M method be extendable for U2M workflows?

Otherwise, is there an alternative implementation I could use?

This is what I'm currently doing to manually mint a token in the user interactive workflow currently:

from azure.identity import DefaultAzureCredential
from databricks import sql as dbx_sql

_DATABRICKS_SCOPE = "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default"

DATABRICKS_CLUSTER_HOST = "adb-XXX.azuredatabricks.net"
DATABRICKS_CLUSTER_HTTP_PATH = "/sql/1.0/warehouses/XXX"

cred = DefaultAzureCredential()
token = cred.get_token(_DATABRICKS_SCOPE)

with dbx_sql.connect(
    server_hostname=DATABRICKS_CLUSTER_HOST,
    http_path=DATABRICKS_CLUSTER_HTTP_PATH,
    access_token=token.token,
) as conn, conn.cursor() as c:
        c.execute("SELECT current_user(), current_catalog(), current_schema();")
        print(c.fetchall())

Thanks!

主要言語
Python
スター
233
フォーク
152
平均マージ
21時間 5分
マージ済み PR(30日)
10

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

databricks/databricks-sql-python のほかの issue

databricks/databricks-sql-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。