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 のセキュリティにおいて重要な役割を果たします。

  • 認証: Fabric 内の操作のアクセス トークンを付与する Microsoft Entra ID を使用して、ユーザーとサービス プリンシパルを確認します。
  • セキュリティで保護されたアクセス: 任意のデバイスまたはネットワークからクラウド アプリに安全に接続し、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 認証には、TenantWorkspace の両方の設定で構成が必要です。

テナント設定

テナントの Fabric 管理者は、ファブリック API への SPN アクセスを許可する必要があります。これは、SPN が Fabric Warehouse または SQL 分析エンドポイント項目に対する SQL 接続文字列のインターフェイスに必要です。

この設定は[開発者の設定] セクションにあり、iOS ラベル付きサービス プリンシパルは Fabric API を使用できます有効になっていることを確認してください。

[テナント設定] の [開発者の設定] ページの Fabric ポータルのスクリーンショット。

ワークスペースの設定

ワークスペースの Fabric 管理者は、ユーザー/SPN に Fabric アイテムにアクセスするためのアクセス権を付与する必要があります。

ユーザー/SPN にアクセスを付与する方法は 2 つあります。

  • ワークスペース共同作成者ロールにユーザー/SPN メンバーシップを付与する: ワークスペース共同作成者ロールを使用すると、ユーザー/SPN ID は SQL 接続文字列を介してすべての Fabric アイテムにアクセスできます。

    1. ワークスペースの [アクセスの管理] オプションで、共同作成者ロールを割り当てます。 詳しくは、「サービス ロール」に関するページをご覧ください。

    ワークスペースの [アクセスの管理] オプションでユーザーに割り当てられている共同作成者ロールを示す Fabric ポータルのスクリーンショット。

  • 特定のアイテムにユーザー/SPN を割り当てる: 特定のウェアハウスまたは SQL 分析エンドポイントへのアクセス権を付与します。 Fabric 管理者は、さまざまなアクセス許可レベルから選択できます。

    1. 関連するウェアハウスまたは SQL 分析エンドポイントのアイテムに移動します。
    2. [その他のオプション]、次に [アクセス許可の管理] を選択します。 ユーザーの追加を選択します。
    3. [ユーザーにアクセス権を付与する]ページにユーザー/SPN を追加します。
    4. 必要なアクセス許可をユーザー/SPN に割り当てます。 接続アクセス許可のみを付与するには追加のアクセス許可を選択しません。

    [ユーザーにアクセス権を付与する] ページの Fabric ポータルのスクリーンショット。

システムによってユーザー/SPN に与えられる既定のアクセス許可を変更できます。 T-SQL GRANT コマンドと DENY コマンドを使用して必要に応じてアクセス許可を変更するか、ALTER ROLE を使用して、ロールにメンバーシップを追加します。

現在、SPN には、GRANT/DENYを使用した詳細なアクセス許可構成のユーザー アカウントとしての機能はありません。

ユーザー ID とサービス プリンシパル名 (SPN) のサポート

Fabric は、Microsoft Entra ユーザーとサービス プリンシパル名 (SPN) の認証と承認を、ウェアハウスおよび SQL 分析エンドポイント アイテムへの SQL 接続でネイティブにサポートします。

  • ユーザー ID は、組織内の各ユーザーの一意の資格情報です。
  • SPN はテナント内のアプリケーション オブジェクトを表し、アプリケーションのインスタンスの ID として機能し、それらのアプリケーションの認証と承認の役割を担います。

表形式データ ストリーム (TDS) のサポート

Fabric は、SQL 接続文字列とも呼ばれる表形式データ ストリーム (TDS) プロトコルをネイティブにサポートします。 したがって、ファブリックは、SQL データベース エンジンを使用して製品に接続できる任意のアプリケーションまたはツールと互換性があります。 SQL Server インスタンス接続と同様に、TDS は TCP ポート 1433 で動作します。 Fabric SQL の接続の詳細については、「接続」を参照してください。

接続文字列を取得するには、Fabric Warehouse または SQL 分析エンドポイント項目で [その他のオプション] を選択します。

[その他のオプション] コンテキスト メニューの Fabric ポータルのスクリーンショット。[SQL 接続文字列のコピー] オプションが強調表示されています。

サンプル SQL の接続文字列は次のようになります: <guid_unique_your_item>.datawarehouse.fabric.microsoft.com

アプリケーションおよびクライアント ツールでは、接続文字列で Authentication 接続プロパティを設定して、Microsoft Entra 認証モードを選択できます。 次の表では、 Microsoft Entra 多要素認証 (MFA) のサポートなど、さまざまな Entra 認証モードについて詳しく説明します。

認証モード シナリオ コメント
Microsoft Entra 対話型 ユーザー認証が対話形式で行われる場合や、資格情報の検証に手動による介入が許容される場合に、アプリケーションまたはツールによって利用されます。 MFAMicrosoft Entra 条件付きアクセス ポリシーを有効化して、組織のルールを適用します。
Microsoft Entra サービス プリンシパル ユーザーの介入なしに安全な認証を行うアプリで使用され、アプリケーション統合に最も適しています。 Microsoft Entra 条件付きアクセス ポリシーを有効にすることをお勧めします。
Microsoft Entra パスワード 互換性がないためにアプリケーションで SPN ベースの認証を使用できない場合、または多くのユーザーに汎用ユーザー名とパスワードが必要な場合、または他の方法が不可能な場合。 MFA はオフにする必要があり、条件付きアクセス ポリシーを設定することはできません。 このソリューションを選択する前に、お客様のセキュリティ チームで検証することをお勧めします。

Microsoft Entra 認証モードと決定ポイントを示すフローチャート。

Microsoft Entra 認証のドライバー サポート

ほとんどの SQL ドライバーは当初 Microsoft Entra 認証のサポートを受けていましたが、最近の更新プログラムでは、SPN ベースの認証を含むように互換性が拡張されています。 この機能強化により、ドライバーのアップグレードと Microsoft Entra 認証のサポートの追加を通じて、さまざまなアプリケーションとツールの Microsoft Entra 認証への移行が簡略化されます。

ただし、ホスト コンピューターで Microsoft Entra 認証を容易にするために、特定のポートやファイアウォールを有効にするなどの追加の設定を調整する必要がある場合があります。

アプリケーションとツールでは、ドライバーを Entra 認証をサポートするバージョンにアップグレードし、ActiveDirectoryInteractiveActiveDirectoryServicePrincipalActiveDirectoryPassword などの認証モード キーワードを SQL 接続文字列に追加する必要があります。

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 では、ActiveDirectoryInteractiveActiveDirectoryServicePrincipal のサポートが導入され、バージョン 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 を使用したコード スニペット: