このページでは、Microsoft Entra ID 認証を使用して Microsoft SQL Server でフェデレーション クエリを実行するように Databricks Lakehouse フェデレーションを構成する方法について説明します。 ユーザー間 (U2M) とマシン間 (M2M) OAuth フローの両方がサポートされています。
サポートされている OAuth フロー
- U2M: Microsoft アカウントを使用して認証します。 ユーザーはリダイレクト URI を使用してサインインするように求められます。アクセス トークンはユーザーに対して発行されます。
- M2M: サービス プリンシパルを使用して認証します。 アクセス トークンは、特定のユーザーではなく、アプリケーションに対して発行されます。
Databricks ワークスペースでは、 OAuth は U2M 認証を参照し、 OAuth Machine to Machine は M2M 認証を参照します。
開始する前に
Entra ID を使用して SQL Server でフェデレーション クエリを実行するには、次のものが必要です。
- Azure サブスクリプションへのアクセスと、Microsoft Entra ID でアプリケーションを登録するためのアクセス許可。
- Entra プリンシパルを作成するための SQL Server インスタンスへの管理者アクセス。
アプリケーションを Microsoft Entra ID に登録します
認証用のアプリケーション登録を作成するには、次の手順を実行します。
- Azure portal にサインインします。
- Microsoft Entra ID>App registrations>New registration に移動します。
- アプリの名前を入力します。
-
U2M (OAuth) の場合、リダイレクト URI を次のように設定します。
https://<workspace-url>/login/oauth/azure.html - M2M (サービス プリンシパル) の場合、リダイレクト URI は空のままにします。
-
U2M (OAuth) の場合、リダイレクト URI を次のように設定します。
- [登録] をクリックします。
- アプリケーション (クライアント) ID とディレクトリ (テナント) ID をコピーします。
- [証明書とシークレット>新しいクライアント シークレット] に移動します。
- 生成されたシークレット値を保存します。
アプリケーションにアクセス許可を割り当てる
アプリケーションが SQL Server に対して認証できるようにするには、必要な API アクセス許可を割り当てます。
- API のアクセス許可に移動します>アクセス許可を追加します。
- Azure SQL Database>user_impersonation (委任された権限) を選択します。
- M2M の場合は、アプリにサービス プリンシパル認証に必要なアクセス許可があることを確認します。
- Azure SQL Managed Instance での M2M 認証の場合は、 マネージド インスタンス ID が "ディレクトリ閲覧者" ロールに割り当てられていることを確認します。
SQL Server でサービス プリンシパルを作成する (M2M のみ)
Entra ID ログイン資格情報を使用して SQL Server インスタンスに接続します。 新しいユーザーを作成するためのアクセス許可が必要です。
Entra アプリの新しいログインとユーザーを作成します。
ユーザーに読み取りアクセス許可を付与します。
CREATE LOGIN [<app_name>] FROM EXTERNAL PROVIDER; CREATE USER [<app_name>] FROM LOGIN [<app_name>]; ALTER ROLE db_datareader ADD MEMBER [<app_name>];
詳細と高度なシナリオについては、Microsoft ドキュメントの次のページを参照してください。
接続を作成する
Databricks ワークスペースで、次の操作を行います。
- サイドバーで[c0]カタログ[c1]をクリックし、[c2]追加[c3][c4]接続の追加[c3]をクリックします。
- [ 接続の種類] で、[ SQL Server] を選択します。
- 認証の種類として、OAuth (U2M) または OAuth Machine to Machine (M2M) を選択します。
- 次の接続プロパティを入力します。
- ホスト: SQL Server ホスト名。
- ポート: SQL Server ポート。
- ユーザー: U2M の場合、Microsoft アカウント ユーザー。 M2M の場合、サービス プリンシパル名。
- Entra アプリの登録から クライアント ID と クライアント シークレット を入力します。
-
承認エンドポイントを入力します。
- U2M:
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize - M2M:
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
- U2M:
-
OAuth スコープに「
https://database.windows.net/.default offline_access」と入力します (U2M のみ)。
- U2M の場合は、[ Azure Entra ID でサインイン ] をクリックし、認証フローを完了します。
- [ 接続の作成 ] をクリックし、カタログの作成に進みます。
次のステップ
SQL Server への接続が作成されたので、次のことができます。
- 外部カタログを作成し、データに対してクエリを実行します。 「Microsoft SQL Server でのフェデレーション クエリの実行」を参照してください。
- SQL Server インジェストに Microsoft Entra 認証を使用する場合は、 必要な特権を付与します。