SQL Server フェデレーション用に Microsoft Entra ID を構成する
このページでは、 Microsoft Entra ID 認証を使用してMicrosoft SQL Server上でフェデレーション クエリを実行するようにDatabricksレイクハウスフェデレーションを構成する方法について説明します。 ユーザー対マシン (U2M) とマシン対マシン (M2M) の両方の OAuth フローがサポートされています。
サポートされているOAuthフロー
- U2M : Microsoft アカウントを使用して認証します。ユーザーはリダイレクト URI を使用してサインインするように求められ、ユーザーに対してアクセス権が発行されます。
- M2M : サービスプリンシパルを使用して認証します。 アクセスVPNは、特定のユーザーではなくアプリケーションに対して発行されます。
Databricks ワークスペースでは、 OAuth は U2M 認証を指し、 OAuth Machine to Machine は M2M 認証を指します。
始める前に
Entra ID を使用して SQL Server でフェデレーション クエリを実行する前に、次のものが必要です。
- Azure サブスクリプションへのアクセスと、Microsoft Entra ID にアプリケーションを登録するための権限。
- Entra プリンシパルを作成するための SQL Server インスタンスへの管理者アクセス。
Microsoft Entra IDでアプリケーションを登録する
認証用のアプリケーション登録を作成するには、次の手順を実行します。
-
Azure ポータルにサインインします。
-
Microsoft Entra ID > アプリ登録 > 新規登録 に移動します。
-
アプリの名前を入力します。
- 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 アプリの新しいログインとユーザーを作成します。
-
ユーザーに読み取り権限を付与します。
SQLCREATE LOGIN [<app_name>] FROM EXTERNAL PROVIDER;
CREATE USER [<app_name>] FROM LOGIN [<app_name>];
ALTER ROLE db_datareader ADD MEMBER [<app_name>];
詳細と高度なシナリオについては、Microsoft ドキュメントの次のページを参照してください。
接続を作成する
Databricks ワークスペースで、次の操作を行います。
-
サイドバーで、 [カタログ] > [追加] > [接続の追加] をクリックします。
-
接続タイプ には、 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でのフェデレーション クエリの実行」を参照して、フォーリンカタログを作成し、データをクエリします。