Azure Active Directory 認証を使用するUse Azure Active Directory authentication

適用対象: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics (SQL DW)

Azure Active Directory (Azure AD) 認証は、Azure AD の ID を使用して Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (旧称 SQL Data Warehouse) に接続するメカニズムです。Azure Active Directory (Azure AD) authentication is a mechanism for connecting to Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics (formerly SQL Data Warehouse) by using identities in Azure AD.

注意

この記事は、Azure SQL Database、SQL Managed Instance、Azure Synapse Analytics に当てはまります。This article applies to Azure SQL Database, SQL Managed Instance, and Azure Synapse Analytics.

Azure AD 認証を使用すると、データベース ユーザーの ID や他の Microsoft サービスを一元管理できます。With Azure AD authentication, you can centrally manage the identities of database users and other Microsoft services in one central location. ID の一元管理では、1 か所でデータベース ユーザーを管理できるようになるため、アクセス許可の管理が容易になります。Central ID management provides a single place to manage database users and simplifies permission management. 次のような利点があります。Benefits include the following:

  • SQL Server 認証の代替方法が用意されています。It provides an alternative to SQL Server authentication.

  • サーバー全体でユーザー ID が急増するのを防ぐために役立ちます。It helps stop the proliferation of user identities across servers.

  • 1 か所でのパスワードのローテーションを許可します。It allows password rotation in a single place.

  • 顧客は外部の (Azure AD) グループを使用してデータベースのアクセス許可を管理できます。Customers can manage database permissions using external (Azure AD) groups.

  • 統合 Windows 認証や、Azure Active Directory でサポートされる他の認証形式を有効にすることで、パスワードが保存されないようにすることができます。It can eliminate storing passwords by enabling integrated Windows authentication and other forms of authentication supported by Azure Active Directory.

  • Azure AD 認証では、包含データベース ユーザーを使用して、データベース レベルで ID を認証します。Azure AD authentication uses contained database users to authenticate identities at the database level.

  • Azure AD は、SQL Database と SQL Managed Instance に接続するアプリケーション向けにトークンベース認証をサポートしています。Azure AD supports token-based authentication for applications connecting to SQL Database and SQL Managed Instance.

  • Azure AD 認証のサポート対象:Azure AD authentication supports:

  • Azure AD 認証は、Multi-Factor Authentication を含む Active Directory ユニバーサル認証を使用する SQL Server Management Studio からの接続をサポートします。Azure AD supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes Multi-Factor Authentication. Multi-Factor Authentication には、電話、テキスト メッセージ、スマート カードと PIN、モバイル アプリ通知など、簡単な確認オプションによる強力な認証が含まれています。Multi-Factor Authentication includes strong authentication with a range of easy verification options — phone call, text message, smart cards with pin, or mobile app notification. 詳細については、Azure SQL Database、SQL Managed Instance、Azure Synapse での Azure Multi-Factor Authentication 対応の SSMS サポートに関するページを参照してくださいFor more information, see SSMS support for Azure AD Multi-Factor Authentication with Azure SQL Database, SQL Managed Instance, and Azure Synapse

  • Azure AD は、Active Directory 対話型認証を使用する SQL Server Data Tools (SSDT) からの同様の接続をサポートしています。Azure AD supports similar connections from SQL Server Data Tools (SSDT) that use Active Directory Interactive Authentication. 詳細については、「SQL Server Data Tools (SSDT) での Azure Active Directory のサポート」を参照してください。For more information, see Azure Active Directory support in SQL Server Data Tools (SSDT)

注意

Azure Active Directory アカウントを使用した Azure 仮想マシン (VM) 上で実行されている SQL Server インスタンスへの接続はサポートされていません。Connecting to a SQL Server instance that's running on an Azure virtual machine (VM) is not supported using an Azure Active Directory account. 代わりにドメインの Active Directory アカウントを使用してください。Use a domain Active Directory account instead.

構成の手順には、Azure Active Directory 認証を構成して使用する次の手順が含まれます。The configuration steps include the following procedures to configure and use Azure Active Directory authentication.

  1. Azure AD を作成して設定します。Create and populate Azure AD.
  2. 省略可能:Active Directory を関連付けるか、現在 Azure サブスクリプションに関連付けられている Active Directory を変更します。Optional: Associate or change the active directory that is currently associated with your Azure Subscription.
  3. Azure Active Directory 管理者を作成します。Create an Azure Active Directory administrator.
  4. クライアント コンピューターを構成します。Configure your client computers.
  5. Azure AD の ID にマップされている包含データベース ユーザーをデータベースに作成します。Create contained database users in your database mapped to Azure AD identities.
  6. Azure AD の ID を使用してデータベースに接続します。Connect to your database by using Azure AD identities.

注意

Azure AD を作成して設定した後、Azure SQL Database、SQL Managed Instance、Azure Synapse で Azure AD を構成する方法については、Azure SQL Database での Azure AD の構成に関するページを参照してください。To learn how to create and populate Azure AD, and then configure Azure AD with Azure SQL Database, SQL Managed Instance, and Azure Synapse, see Configure Azure AD with Azure SQL Database.

信頼のアーキテクチャTrust architecture

  • Azure AD のネイティブ ユーザー パスワードをサポートする場合は、Azure AD、SQL Database、SQL Managed Instance、Azure Synapse のクラウドの部分のみを考慮します。Only the cloud portion of Azure AD, SQL Database, SQL Managed Instance, and Azure Synapse is considered to support Azure AD native user passwords.
  • Windows シングル サインオン資格情報 (または Windows 資格情報のユーザーとパスワード) をサポートするには、パススルー認証とパスワード ハッシュ認証のためのシームレスなシングル サインオン用に構成されたフェデレーション ドメインまたはマネージド ドメインから得られる Azure Active Directory 資格情報を使用します。To support Windows single sign-on credentials (or user/password for Windows credential), use Azure Active Directory credentials from a federated or managed domain that is configured for seamless single sign-on for pass-through and password hash authentication. 詳しくは、「Azure Active Directory シームレス シングル サインオン」をご覧ください。For more information, see Azure Active Directory Seamless Single Sign-On.
  • フェデレーション認証 (または Windows 資格情報のユーザー/パスワード) をサポートするには、ADFS ブロックとの通信が必要です。To support Federated authentication (or user/password for Windows credentials), the communication with ADFS block is required.

Azure AD ハイブリッド ID、セットアップ、および同期に関する詳細については、次の記事を参照してください。For more information on Azure AD hybrid identities, the setup, and synchronization, see the following articles:

ADFS インフラストラクチャ (または Windows 資格情報のユーザーとパスワード) を使用したサンプルのフェデレーション認証については、以下の図を参照してください。For a sample federated authentication with ADFS infrastructure (or user/password for Windows credentials), see the diagram below. 矢印は通信経路を示します。The arrows indicate communication pathways.

aad auth diagram

次の図は、クライアントがトークンの送信によってデータベースへの接続を許可される、フェデレーション、信頼、およびホスティングの関係を示しています。The following diagram indicates the federation, trust, and hosting relationships that allow a client to connect to a database by submitting a token. トークンは、Azure AD によって認証され、データベースによって信頼されます。The token is authenticated by an Azure AD, and is trusted by the database. 顧客 1 は、Azure Active Directory とネイティブ ユーザーまたは Azure AD とフェデレーション ユーザーを表します。Customer 1 can represent an Azure Active Directory with native users or an Azure AD with federated users. 顧客 2 は、インポートされたユーザーなどの可能性のあるソリューションを表します。この例では、Azure Active Directory および Azure Active Directory と同期された ADFS です。Customer 2 represents a possible solution including imported users, in this example coming from a federated Azure Active Directory with ADFS being synchronized with Azure Active Directory. 重要なのは、Azure AD 認証を使用してデータベースにアクセスするには、ホストしているサブスクリプションを Azure AD に関連付ける必要があることを理解することです。It's important to understand that access to a database using Azure AD authentication requires that the hosting subscription is associated to the Azure AD. 同じサブスクリプションを使用して、Azure SQL Database、SQL Managed Instance、または Azure Synapse リソースを作成する必要があります。The same subscription must be used to create the Azure SQL Database, SQL Managed Instance, or Azure Synapse resources.

サブスクリプションの関係性

管理者の構造Administrator structure

Azure AD 認証を使用する場合、元の Azure SQL Server 管理者と Azure AD 管理者の 2 つのサーバー管理者アカウントがあります。When using Azure AD authentication, there are two Administrator accounts: the original Azure SQL Database administrator and the Azure AD administrator. 同じ概念が Azure Synapse に適用されます。The same concepts apply to Azure Synapse. ユーザー データベースに最初の Azure AD 包含データベース ユーザーを作成できるのは、Azure AD アカウントに基づく管理者のみです。Only the administrator based on an Azure AD account can create the first Azure AD contained database user in a user database. Azure AD の管理者ログインには、Azure AD ユーザーまたは Azure AD グループを使用できます。The Azure AD administrator login can be an Azure AD user or an Azure AD group. 管理者がグループ アカウントの場合は、サーバー用に複数の Azure AD 管理者を有効にすることで、すべてのグループ メンバーがそのアカウントを使用できます。When the administrator is a group account, it can be used by any group member, enabling multiple Azure AD administrators for the server. グループ アカウントを管理者として使用すると、SQL Database または Azure Synapse でユーザーまたはアクセス許可を変更することなく Azure AD でグループ メンバーを一元的に追加および削除できるため、より管理しやすくなります。Using group account as an administrator enhances manageability by allowing you to centrally add and remove group members in Azure AD without changing the users or permissions in SQL Database or Azure Synapse. いつでも構成できる Azure AD 管理者 (ユーザーまたはグループ) は 1 つだけです。Only one Azure AD administrator (a user or group) can be configured at any time.

admin structure

アクセス許可Permissions

新しいユーザーを作成するには、データベースにおける ALTER ANY USER アクセス許可が必要です。To create new users, you must have the ALTER ANY USER permission in the database. ALTER ANY USER アクセス許可は、任意のデータベース ユーザーに付与できます。The ALTER ANY USER permission can be granted to any database user. ALTER ANY USER アクセス許可は、サーバーの管理者アカウント、そのデータベースの CONTROL ON DATABASEまたは ALTER ON DATABASE アクセス許可を持つデータベース ユーザー、db_owner データベース ロールのメンバーも保持しています。The ALTER ANY USER permission is also held by the server administrator accounts, and database users with the CONTROL ON DATABASE or ALTER ON DATABASE permission for that database, and by members of the db_owner database role.

Azure SQL Database、SQL Managed Instance、または Azure Synapse に包含データベース ユーザーを作成するには、Azure AD ID を使用してデータベースまたはインスタンスに接続する必要があります。To create a contained database user in Azure SQL Database, SQL Managed Instance, or Azure Synapse, you must connect to the database or instance using an Azure AD identity. 最初の包含データベース ユーザーを作成するには、(データベースの所有者である) Azure AD 管理者を使用してデータベースに接続する必要があります。To create the first contained database user, you must connect to the database by using an Azure AD administrator (who is the owner of the database). これは、SQL Database または Azure Synapse で Azure Active Directory 認証を構成して管理する方法に関するページで説明されています。This is demonstrated in Configure and manage Azure Active Directory authentication with SQL Database or Azure Synapse. Azure SQL Database、SQL Managed Instance、または Azure Synapse に対して Azure AD 管理者が作成された場合にのみ、任意の Azure AD 認証が可能です。Azure AD authentication is only possible if the Azure AD admin was created for Azure SQL Database, SQL Managed Instance, or Azure Synapse. Azure Active Directory 管理者がサーバーから削除された場合、SQL Server 内に以前に作成された既存の Azure Active Directory ユーザーは、Azure Active Directory 資格情報を使用してもデータベースにアクセスできなくなります。If the Azure Active Directory admin was removed from the server, existing Azure Active Directory users created previously inside SQL Server can no longer connect to the database using their Azure Active Directory credentials.

Azure AD の機能と制限事項Azure AD features and limitations

  • Azure AD の次のメンバーを Azure SQL Database にプロビジョニングできます。The following members of Azure AD can be provisioned for Azure SQL Database:

  • db_owner サーバー ロールを持つグループに含まれている Azure AD ユーザーは、Azure SQL Database と Azure Synapse に対して CREATE DATABASE SCOPED CREDENTIAL 構文を使用できません。Azure AD users that are part of a group that has db_owner server role cannot use the CREATE DATABASE SCOPED CREDENTIAL syntax against Azure SQL Database and Azure Synapse. 次のエラーが表示されます。You will see the following error:

    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 ロールを個々の Azure AD ユーザーに直接付与します。Grant the db_owner role directly to the individual Azure AD user to mitigate the CREATE DATABASE SCOPED CREDENTIAL issue.

  • Azure AD プリンシパル下で実行された場合、以下のシステム関数は NULL 値を返します。These system functions return NULL values when executed under Azure AD principals:

    • SUSER_ID()
    • SUSER_NAME(<admin ID>)
    • SUSER_SNAME(<admin SID>)
    • SUSER_ID(<admin name>)
    • SUSER_SID(<admin name>)

SQL Managed InstanceSQL Managed Instance

  • Azure AD のサーバー プリンシパル (ログイン) とユーザーは、SQL Managed Instance でサポートされています。Azure AD server principals (logins) and users are supported for SQL Managed Instance.
  • Azure AD グループにマップされた Azure AD サーバー プリンシパル (ログイン) をデータベース所有者として設定することは、SQL Managed Instance ではサポートされていません。Setting Azure AD server principals (logins) mapped to an Azure AD group as database owner is not supported in SQL Managed Instance.
    • この拡張機能により、グループが dbcreator サーバー ロールの一部として追加されたときに、このグループのユーザーが SQL Managed Instance に接続して新しいデータベースを作成できますが、データベースにアクセスすることはできません。An extension of this is that when a group is added as part of the dbcreator server role, users from this group can connect to the SQL Managed Instance and create new databases, but will not be able to access the database. これは、新しいデータベース所有者が SA であり、Azure AD ユーザーではないためです。This is because the new database owner is SA, and not the Azure AD user. この問題は、dbcreator サーバー ロールに個々のユーザーが追加された場合は発生しません。This issue does not manifest if the individual user is added to the dbcreator server role.
  • SQL Agent の管理とジョブの実行が、Azure AD サーバー プリンシパル (ログイン) に対してサポートされています。SQL Agent management and jobs execution are supported for Azure AD server principals (logins).
  • データベースのバックアップと復元操作は、Azure AD サーバー プリンシパル (ログイン) が実行できます。Database backup and restore operations can be executed by Azure AD server principals (logins).
  • Azure AD サーバー プリンシパル (ログイン) と認証イベントに関連するすべてのステートメントの監査がサポートされています。Auditing of all statements related to Azure AD server principals (logins) and authentication events is supported.
  • sysadmin サーバー ロールのメンバーである Azure AD サーバー プリンシパル (ログイン) の専用管理者接続がサポートされています。Dedicated administrator connection for Azure AD server principals (logins) which are members of sysadmin server role is supported.
    • sqlcmd ユーティリティおよび SQL Server Management Studio 経由でサポートされています。Supported through SQLCMD Utility and SQL Server Management Studio.
  • Azure AD サーバー プリンシパル (ログイン) によるログオン イベントでは、ログオン トリガーがサポートされています。Logon triggers are supported for logon events coming from Azure AD server principals (logins).
  • Service Broker とデータベース メールは、Azure AD サーバー プリンシパル (ログイン) を使用して設定できます。Service Broker and DB mail can be setup using an Azure AD server principal (login).

Azure AD の ID を使用して接続するConnect by using Azure AD identities

Azure Active Directory 認証では、Azure AD の ID を使用してデータベースに接続する次の方法がサポートされています。Azure Active Directory authentication supports the following methods of connecting to a database using Azure AD identities:

  • Azure Active Directory パスワードAzure Active Directory Password
  • Azure Active Directory 統合Azure Active Directory Integrated
  • Multi-Factor Authentication で汎用の Azure Active DirectoryAzure Active Directory Universal with Multi-Factor Authentication
  • アプリケーション トークン認証を使用するUsing Application token authentication

Azure AD サーバー プリンシパル (ログイン) では、次の認証方法がサポートされています。The following authentication methods are supported for Azure AD server principals (logins):

  • Azure Active Directory パスワードAzure Active Directory Password
  • Azure Active Directory 統合Azure Active Directory Integrated
  • Multi-Factor Authentication で汎用の Azure Active DirectoryAzure Active Directory Universal with Multi-Factor Authentication

その他の注意点Additional considerations

  • さらに管理しやすくするには、管理者として専用の Azure AD グループをプロビジョニングすることをお勧めします。To enhance manageability, we recommend you provision a dedicated Azure AD group as an administrator.
  • SQL Database または Azure Synapse のサーバー用にいつでも構成できる Azure AD 管理者 (ユーザーまたはグループ) は 1 つだけです。Only one Azure AD administrator (a user or group) can be configured for a server in SQL Database or Azure Synapse at any time.
    • SQL Managed Instance 用の Azure AD サーバー プリンシパル (ログイン) の追加により、sysadmin ロールに追加できる複数の Azure AD サーバー プリンシパル (ログイン) を作成できる可能性があります。The addition of Azure AD server principals (logins) for SQL Managed Instance allows the possibility of creating multiple Azure AD server principals (logins) that can be added to the sysadmin role.
  • Azure Active Directory アカウントを使用して最初に サーバーまたはマネージド インスタンスに接続できるのは、サーバーの Azure AD 管理者だけです。Only an Azure AD administrator for the server can initially connect to the server or managed instance using an Azure Active Directory account. Active Directory 管理者は、それ以降の Azure AD のデータベース ユーザーを構成できます。The Active Directory administrator can configure subsequent Azure AD database users.
  • 接続のタイムアウトを 30 秒に設定することをお勧めします。We recommend setting the connection timeout to 30 seconds.
  • SQL Server 2016 Management Studio と SQL Server Data Tools for Visual Studio 2015 (バージョン 14.0.60311.1April 2016 以降) では、Azure Active Directory 認証がサポートされていますSQL Server 2016 Management Studio and SQL Server Data Tools for Visual Studio 2015 (version 14.0.60311.1April 2016 or later) support Azure Active Directory authentication. (Azure AD 認証は、 .NET Framework Data Provider for SqlServer (.NET Framework 4.6 以降のバージョン) でサポートされています)。(Azure AD authentication is supported by the .NET Framework Data Provider for SqlServer ; at least version .NET Framework 4.6). したがって、これらのツールとデータ層アプリケーション (DAC および BACPAC) の最新のバージョンでは、Azure AD 認証を使用できます。Therefore the newest versions of these tools and data-tier applications (DAC and BACPAC) can use Azure AD authentication.
  • バージョン 15.0.1 以降では、sqlcmd ユーティリティbcp ユーティリティは Multi-Factor Authentication を使用した Active Directory 対話型認証をサポートしています。Beginning with version 15.0.1, sqlcmd utility and bcp utility support Active Directory Interactive authentication with Multi-Factor Authentication.
  • SQL Server Data Tools for Visual Studio 2015 には、April 2016 バージョン以降の Data Tools (バージョン 14.0.60311.1) が必要です。SQL Server Data Tools for Visual Studio 2015 requires at least the April 2016 version of the Data Tools (version 14.0.60311.1). 現在、Azure AD ユーザーは SSDT のオブジェクト エクスプローラーに表示されません。Currently, Azure AD users are not shown in SSDT Object Explorer. 回避策として、ユーザーを sys.database_principals で表示してください。As a workaround, view the users in sys.database_principals.
  • Microsoft JDBC Driver 6.0 for SQL Server は、Azure AD 認証をサポートしています。Microsoft JDBC Driver 6.0 for SQL Server supports Azure AD authentication. 接続プロパティの設定」もご覧ください。Also, see Setting the Connection Properties.
  • PolyBase では Azure AD 認証を使用した認証は行えません。PolyBase cannot authenticate by using Azure AD authentication.
  • Azure SQL Database と Azure Synapse 向けの Azure AD 認証は、Azure Portal の [データベースのインポート] ブレードと [データベースのエクスポート] ブレードによりサポートされています。Azure AD authentication is supported for Azure SQL Database and Azure Synapse by using the Azure portal Import Database and Export Database blades. Azure AD 認証を使用したインポートとエクスポートは、PowerShell コマンドでもサポートされています。Import and export using Azure AD authentication is also supported from a PowerShell command.
  • Azure AD 認証は、CLI を使用することによって、SQL Database、SQL Managed Instance、Azure Synapse でサポートされます。Azure AD authentication is supported for SQL Database, SQL Managed Instance, and Azure Synapse with using the CLI. 詳細については、SQL Database または Azure Synapse で Azure AD 認証を構成して管理する方法に関するページと「SQL Server - az sql server」を参照してください。For more information, see Configure and manage Azure AD authentication with SQL Database or Azure Synapse and SQL Server - az sql server.

次のステップNext steps