Microsoft Entra 認証を使用して Synapse SQL での認証を行う
Microsoft Entra 認証は、Microsoft Entra ID の ID を使用して Azure Synapse Analytics に接続するメカニズムです。
Microsoft Entra 認証を使用すると、Azure Synapse にアクセスできるユーザーの ID を一元的に管理して、アクセス許可の管理を簡略化できます。 次のような利点があります。
- 通常のユーザー名とパスワードによる認証の代わりに使用できます。
- サーバー全体でユーザー ID が急増するのを防ぎます
- 1 か所でのパスワードのローテーションを許可します。
- 顧客は、外部の (Microsoft Entra ID) グループを使用してアクセス許可を管理できます。
- 統合 Windows 認証や、Microsoft Entra ID でサポートされる他の認証形式を有効にすることで、パスワードが保存されないようにすることができます。
- Microsoft Entra ID は、Azure Synapse に接続するアプリケーション向けにトークンベースの認証をサポートしています。
- Microsoft Entra 認証は、ADFS (ドメイン フェデレーション) またはドメインを同期しないローカル Microsoft Entra ID のネイティブ ユーザー/パスワード認証をサポートします。
- Microsoft Entra ID では、多要素認証 (MFA) を含む Active Directory ユニバーサル認証が使用される SQL Server Management Studio からの接続がサポートされます。 MFA には、電話、テキスト メッセージ、暗証番号 (PIN) が設定されたスマート カード、モバイル アプリ通知など、簡単な各種確認オプションによる強力な認証が含まれます。 詳細については、「Synapse SQL での Microsoft Entra 多要素認証に対する SSMS サポート」を参照してください。
- Microsoft Entra ID は、Active Directory 対話型認証を使用する SQL Server Data Tools (SSDT) からの同様の接続をサポートしています。 詳細については、「SQL Server Data Tools (SSDT) での Microsoft Entra ID のサポート」を参照してください。
構成の手順には、Microsoft Entra 認証を構成して使用する次の手順が含まれます。
- Microsoft Entra ID を作成して設定します。
- Microsoft Entra の ID を作成します
- Synapse ワークスペースで作成された Microsoft Entra の ID にロールを割り当てます
- Microsoft Entra の ID を使用して Synapse Studio に接続します。
Azure Synapse Analytics での Microsoft Entra パススルー
Azure Synapse Analytics では、Microsoft Entra の ID を使用してデータ レイク内のデータにアクセスできます。
さまざまなデータ エンジンで考慮されるファイルおよびデータに対するアクセス権を定義すると、アクセス許可を定義する作業を複数の場所で行う代わりに 1 か所で済ませることができるため、データ レイク ソリューションを簡素化することができます。
信頼のアーキテクチャ
次の図は、Synapse SQL で Microsoft Entra 認証を使用するソリューション アーキテクチャの概要を示しています。 Microsoft Entra のネイティブ ユーザー パスワードをサポートする場合は、クラウドの部分と Azure AD または Synapse SQL のみを考慮します。 フェデレーション認証 (または Windows 資格情報のユーザー/パスワード) をサポートするには、ADFS ブロックとの通信が必要です。 矢印は通信経路を示します。
次の図は、クライアントがトークンの送信によってデータベースへの接続を許可される、フェデレーション、信頼、およびホスティングの関係を示しています。 トークンは、Microsoft Entra ID によって認証され、データベースによって信頼されます。
顧客 1 は、Microsoft Entra ID とネイティブ ユーザーまたは Microsoft Entra ID とフェデレーション ユーザーを表します。 顧客 2 は、インポートされたユーザーなど、可能性のあるソリューションを表します。この例では、Microsoft Entra ID と同期された ADFS によるフェデレーション Microsoft Entra ID からのユーザーになります。
重要なのは、Microsoft Entra 認証を使用してデータベースにアクセスするには、ホストしているサブスクリプションを Microsoft Entra ID に関連付ける必要があることを理解することです。 同じサブスクリプションを使用して、Azure SQL Database または専用 SQL プールをホストする SQL Server を作成する必要があります。
管理者の構造
Microsoft Entra 認証を使用すると、Synapse SQL の管理者アカウントは、元の SQL 管理者 (SQL 認証を使用) と Microsoft Entra 管理者の 2 つになります。 ユーザー データベースに最初の Microsoft Entra ID 包含データベース ユーザーを作成できるのは、Microsoft Entra アカウントに基づく管理者のみです。
Microsoft Entra ユーザーまたは Microsoft Entra グループを、Microsoft Entra 管理者ログインにすることができます。 管理者がグループ アカウントである場合、グループの任意のメンバーがこれを使用できるため、その Synapse SQL インスタンスに対して複数の Microsoft Entra 管理者を配置できます。
グループ アカウントを管理者として使用すると、Azure Synapse Analytics ワークスペースでユーザーまたはアクセス許可を変更することなく Microsoft Entra ID でグループ メンバーを一元的に追加および削除できるため、より管理しやすくなります。 構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は常に 1 つだけです。
アクセス許可
新しいユーザーを作成するには、データベースにおける ALTER ANY USER
アクセス許可が必要です。 ALTER ANY USER
アクセス許可は、任意のデータベース ユーザーに付与できます。 ALTER ANY USER
アクセス許可は、SQL 管理者アカウントと Microsoft Entra 管理者アカウント、そのデータベースの CONTROL ON DATABASE
または ALTER ON DATABASE
アクセス許可を持つデータベース ユーザー、db_owner
データベース ロールのメンバーも保持しています。
Synapse SQL に包含データベース ユーザーを作成するには、Microsoft Entra の ID を使用してデータベースに接続する必要があります。 最初の包含データベース ユーザーを作成するには、(データベースの所有者である) Microsoft Entra 管理者を使用してデータベースに接続する必要があります。
Synapse SQL に対して Microsoft Entra 管理者が作成された場合にのみ、任意の Microsoft Entra 認証が可能です。 Microsoft Entra 管理者がサーバーから削除された場合、Synapse SQL 内に以前に作成された既存の Microsoft Entra ユーザーは、Microsoft Entra 資格情報を使用してデータベースにアクセスできなくなります。
ローカル認証の無効化
Microsoft Entra 認証のみを許可することにより、SQL プールなどの Azure Synapse リソースへのアクセスを一元管理します。 ワークスペースの作成時に Synapse でローカル認証を無効にするには、認証方法として [Azure Active Directory (Azure AD) 認証のみを使用する] を選択します。 SQL 管理者ログインは引き続き作成されますが、無効になります。 ローカル認証は、後で Synapse ワークスペースの Azure 所有者または共同作成者が有効にできます。
ワークスペースの作成後に、Azure portal を使用してローカル認証を無効にすることもできます。 Azure Synapse ワークスペースの Microsoft Entra 管理者が作成されるまでは、ローカル認証を無効にできません。
Microsoft Entra の機能と制限事項
Microsoft Entra ID の次のメンバーを Synapse SQL にプロビジョニングできます。
- ネイティブ メンバー: マネージド ドメインまたは顧客のドメインの Microsoft Entra ID で作成したメンバー。 詳細については、「Microsoft Entra ID に独自のドメイン名を追加する」を参照してください。
- フェデレーション ドメインのメンバー: フェデレーション ドメインを使用して Microsoft Entra ID で作成されたメンバー。 詳しくは、「Azure での Active Directory フェデレーション サービスのデプロイ」をご覧ください。
- ネイティブ メンバーまたはフェデレーション ドメインのメンバーである別の Azure AD からインポートされたメンバー。
- セキュリティ グループとして作成された Active Directory グループ。
db_owner
サーバー ロールを持つグループに含まれている Microsoft Entra ユーザーは、Synapse SQL で CREATE DATABASE SCOPED CREDENTIAL 構文を使用できません。 次のエラーが表示されます。SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either does not exist or you do not have permission to use it.
CREATE DATABASE SCOPED CREDENTIAL の問題を軽減するには、
db_owner
ロールを個々の Microsoft Entra ユーザーに直接付与します。Microsoft Entra プリンシパル下で実行された場合、以下のシステム関数は NULL 値を返します。
SUSER_ID()
SUSER_NAME(<admin ID>)
SUSER_SNAME(<admin SID>)
SUSER_ID(<admin name>)
SUSER_SID(<admin name>)
Microsoft Entra の ID を使用して接続する
Microsoft Entra 認証では、Microsoft Entra の ID を使用してデータベースに接続する次の方法がサポートされています。
- Microsoft Entra パスワード
- Microsoft Entra 統合
- Microsoft Entra ユニバーサルと MFA
- アプリケーション トークン認証を使用する
Microsoft Entra サーバー プリンシパル (ログイン) では、次の認証方法がサポートされています。
- Microsoft Entra パスワード
- Microsoft Entra 統合
- Microsoft Entra ユニバーサルと MFA
その他の注意点
- さらに管理しやすくするには、管理者として専用の Microsoft Entra グループをプロビジョニングすることをお勧めします。
- Synapse SQL プール用に構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は常に 1 つだけです。
- Synapse SQL 用の Microsoft Entra サーバー プリンシパル (ログイン) の追加により、
sysadmin
ロールに追加できる複数の Microsoft Entra サーバー プリンシパル (ログイン) を作成できる可能性があります。
- Synapse SQL 用の Microsoft Entra サーバー プリンシパル (ログイン) の追加により、
- Microsoft Entra アカウントを使用して Synapse SQL に最初に接続できるのは、Synapse SQL の Microsoft Entra 管理者だけです。 Active Directory 管理者は、それ以降の Microsoft Entra のデータベース ユーザーを構成できます。
- 接続のタイムアウトを 30 秒に設定することをお勧めします。
- SQL Server 2016 Management Studio と SQL Server Data Tools for Visual Studio 2015 (バージョン 14.0.60311.1April 2016 以降) では、Microsoft Entra 認証がサポートされています (Microsoft Entra 認証は、.NET Framework Data Provider for SqlServer (.NET Framework 4.6 以降のバージョン) でサポートされています)。 したがって、これらのツールとデータ層アプリケーション (DAC および BACPAC) の最新バージョンでは、Microsoft Entra 認証を使用できます。
- バージョン 15.0.1 以降では、sqlcmd ユーティリティと bcp ユーティリティは MFA を使用した Active Directory 対話型認証をサポートしています。
- SQL Server Data Tools for Visual Studio 2015 には、April 2016 バージョン以降の Data Tools (バージョン 14.0.60311.1) が必要です。 現在、Microsoft Entra ユーザーは SSDT オブジェクト エクスプローラーには表示されません。 回避策として、ユーザーを sys.database_principals で表示してください。
- Microsoft JDBC Driver 6.0 for SQL Server は、Microsoft Entra 認証をサポートしています。 「 接続プロパティの設定」もご覧ください。
- Microsoft Entra 管理者アカウントによって専用プールへのアクセスが制御される一方、Synapse RBAC ロールはサーバーレス プールへのアクセスを制御するために使用します (Synapse 管理者ロールや Synapse SQL 管理者ロールなど)。 Synapse Studio 経由で Synapse RBAC のロールを構成します。詳細については、「Synapse Studio で Synapse RBAC ロールの割り当てを管理する方法」を参照してください。
- ユーザーが Microsoft Entra 管理者および Synapse 管理者として構成され、その後、Microsoft Entra 管理者ロールから削除された場合、ユーザーは Synapse の専用 SQL プールにアクセスできなくなります。 専用 SQL プールへのアクセスを回復するには、削除してから Synapse 管理者ロールに追加する必要があります。
次のステップ
- Synapse SQL でのアクセスおよび制御の概要については、Synapse SQL のアクセス制御に関するページを参照してください。
- データベース プリンシパルの詳細については、「プリンシパル」を参照してください。
- データベース ロールの詳細については、データベース ロールに関するページを参照してください。