SQL 認証の代替え手段とする Microsoft Entra 認証
適用対象:✅ Microsoft Fabric の SQL 分析エンドポイントおよびウェアハウス
この記事では、ユーザーと顧客が Microsoft Fabric 内で SQL 認証から Microsoft Entra 認証 に移行するために使用できる技術的な方法について説明します。 Microsoft Entra 認証は、レイクハウスまたは Microsoft Fabric の ウェアハウスの SQL 分析エンドポイントにサインインするための SQL 認証を介したユーザー名とパスワードの代替手段です。 Microsoft Entra 認証は、セキュリティで保護されたデータ プラットフォームの作成に推奨され、不可欠です。
この記事では、ウェアハウスやレイクハウス SQL 分析エンドポイントなどの Microsoft Fabric アイテムでの SQL 認証の代替え手段とする Microsoft Entra 認証に焦点を当てています。
Fabric での Microsoft Entra 認証の利点
Microsoft Fabric の主要な原則の 1 つは、設計によるセキュリティ保護です。 Microsoft Entra は、強力なデータ保護、ガバナンス、コンプライアンスを確保することで、Microsoft Fabric のセキュリティに不可欠です。
Microsoft Entra は、いくつかの理由で Microsoft Fabric のセキュリティにおいて重要な役割を果たします。
- 認証: Microsoft Entra ID を使用してユーザーとサービス プリンシパルを確認します。これにより、Fabric 内での操作のためのアクセス トークンが付与されます。
- セキュリティで保護されたアクセス: 任意のデバイスまたはネットワークからクラウド アプリに安全に接続し、Fabric に対する要求を保護します。
- 条件付きアクセス: 管理者は、ユーザー ログイン コンテキストを評価するポリシーを設定したり、アクセスを制御したり、追加の検証手順を適用することができます。
- 統合: Microsoft Entra ID は、Fabric を含むすべての Microsoft SaaS オファリングとシームレスに連携し、デバイスやネットワーク間で簡単にアクセスできます。
- 広範なプラットフォーム: Fabric ポータル、SQL 接続文字列、REST API、または XMLA エンドポイントを介して、任意の方法で Microsoft Entra ID を使用して Microsoft Fabric にアクセスできます。
Microsoft Entra は完全なゼロ トラスト ポリシーを採用しており、ユーザー名とパスワードに限定された従来の SQL 認証に代わる優れた代替手段を提供します。 この方法の特徴は次のとおりです。
- ユーザーの偽装を禁止します。
- ユーザー ID、環境、デバイスなどを考慮してきめ細かいアクセス制御を可能にします。
- Microsoft Entra 多要素認証などの高度なセキュリティをサポートします。
ファブリックの構成
ウェアハウスまたはレイクハウス SQL 分析エンドポイントで使用する Microsoft Entra 認証には、Tenant と Workspace の両方の設定で構成が必要です。
テナント設定
テナントの Fabric 管理者は、Fabric API へのアクセスをサービス プリンシパル名 (SPN) に許可する必要があります。これは、SPN が SQL 接続文字列を Fabric ウェアハウスまたは SQL 分析エンドポイント項目に接続するために必要です。
この設定は [開発者向け設定] セクションにあり、"サービス プリンシパルは Fabric API を使用できます" というラベルが付いています。 有効になっていることを確認してください。
ワークスペースの設定
ワークスペースの Fabric 管理者は、Fabric 項目にアクセスするアクセス権限をユーザーまたは SPN に付与する必要があります。
ユーザー/SPN にアクセスを付与する方法は 2 つあります。
ユーザーまたは SPN メンバーシップをロールに付与する: SQL 接続文字列を使用してウェアハウスまたはレイクハウス項目に接続するには、任意のワークスペース ロール (管理者、メンバー、共同作成者、または閲覧者) で十分です。
- ワークスペースの [アクセスの管理] オプションで、共同作成者ロールを割り当てます。 詳しくは、「サービス ロール」に関するページをご覧ください。
ユーザーまたは SPN を特定の項目に割り当てる: 特定のウェアハウスまたはレイクハウスの SQL 分析エンドポイントへのアクセス権限を付与します。 Fabric 管理者は、さまざまなアクセス許可レベルから選択できます。
- 関連するウェアハウスまたは SQL 分析エンドポイントのアイテムに移動します。
- [その他のオプション]、次に [アクセス許可の管理] を選択します。 [ユーザーの追加] を選択します。
- [ユーザーにアクセス権を付与する]ページにユーザー/SPN を追加します。
- 必要なアクセス許可をユーザー/SPN に割り当てます。 接続アクセス許可のみを付与するには追加のアクセス許可を選択しません。
システムからユーザーまたは SPN に付与される既定のアクセス許可を変更できます。 T-SQL GRANT コマンドと DENY コマンドを使用して必要に応じてアクセス許可を変更するか、ALTER ROLE を使用して、ロールにメンバーシップを追加します。
現在、SPN には、GRANT
/DENY
を使用した詳細なアクセス許可構成のユーザー アカウントとしての機能はありません。
ユーザー ID とサービス プリンシパル名 (SPN) のサポート
Fabric は、Microsoft Entra ユーザーとサービス プリンシパル名 (SPN) の認証と承認を、ウェアハウスおよび SQL 分析エンドポイント アイテムへの SQL 接続でネイティブにサポートします。
- ユーザー ID は、組織内の各ユーザーの一意の資格情報です。
- SPN はテナント内のアプリケーション オブジェクトを表し、アプリケーションのインスタンスの ID として機能し、それらのアプリケーションの認証と承認の役割を担います。
表形式データ ストリーム (TDS) のサポート
Fabric は、接続文字列を使用して接続するときに、SQL Server と同じ表形式データ ストリーム (TDS) プロトコルを使用します。
Fabric は、SQL データベース エンジンを使用して製品に接続できるあらゆるアプリケーションまたはツールと互換性があります。 SQL Server インスタンス接続と同様に、TDS は TCP ポート 1433 で動作します。 Fabric の SQL 接続と SQL 接続文字列の検索の詳細については、「接続」を参照してください。
サンプル SQL の接続文字列は次のようになります: <guid_unique_your_item>.datawarehouse.fabric.microsoft.com
。
アプリケーションおよびクライアント ツールでは、接続文字列で Authentication
接続プロパティを設定して、Microsoft Entra 認証モードを選択できます。 次の表は、Microsoft Entra 多要素認証 (MFA) のサポートを含む、さまざまな Microsoft Entra 認証モードの詳細をまとめたものです。
認証モード | シナリオ | コメント |
---|---|---|
Microsoft Entra 対話型 | ユーザー認証が対話形式で行われる場合や、資格情報の検証に手動による介入が許容される場合に、アプリケーションまたはツールによって利用されます。 | MFA と Microsoft Entra 条件付きアクセス ポリシーを有効化して、組織のルールを適用します。 |
Microsoft Entra サービス プリンシパル | ユーザーの介入なしに安全な認証を行うアプリで使用され、アプリケーション統合に最も適しています。 | Microsoft Entra 条件付きアクセス ポリシーを有効にすることをお勧めします。 |
Microsoft Entra パスワード | 互換性がないためにアプリケーションで SPN ベースの認証を使用できない場合、または多くのユーザーに汎用ユーザー名とパスワードが必要な場合、または他の方法が不可能な場合。 | MFA はオフにする必要があり、条件付きアクセス ポリシーを設定することはできません。 このソリューションを選択する前に、お客様のセキュリティ チームに確認することをお勧めします。 |
Microsoft Entra 認証のドライバー サポート
ほとんどの SQL ドライバーは当初 Microsoft Entra 認証のサポートを受けていましたが、最近の更新プログラムでは、SPN ベースの認証を含むように互換性が拡張されています。 この機能強化により、ドライバーのアップグレードと Microsoft Entra 認証のサポートの追加を通じて、さまざまなアプリケーションとツールの Microsoft Entra 認証への移行が簡略化されます。
ただし、ホスト コンピューターで Microsoft Entra 認証を容易にするために、特定のポートやファイアウォールを有効にするなどの追加の設定を調整する必要がある場合があります。
アプリケーションとツールでは、ドライバーのバージョンを、Microsoft Entra 認証をサポートするようにアップグレードする必要があります。また、SQL 接続文字列で認証モード キーワードを追加する必要があります (ActiveDirectoryInteractive
、ActiveDirectoryServicePrincipal
、ActiveDirectoryPassword
など)。
Fabric は、OLE DB、Microsoft.Data.SqlClient
、ODBC や JDBC などの汎用ドライバーなど、Microsoft のネイティブ ドライバーと互換性があります。 ファブリックで動作するアプリケーションの移行は、Microsoft Entra ID ベースの認証を使用するための再構成によって管理できます。
詳細については、「Microsoft Fabric のデータ ウェアハウスへの接続」を参照してください。
Microsoft OLE DB
OLE DB Driver for SQL Server は、OLE DB 用に設計され、SQL Server 2005 (9.x) で最初にリリースされたスタンドアロン データ アクセス API です。 拡張された機能には、バージョン 18.5.0 を使用した SPN ベースの認証が含まれるため、以前のバージョンの既存の認証方法に追加されます。
認証モード | SQL 接続文字列 |
---|---|
Microsoft Entra 対話型 | Microsoft Entra 対話型認証 |
Microsoft Entra サービス プリンシパル | Microsoft Entra サービス プリンシパル認証 |
Microsoft Entra パスワード | Microsoft Entra ユーザー名とパスワード認証 |
SPN ベースの認証で OLE DB を使用する C# コード スニペットについては、「System.Data.OLEDB.Connect.cs」を参照してください。
Microsoft ODBC Driver
Microsoft ODBC Driver for SQL Server は、ネイティブ コード API を使用して SQL Server に接続するアプリケーション用のランタイム サポートが含まれる単一のダイナミックリンク ライブラリ (DLL) です。 アプリケーションを Fabric と統合するには、最新バージョンを使用することをお勧めします。
ODBC を使用した Microsoft Entra 認証の詳細については、「ODBC ドライバーのサンプル コードを使用した Microsoft Entra ID の使用」を参照してください。
認証モード | SQL 接続文字列 |
---|---|
Microsoft Entra 対話型 | DRIVER={ODBC Driver 18 for SQL Server};SERVER=<SQL Connection String>;DATABASE=<DB Name>;UID=<Client_ID@domain>;PWD=<Secret>;Authentication=ActiveDirectoryInteractive |
Microsoft Entra サービス プリンシパル | DRIVER={ODBC Driver 18 for SQL Server};SERVER=<SQL Connection String>;DATABASE=<DBName>;UID=<Client_ID@domain>;PWD=<Secret>;Authentication=ActiveDirectoryServicePrincipal |
Microsoft Entra パスワード | DRIVER={ODBC Driver 18 for SQL Server};SERVER=<SQL Connection String>;DATABASE=<DBName>;UID=<Client_ID@domain>;PWD=<Secret>;Authentication=ActiveDirectoryPassword |
SPN ベースの認証で ODBC を使用する Python コード スニペットについては、「pyodbc-dw-connectivity.py」を参照してください。
Microsoft JDBC Driver
Microsoft JDBC Driver for SQL Server は Type 4 JDBC Driver であり、Java Platform で利用できる標準の JDBC アプリケーション プログラム インターフェイス (API) によって、データベース接続が提供されます。
バージョン 9.2 以降、mssql-jdbc
では、ActiveDirectoryInteractive
と ActiveDirectoryServicePrincipal
のサポートが導入され、バージョン 12.2 以降で ActiveDirectoryPassword
がサポートされています。 このドライバーには依存関係として追加の jar が必要です。これは、アプリケーションで使用される mssql-driver
のバージョンと互換性がある必要があります。 詳細については、「JDBC ドライバーの機能の依存関係」および「クライアント セットアップ要件」を参照してください。
認証モード | 詳細 |
---|---|
Microsoft Entra 対話型 | ActiveDirectoryInteractive 認証モードを使用して接続する |
Microsoft Entra サービス プリンシパル | ActiveDirectoryServicePrincipal 認証モードを使用して接続する |
Microsoft Entra パスワード | ActiveDirectoryPassword 認証モードを使用して接続する |
SPN ベースの認証で JDBC を使用する Java コード スニペットについては、「fabrictoolbox/dw_connect.java」と「サンプル POM ファイルの pom.xml」を参照してください。
.NET Core の Microsoft.Data.SqlClient (C#)
Microsoft.Data.SqlClient は、Microsoft SQL Server と Azure SQL データベースの Data Provider です。 これは、.NET Framework と .NET Core に独立して存在する 2 つの System.Data.SqlClient
コンポーネントの和集合であり、Microsoft SQL Server データベースにアクセスするための一連のクラスを提供します。 今後のすべての新規開発で、Microsoft.Data.SqlClient
を使用することをお勧めします。
認証モード | 詳細 |
---|---|
Microsoft Entra 対話型 | 対話型認証の使用 |
Microsoft Entra サービス プリンシパル | サービス プリンシパル認証の使用 |
Microsoft Entra パスワード | パスワード認証の使用 |
SPN を使用したコード スニペット: