Microsoft Entra 認証を使用する

適用対象:Azure SQL データベースAzure SQL Managed InstanceAzure Synapse Analytics

この記事では、Microsoft Entra ID (旧称 Azure Active Directory) で、Microsoft Entra ID を使用して Azure SQL DatabaseAzure SQL Managed InstanceWindows Azure VM 上の SQL ServerAzure Synapse Analytics の Synapse SQLWindows および Linux 用の SQL Server に対して認証を行う方法の概要を示します。

Microsoft Entra を作成して設定した後、Azure SQL Database、Azure SQL Managed Instance、Azure Synapse Analytics の Synapse SQL で Microsoft Entra を構成する方法については、「Microsoft Entra を構成する方法」および「Azure VM 上の SQL Server を使用して Microsoft Entra を構成する方法」を参照してください。

Note

Microsoft Entra ID は、Azure Active Directory (Azure AD) の新しい名前です。 現時点ではドキュメントは更新中です。

概要

Microsoft Entra 認証を使用すると、データベース ユーザーと他の Microsoft サービスの ID を一元管理できます。 ID の一元管理では、1 か所でデータベース ユーザーを管理できるようになるため、アクセス許可の管理が容易になります。 次のような利点があります。

  • SQL Server 認証の代替方法が用意されています。

  • サーバー全体でユーザー ID が急増するのを防ぐために役立ちます。

  • 1 か所でのパスワードのローテーションを許可します。

  • Microsoft Entra グループを使用して、データベースのアクセス許可を管理できます。

  • 統合 Windows 認証や、Microsoft Entra ID でサポートされる他の認証形式を有効にすることで、パスワードが保存されないようにすることができます。

  • Microsoft Entra 認証では、包含データベース ユーザーを使用して、データベース レベルで ID を認証します。

  • Microsoft Entra ID は、SQL Database と SQL Managed Instance に接続するアプリケーション向けにトークンベース認証をサポートしています。

  • Microsoft Entra 認証では次のことをサポートしています。

    • Microsoft Entra クラウド専用 ID
    • 以下をサポートする Microsoft Entra ハイブリッド ID
      • シームレス シングル サインオン (SSO) と 2 つのオプション (パススルー認証とパスワード ハッシュ認証) を組み合わせたクラウド認証。
      • フェデレーション認証。
    • Microsoft Entra の認証方法と、どれを選ぶべきかに関する詳しい内容については、次の記事をご覧ください:
  • SQL Server Management Studio では、多要素認証で Microsoft Entra を使用する接続がサポートされています。 多要素認証には、電話、テキスト メッセージ、スマート カードと PIN、モバイル アプリ通知など、各種確認オプションによる強力な認証が用意されています。 詳細については、Azure SQL Database、SQL Managed Instance、Azure Synapse での Azure 多要素認証対応の SSMS サポートを参照してください

  • SQL Server Data Tools (SSDT) では、Microsoft Entra ID を使用したさまざまな認証オプションもサポートされています。 詳細については、「Microsoft SQL Server Data Tools (SSDT) での Microsoft Entra ID サポート材」を参照してください。

構成の手順には、Microsoft Entra 認証を構成して使用する次の手順が含まれます。

  1. Microsoft Entra テナント を作成して設定します
  2. 省略可能: 現在 Azure サブスクリプションに関連付けられている現在のディレクトリを関連付けるか、変更します。
  3. Microsoft Entra 管理者を作成します。
  4. クライアント コンピューターを構成します。
  5. Microsoft Entra ID にマップされている包含データベース ユーザーをデータベースに作成します。
  6. Microsoft Entra ID を使用してデータベースに接続します。

Note

Azure SQL、Azure VM、SQL Server 2022 の場合、Microsoft Entra 認証は Microsoft Entra ID からのアクセス トークンのみに対応しており、サードパーティのアクセス トークンには対応していません。 また、Microsoft Entra ID では、Microsoft Entra ID クエリをサード パーティのエンドポイントにリダイレクトすることもサポートされていません。 これは、すべての SQL プラットフォームと、Microsoft Entra 認証に対応するすべてのオペレーティング システムに適用されます。

信頼のアーキテクチャ

  • Microsoft Entra ID、SQL Database、SQL Managed Instance、Windows Azure VM 上の SQL Server、Azure Synapse のクラウドの部分のみが、Microsoft Entra のネイティブ ユーザー パスワードに対応すると見なされます。
  • Windows シングル サインオン資格情報 (または Windows 資格情報のユーザーとパスワード) をサポートするには、パススルー認証とパスワード ハッシュ認証のためのシームレスなシングル サインオン用に構成されたフェデレーション ドメインまたはマネージド ドメインから得られる Microsoft Entra 資格情報を使用します。 詳細については、「Microsoft Entra シームレス シングル サインオン」を参照してください。
  • フェデレーション認証 (または Windows 資格情報のユーザー/パスワード) をサポートするには、ADFS ブロックとの通信が必要です。

Microsoft Entra ハイブリッド ID、セットアップ、および同期に関する詳細については、次の記事を参照してください。

ADFS インフラストラクチャ (または Windows 資格情報のユーザーとパスワード) を使用したサンプルのフェデレーション認証については、以下の図を参照してください。 矢印は通信経路を示します。

Diagram of Microsoft Entra authentication for Azure SQL.

次の図は、クライアントがトークンの送信によってデータベースへの接続を許可される、フェデレーション、信頼、およびホスティングの関係を示しています。 トークンは、Microsoft Entra ID によって認証され、データベースによって信頼されます。 顧客 1 は、ネイティブ ユーザーの Microsoft Entra ID またはフェデレーション ユーザーの Microsoft Entra ID を表します。 顧客 2 は、インポートされたユーザーなど、取りうるソリューションを表します。この例では、ADFS が Microsoft Entra ID と同期されているフェデレーション Microsoft Entra ID から取得しています。 重要なのは、Microsoft Entra 認証を使用してデータベースにアクセスするには、ホストしているサブスクリプションを Microsoft Entra ID に関連付ける必要があることを理解することです。 同じサブスクリプションを使用して、Azure SQL Database、SQL Managed Instance、または Azure Synapse リソースを作成する必要があります。

Diagram shows the relationship between subscriptions in the Microsoft Entra configuration.

管理者の構造

Microsoft Entra 認証を使用する場合、元の Azure SQL データベース管理者と Microsoft Entra 管理者の 2 つのサーバー管理者アカウントがあります。 同じ概念が Azure Synapse に適用されます。 ユーザー データベースに最初の Microsoft Entra ID 包含データベース ユーザーを作成できるのは、Microsoft Entra アカウントに基づく管理者のみです。 Microsoft Entra ユーザーまたは Microsoft Entra グループを Microsoft Entra 管理者のログインにすることができます。 管理者がグループ アカウントの場合は、サーバー用に複数の Microsoft Entra 管理者を有効にすることで、すべてのグループ メンバーがそのアカウントを使用できます。 グループ アカウントを管理者として使用すると、SQL Database または Azure Synapse でユーザーまたはアクセス許可を変更することなく Microsoft Entra でグループ メンバーを一元的に追加および削除できるため、より管理しやすくなります。 いつでも構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は 1 つだけです。

Diagram shows the administrator structure for Microsoft Entra ID used with SQL Server.

Note

Azure SQL での Microsoft Entra 認証では、Azure SQL リソースが現在存在する 1 つの Microsoft Entra テナントのみがサポートされます。 このテナントのすべての Microsoft Entra オブジェクトは、このテナント内の Azure SQL へのアクセスを許可するユーザーとして設定できます。 Microsoft Entra 管理者は、Azure SQL リソースのテナントに所属している必要もあります。 異なるテナントから Azure SQL にアクセスする Microsoft Entra マルチテナント認証はサポートされていません。

アクセス許可

新しいユーザーを作成するには、データベースにおける ALTER ANY USER アクセス許可が必要です。 ALTER ANY USER アクセス許可は、任意のデータベース ユーザーに付与できます。 ALTER ANY USER アクセス許可は、サーバーの管理者アカウント、そのデータベースの CONTROL ON DATABASEまたは ALTER ON DATABASE アクセス許可を持つデータベース ユーザー、db_owner データベース ロールのメンバーも保持しています。

Azure SQL Database、Azure SQL Managed Instance、または Azure Synapse に包含データベース ユーザーを作成するには、Microsoft Entra ID を使用してデータベースまたはインスタンスに接続する必要があります。 最初の包含データベース ユーザーを作成するには、(データベースの所有者である) Microsoft Entra 管理者を使用してデータベースに接続する必要があります。 これは、SQL Database または Azure Synapse で Microsoft Entra 認証を構成して管理する方法で説明されています。 Azure SQL Database、Azure SQL Managed Instance、または Azure Synapse に対して Microsoft Entra 管理者が作成された場合にのみ、任意の Microsoft Entra 認証が可能です。 Microsoft Entra 管理者がサーバーから削除された場合、サーバー内で以前に作成した既存の Microsoft Entra ユーザーは、Microsoft Entra 資格情報を使用してデータベースに接続できなくなります。

Microsoft Entra の機能と制限事項

  • Microsoft Entra ID の次のメンバーを Azure SQL Database にプロビジョニングできます。

    • ネイティブ メンバー:マネージド ドメインまたは顧客のドメインの Microsoft Entra ID で作成したメンバー。 詳細については、「Microsoft Entra ID に独自ドメイン名を追加する」を参照してください。
    • Microsoft Entra ID とフェデレーションされた Active Directory ドメインのメンバー (パススルー認証またはパスワード ハッシュ認証によるシームレスなシングル サインオン用に構成されたマネージド ドメイン上)。 詳細については、「Microsoft Entra ID とのフェデレーション」および「Microsoft Entra のシームレス シングル サインオン」をご覧ください。
    • ゲスト ユーザーは、お使いの Microsoft Entra テナントの外部からアカウントから Microsoft Entra テナントにユーザーを招待できる、Microsoft Entra 外部 IDの機能です。
    • セキュリティ グループとして作成された Active Directory グループ。
  • db_owner データベース ロールのメンバーであるグループに含まれている Microsoft Entra ユーザーは、Azure SQL Database と Azure Synapse に対して CREATE DATABASE SCOPED CREDENTIAL 構文を使用できません。 次のエラーが表示されます。

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't 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(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Azure SQL Database では、Microsoft Entra グループ メンバーシップの一部としてログインしているユーザーに暗黙的なユーザーを作成しません。 このため、その Microsoft Entra グループがそれらのアクセス許可を持つロールにメンバーとして追加されている場合でも、所有権の割り当てが必要なさまざまな操作が失敗します。

    たとえば、db_ddladmin ロールを持つ Microsoft Entra グループを介しデータベースにサインインしたユーザーは、スキーマに明示的に定義されていない限り (テーブル、ビュー、型など)、CREATE SCHEMA、ALTER SCHEMA、およびその他のオブジェクト作成ステートメントを実行することができません。 これを解決するには、そのユーザーに対して Microsoft Entra ユーザーを作成するか、Microsoft Entra グループを変更して DEFAULT_SCHEMA を dbo に割り当てる必要があります。

SQL Managed Instance

  • Microsoft Entra のサーバー プリンシパル (ログイン) とユーザーは、SQL Managed Instance でサポートされています。

  • Microsoft Entra グループにマップされた Microsoft Entra ログインをデータベース所有者として設定することは、SQL Managed Instance ではサポートされていません。

    • この拡張機能により、グループが dbcreator サーバー ロールの一部として追加されたときに、このグループのユーザーが SQL Managed Instance に接続して新しいデータベースを作成できますが、データベースにアクセスすることはできません。 これは、新しいデータベース所有者が SA であり、Microsoft Entra ユーザーではないためです。 この問題は、dbcreator サーバー ロールに個々のユーザーが追加された場合は発生しません。
  • SQL エージェントの管理とジョブの実行は、Microsoft Entra ログインでサポートされています。

  • データベースのバックアップと復元操作は、Microsoft Entra サーバー プリンシパル (ログイン) で実行できます。

  • Microsoft Entra サーバー プリンシパル (ログイン) と認証イベントに関連するすべてのステートメントの監査がサポートされています。

  • sysadmin サーバー ロールのメンバーである Microsoft Entra サーバー プリンシパル (ログイン) の専用管理者接続がサポートされています。

    • sqlcmd ユーティリティおよび SQL Server Management Studio 経由でサポートされています。
  • Microsoft Entra サーバー プリンシパル (ログイン) によるログオン イベントでは、ログオン トリガーがサポートされています。

  • Service Broker とデータベース メールは、Microsoft Entra サーバー プリンシパル (ログイン) を使用して設定できます。

Microsoft Entra 識別情報を使用して接続する

Microsoft Entra 認証は、Microsoft Entra ID の識別情報を使用してデータベースに接続するために次の方法をサポートしています。

  • Microsoft Entra パスワード
  • Microsoft Entra 統合
  • 多要素認証を使用した Microsoft Entra Universal
  • アプリケーション トークン認証を使用する

Microsoft Entra サーバー プリンシパル (ログイン) では、次の認証方法がサポートされています。

  • Microsoft Entra パスワード
  • Microsoft Entra 統合
  • 多要素認証を使用した Microsoft Entra Universal

その他の注意点

  • さらに管理しやすくするには、管理者として専用の Microsoft Entra グループをプロビジョニングすることをお勧めします。
  • SQL Database または Azure Synapse のサーバー用にいつでも構成できる Microsoft Entra 管理者 (ユーザーまたはグループ) は 1 つだけです。
    • SQL Managed Instance 用の Microsoft Entra サーバー プリンシパル (ログイン) の追加により、sysadmin ロールに追加できる複数の Microsoft Entra サーバー プリンシパル (ログイン) を作成できます。
  • 最初に Microsoft Entra アカウントを使用してサーバーまたはマネージド インスタンスに接続できるのは、サーバーの Microsoft Entra 管理者だけです。 Microsoft Entra 管理者は、後続の Microsoft Entra データベース ユーザーを構成できます。
  • 2048 より多くの Microsoft Entra セキュリティ グループに属している Microsoft Entra のユーザーとサービス プリンシパル (Microsoft Entra アプリケーション) は、SQL Database、SQL Managed Instance、または Azure Synapse のデータベースにログインできません。
  • 接続のタイムアウトを 30 秒に設定することをお勧めします。
  • SQL Server 2016 Management Studio と SQL Server Data Tools for Visual Studio 2015 (バージョン 14.0.60311.1April 2016 以降) では、Azure Active Directory 認証がサポートされています (Microsoft Entra 認証は、.NET Framework Data Provider for SqlServer (.NET Framework 4.6 以降のバージョン) でサポートされています)。 したがって、これらのツールとデータ層アプリケーション (DAC および BACPAC) の最新のバージョンでは、Microsoft Entra 認証を使用できます。
  • バージョン 15.0.1 以降では、sqlcmd ユーティリティbcp ユーティリティは Multi-Factor Authentication を使用した 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 認証をサポートしています。 「 接続プロパティの設定」もご覧ください。
  • PolyBase では Microsoft Entra 認証を使用した認証は行えません。
  • Azure SQL Database と Azure Synapse 用 Microsoft Entra 認証は、Azure Portal の [データベースのインポート] ブレードと [データベースのエクスポート] ブレードによりサポートされています。 Microsoft Entra 認証を使用したインポートとエクスポートは、PowerShell コマンドでもサポートされています。
  • Microsoft Entra 認証は、CLI を使用することによって、SQL Database、SQL Managed Instance、Azure Synapse でサポートされます。 詳細については、SQL Database または Azure Synapse で Microsoft Entra 認証を構成して管理する方法と「SQL Server - az sql server」を参照してください。

次のステップ