SQL Database または SQL Data Warehouse で Azure Active Directory 認証を構成して管理するConfigure and manage Azure Active Directory authentication with SQL Database or SQL Data Warehouse

この記事では、Azure AD を作成して設定した後、Azure SQL Database と SQL Data Warehouse で Azure AD を使用する方法を示します。This article shows you how to create and populate Azure AD, and then use Azure AD with Azure SQL Database and SQL Data Warehouse. 概要については、「Azure Active Directory 認証」を参照してください。For an overview, see Azure Active Directory Authentication.

注意

Azure Active Directory アカウントを使用している場合、Azure VM 上で実行されている SQL Server への接続はサポートされていません。Connecting to SQL Server running on an Azure VM is not supported using an Azure Active Directory account. 代わりにドメインの Active Directory アカウントを使用してください。Use a domain Active Directory account instead.

Azure AD を作成して設定するCreate and populate an Azure AD

Azure AD を作成し、ユーザーとグループを設定します。Create an Azure AD and populate it with users and groups. Azure AD は初期の Azure AD の管理対象ドメインにすることができます。Azure AD can be the initial Azure AD managed domain. また、Azure AD とフェデレーションされるオンプレミスの Active Directory Domain Services にすることもできます。Azure AD can also be an on-premises Active Directory Domain Services that is federated with the Azure AD.

詳細については、「オンプレミス ID と Azure Active Directory の統合」、Azure AD への独自のドメイン名の追加に関するページ、「Microsoft Azure now supports federation with Windows Server Active Directory」(Microsoft Azure が Windows Server Active Directory とのフェデレーションに対応)、「Azure AD ディレクトリの管理」、Windows PowerShell を使用した Azure AD の管理に関するページ、および「Hybrid Identity Required Ports and Protocols」(ハイブリッド ID の必須ポートとプロトコル) を参照してください。For more information, see Integrating your on-premises identities with Azure Active Directory, Add your own domain name to Azure AD, Microsoft Azure now supports federation with Windows Server Active Directory, Administering your Azure AD directory, Manage Azure AD using Windows PowerShell, and Hybrid Identity Required Ports and Protocols.

省略可能: Active Directory を関連付けるか、現在 Azure サブスクリプションに関連付けられている Active Directory を変更するOptional: Associate or change the active directory that is currently associated with your Azure Subscription

データベースを組織の Azure AD ディレクトリに関連付けるには、そのディレクトリを、データベースをホストする Azure サブスクリプションの信頼できるディレクトリにします。To associate your database with the Azure AD directory for your organization, make the directory a trusted directory for the Azure subscription hosting the database. 詳細については、 Azure サブスクリプションを Azure AD に関連付ける方法を参照してください。For more information, see How Azure subscriptions are associated with Azure AD.

追加情報: すべての Azure サブスクリプションには、Azure AD インスタンスとの信頼関係があります。Additional information: Every Azure subscription has a trust relationship with an Azure AD instance. つまり、ディレクトリを信頼してユーザー、サービス、デバイスを認証します。This means that it trusts that directory to authenticate users, services, and devices. 複数のサブスクリプションが同じディレクトリを信頼できますが、1 つのサブスクリプションは 1 つのディレクトリだけを信頼します。Multiple subscriptions can trust the same directory, but a subscription trusts only one directory. サブスクリプションが信頼しているディレクトリは、https://manage.windowsazure.com/[設定] タブで確認できます。You can see which directory is trusted by your subscription under the Settings tab at https://manage.windowsazure.com/. このサブスクリプションとディレクトリの間の信頼関係は、サブスクリプションと Azure 内の他のすべてのリソース (Web サイト、データベースなど) の間の関係と異なります。後者は、サブスクリプションの子リソースにより近いものです。This trust relationship that a subscription has with a directory is unlike the relationship that a subscription has with all other resources in Azure (websites, databases, and so on), which are more like child resources of a subscription. サブスクリプションの有効期限が切れた場合、サブスクリプションに関連付けられたこれらの他のリソースへのアクセスも停止します。If a subscription expires, then access to those other resources associated with the subscription also stops. 一方、ディレクトリは Azure 内に残っており、別のサブスクリプションをそのディレクトリと関連付けて、ディレクトリ ユーザーの管理を継続できます。But the directory remains in Azure, and you can associate another subscription with that directory and continue to manage the directory users. リソースの詳細については、Azure でのリソース アクセスの説明に関するページを参照してください。For more information about resources, see Understanding resource access in Azure.

次の手順は、特定のサブスクリプションの関連付けられたディレクトリを変更する方法を示しています。The following procedures show you how to change the associated directory for a given subscription.

  1. Azure サブスクリプションの管理者を使用して Azure クラシック ポータル に接続します。Connect to your Azure Classic Portal by using an Azure subscription administrator.
  2. 左側のバナーで [設定]を選択します。On the left banner, select SETTINGS.
  3. [設定] 画面にサブスクリプションが表示されます。Your subscriptions appear in the settings screen. 目的のサブスクリプションが表示されていない場合は、上部にある [サブスクリプション] をクリックし、[ディレクトリでフィルター] ボックスの一覧でサブスクリプションが含まれるディレクトリを選択して、[適用] をクリックします。If the desired subscription does not appear, click Subscriptions at the top, drop down the FILTER BY DIRECTORY box and select the directory that contains your subscriptions, and then click APPLY.

    サブスクリプションを選択する

  4. [設定] 領域でサブスクリプションをクリックし、ページの下部にある [ディレクトリの編集] をクリックします。In the settings area, click your subscription, and then click EDIT DIRECTORY at the bottom of the page.

    ad-settings-portal

  5. [ディレクトリの編集] ボックスで、SQL Server または SQL Data Warehouse に関連付けられている Azure Active Directory を選択し、矢印をクリックして次に進みます。In the EDIT DIRECTORY box, select the Azure Active Directory that is associated with your SQL Server or SQL Data Warehouse, and then click the arrow for next.

    edit-directory-select

  6. [ディレクトリ マッピングの確認] ダイアログ ボックスで、"共同管理者は全員削除されます。" と表示されていることを確認します。In the CONFIRM directory Mapping dialog box, confirm that "All co-administrators will be removed."

    edit-directory-confirm

  7. チェック マークをクリックしてポータルを再度読み込みます。Click the check to reload the portal.

    注意

    ディレクトリを変更すると、共同管理者、Azure AD のユーザーとグループ、ディレクトリでサポートされているリソース ユーザーすべてへのアクセスが削除され、それらはこのサブスクリプションまたはそのリソースにアクセスできなくなります。When you change the directory, access to all co-administrators, Azure AD users and groups, and directory-backed resource users are removed and they no longer have access to this subscription or its resources. サービス管理者のみ、新しいディレクトリに基づくプリンシパルのアクセスを構成できます。Only you, as a service administrator, can configure access for principals based on the new directory. この変更は、すべてのリソースに反映されるまで相当な時間がかかる場合があります。This change might take a substantial amount of time to propagate to all resources. ディレクトリを変更すると、SQL Database および SQL Data Warehouse の Azure AD 管理者も変更されるため、既存のすべての Azure AD ユーザーはデータベースにアクセスできなくなります。Changing the directory, also changes the Azure AD administrator for SQL Database and SQL Data Warehouse and disallow database access for any existing Azure AD users. Azure AD の管理者を再設定し (後で説明)、新しい Azure AD ユーザーを作成する必要があります。The Azure AD admin must be reset (as described below) and new Azure AD users must be created.

Azure SQL Server の Azure AD 管理者を作成するCreate an Azure AD administrator for Azure SQL server

(SQL Database または SQL Data Warehouse をホストする) 各 Azure SQL Server は、Azure SQL Server 全体の管理者である 1 つのサーバー管理者アカウントから開始します。Each Azure SQL server (which hosts a SQL Database or SQL Data Warehouse) starts with a single server administrator account that is the administrator of the entire Azure SQL server. Azure AD アカウントであるもう 1 つの SQL Server 管理者を作成する必要があります。A second SQL Server administrator must be created, that is an Azure AD account. このプリンシパルは、master データベースの包含データベース ユーザーとして作成されます。This principal is created as a contained database user in the master database. 管理者の場合、サーバー管理者アカウントは、すべてのユーザー データベースの db_owner ロールのメンバーであり、dbo ユーザーとして各ユーザー データベースに入ります。As administrators, the server administrator accounts are members of the db_owner role in every user database, and enter each user database as the dbo user. サーバー管理者アカウントについて詳しくは、「Azure SQL Database におけるデータベースとログインの管理」をご覧ください。For more information about the server administrator accounts, see Managing Databases and Logins in Azure SQL Database.

geo レプリケーションで Azure Active Directory を使用する場合は、プライマリ サーバーとセカンダリ サーバーの両方で Azure Active Directory 管理者を構成する必要があります。When using Azure Active Directory with geo-replication, the Azure Active Directory administrator must be configured for both the primary and the secondary servers. サーバーに Azure Active Directory 管理者がいない場合、Azure Active Directory へのログイン時に、"接続できません" サーバー エラーが発生します。If a server does not have an Azure Active Directory administrator, then Azure Active Directory logins and users receive a "Cannot connect" to server error.

注意

Azure AD アカウント (Azure SQL Server の管理者アカウントを含みます) に基づいていないユーザーは、Azure AD に基づくユーザーを作成できません。これは、Azure AD で提示されるデータベース ユーザーを検証するアクセス許可がないためです。Users that are not based on an Azure AD account (including the Azure SQL server administrator account), cannot create Azure AD-based users, because they do not have permission to validate proposed database users with the Azure AD.

Azure SQL Server の Azure Active Directory 管理者をプロビジョニングしますProvision an Azure Active Directory administrator for your Azure SQL server

次の 2 つの手順は、Azure Portal と PowerShell を使用して、Azure SQL Server の Azure Active Directory 管理者をプロビジョニングする方法を示しています。The following two procedures show you how to provision an Azure Active Directory administrator for your Azure SQL server in the Azure portal and by using PowerShell.

Azure PortalAzure portal

  1. Azure Portal の右上隅にあるユーザー アイコンをクリックすると、Active Directory 候補の一覧がドロップダウンで表示されます。In the Azure portal, in the upper-right corner, click your connection to drop down a list of possible Active Directories. 既定の Azure AD として適切な Active Directory を選択します。Choose the correct Active Directory as the default Azure AD. この手順では、Active Directory とサブスクリプションの関連付けを Azure SQL Server とリンクすることで、Azure AD と SQL Server の両方に同じサブスクリプションが使用されるようにします This step links the subscription association with Active Directory with Azure SQL server making sure that the same subscription is used for both Azure AD and SQL Server. (Azure SQL Server は、Azure SQL Database または Azure SQL Data Warehouse をホストしている可能性があります)。(The Azure SQL server can be hosting either Azure SQL Database or Azure SQL Data Warehouse.)
    choose-adchoose-ad

  2. 左側のバナーで [SQL Server] を選択し、使用する SQL Server を選択した後、[SQL Server] ブレードで、[Active Directory 管理者] をクリックします。In the left banner select SQL servers, select your SQL server, and then in the SQL Server blade, click Active Directory admin.

  3. [Active Directory 管理者] ブレードで、[管理者の設定] をクリックします。In the Active Directory admin blade, click Set admin.
    Active Directory を選択するselect active directory

  4. [管理者の追加] ブレードで、ユーザーを検索し、管理者にするユーザーまたはグループを選択してから [選択] をクリックします。In the Add admin blade, search for a user, select the user or group to be an administrator, and then click Select. [Active Directory 管理者] ブレードには、Active Directory のメンバーとグループがすべて表示されます。(The Active Directory admin blade shows all members and groups of your Active Directory. 淡色表示されているユーザーまたはグループは、Azure AD 管理者としてサポートされていないため選択できませんUsers or groups that are grayed out cannot be selected because they are not supported as Azure AD administrators. (「Azure Active Directory 認証を使用して SQL Database または SQL Data Warehouse を認証する」の「Azure AD の機能と制限事項」セクションでサポートされている管理者の一覧を参照してください)。ロール ベースのアクセス制御 (RBAC) はポータルにのみ適用され、SQL Server には反映されません。(See the list of supported admins in the Azure AD Features and Limitations section of Use Azure Active Directory Authentication for authentication with SQL Database or SQL Data Warehouse.) Role-based access control (RBAC) applies only to the portal and is not propagated to SQL Server.
    管理者を選択するselect admin

  5. [Active Directory 管理者] ブレードの上部にある [保存] をクリックします。At the top of the Active Directory admin blade, click SAVE.
    管理者を保存するsave admin

管理者を変更する処理には数分かかる場合があります。The process of changing the administrator may take several minutes. 処理が完了すると、 [Active Directory 管理者] ボックスに新しい管理者が表示されます。Then the new administrator appears in the Active Directory admin box.

注意

Azure AD 管理者をセットアップする場合、新しい管理者名 (ユーザーまたはグループ) が SQL Server 認証ユーザーとして仮想マスター データベースに既に存在していてはいけません。When setting up the Azure AD admin, the new admin name (user or group) cannot already be present in the virtual master database as a SQL Server authentication user. 存在する場合、Azure AD 管理者のセットアップは失敗します。その作成をロールバックされ、そのような管理者 (名前) が既に存在していることが示されます。If present, the Azure AD admin setup will fail; rolling back its creation and indicating that such an admin (name) already exists. そのような SQL Server 認証ユーザーは Azure AD に属していないため、Azure AD 認証を使用してサーバーに接続しようとしても失敗します。Since such a SQL Server authentication user is not part of the Azure AD, any effort to connect to the server using Azure AD authentication fails.

後で管理者を削除するには、[Active Directory 管理者] ブレードの上部にある [管理者の削除] をクリックし、[保存] をクリックします。To later remove an Admin, at the top of the Active Directory admin blade, click Remove admin, and then click Save.

PowerShellPowerShell

PowerShell コマンドレットを実行するには、Azure PowerShell をインストールし、実行している必要があります。To run PowerShell cmdlets, you need to have Azure PowerShell installed and running. 詳細については、「 Azure PowerShell のインストールと構成の方法」をご覧ください。For detailed information, see How to install and configure Azure PowerShell.

Azure AD 管理者をプロビジョニングするには、次のような Azure PowerShell コマンドを実行する必要があります。To provision an Azure AD admin, execute the following Azure PowerShell commands:

  • Add-AzureRmAccountAdd-AzureRmAccount
  • Select-AzureRmSubscriptionSelect-AzureRmSubscription

Azure AD 管理者のプロビジョニングと管理に使用するコマンドレットは、次のとおりです。Cmdlets used to provision and manage Azure AD admin:

コマンドレット名Cmdlet name DescriptionDescription
Set-AzureRMSqlServerActiveDirectoryAdministratorSet-AzureRmSqlServerActiveDirectoryAdministrator Azure SQL Server または Azure SQL Data Warehouse の Azure Active Directory 管理者をプロビジョニングします Provisions an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse. (現在のサブスクリプションから実行する必要があります)。(Must be from the current subscription.)
Remove-AzureRMSqlServerActiveDirectoryAdministratorRemove-AzureRmSqlServerActiveDirectoryAdministrator Azure SQL Server または Azure SQL Data Warehouse の Azure Active Directory 管理者を削除します。Removes an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse.
Get-AzureRMSqlServerActiveDirectoryAdministratorGet-AzureRmSqlServerActiveDirectoryAdministrator 現在 Azure SQL Server または Azure SQL Data Warehouse 用に構成されている Azure Active Directory 管理者に関する情報を返します。Returns information about an Azure Active Directory administrator currently configured for the Azure SQL server or Azure SQL Data Warehouse.

これらの各コマンドの詳細を確認するには、 get-help Set-AzureRmSqlServerActiveDirectoryAdministratorのように PowerShell コマンドの get-help を使用します。Use PowerShell command get-help to see more details for each of these commands, for example get-help Set-AzureRmSqlServerActiveDirectoryAdministrator.

次のスクリプトでは、Group-23 という名前のリソース グループ内にあるサーバー demo_server に対して、DBA_Group という名前の Azure AD 管理者グループ (オブジェクト ID 40b79501-b343-44ed-9ce7-da4c8cc7353f) をプロビジョニングします。The following script provisions an Azure AD administrator group named DBA_Group (object id 40b79501-b343-44ed-9ce7-da4c8cc7353f) for the demo_server server in a resource group named Group-23:

Set-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23"
-ServerName "demo_server" -DisplayName "DBA_Group"

DisplayName 入力パラメーターには、Azure AD の表示名またはユーザー プリンシパル名を使用できます。The DisplayName input parameter accepts either the Azure AD display name or the User Principal Name. たとえば、DisplayName="John Smith"DisplayName="johns@contoso.com"す。For example, DisplayName="John Smith" and DisplayName="johns@contoso.com". Azure AD グループの場合は、Azure AD の表示名のみがサポートされています。For Azure AD groups only the Azure AD display name is supported.

注意

Azure PowerShell コマンド Set-AzureRmSqlServerActiveDirectoryAdministrator では、サポートされていないユーザーに対する Azure AD 管理者のプロビジョニングは禁止されていません。The Azure PowerShell command Set-AzureRmSqlServerActiveDirectoryAdministrator does not prevent you from provisioning Azure AD admins for unsupported users. サポートされていないユーザーのプロビジョニングは可能ですが、このようなユーザーはデータベースに接続できませんAn unsupported user can be provisioned, but can not connect to a database.

次の例では、オプションとして ObjectIDを使用します。The following example uses the optional ObjectID:

Set-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23"
-ServerName "demo_server" -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

注意

DisplayName が一意でない場合は、Azure AD の ObjectID が必要です。The Azure AD ObjectID is required when the DisplayName is not unique. ObjectIDDisplayName の値を取得するには、Azure クラシック ポータルの [Active Directory] セクションを使用して、ユーザーまたはグループのプロパティを確認します。To retrieve the ObjectID and DisplayName values, use the Active Directory section of Azure Classic Portal, and view the properties of a user or group.

次の例では、Azure SQL Server の現在の Azure AD 管理者に関する情報が返されます。The following example returns information about the current Azure AD admin for Azure SQL server:

Get-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

次の例では、Azure AD 管理者が削除されます。The following example removes an Azure AD administrator:

Remove-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

Azure Active Directory 管理者は、REST API を使用してプロビジョニングすることもできます。You can also provision an Azure Active Directory Administrator by using the REST APIs. 詳細については、「 Service Management REST API リファレンスと Azure SQL Database の操作For more information, see Service Management REST API Reference and Operations for Azure SQL Databases Operations for Azure SQL Databases

CLICLI

以下の CLI コマンドを呼び出して、Azure AD 管理者をプロビジョニングすることもできます。You can also provision an Azure AD admin by calling the following CLI commands:

コマンドCommand DescriptionDescription
az sql server ad-admin createaz sql server ad-admin create Azure SQL Server または Azure SQL Data Warehouse の Azure Active Directory 管理者をプロビジョニングします Provisions an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse. (現在のサブスクリプションから実行する必要があります)。(Must be from the current subscription.)
az sql server ad-admin deleteaz sql server ad-admin delete Azure SQL Server または Azure SQL Data Warehouse の Azure Active Directory 管理者を削除します。Removes an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse.
az sql server ad-admin listaz sql server ad-admin list 現在 Azure SQL Server または Azure SQL Data Warehouse 用に構成されている Azure Active Directory 管理者に関する情報を返します。Returns information about an Azure Active Directory administrator currently configured for the Azure SQL server or Azure SQL Data Warehouse.
az sql server ad-admin updateaz sql server ad-admin update Azure SQL Server または Azure SQL Data Warehouse の Active Directory 管理者を更新します。Updates the Active Directory administrator for an Azure SQL server or Azure SQL Data Warehouse.

CLI コマンドの詳細については、「SQL - az sql」を参照してください。For more information about CLI commands, see SQL - az sql.

クライアント コンピューターを構成するConfigure your client computers

Azure AD の ID を使用して Azure SQL Database または Azure SQL Data Warehouse に接続するアプリケーションまたはユーザーが存在するすべてのクライアント コンピューターには、次のソフトウェアをインストールする必要があります。On all client machines, from which your applications or users connect to Azure SQL Database or Azure SQL Data Warehouse using Azure AD identities, you must install the following software:

これらの要件は、次の操作を行うことで満たすことができます。You can meet these requirements by:

Azure AD の ID にマップされている包含データベース ユーザーをデータベースに作成するCreate contained database users in your database mapped to Azure AD identities

Azure Active Directory 認証では、データベース ユーザーを包含データベース ユーザーとして作成することが必要です。Azure Active Directory authentication requires database users to be created as contained database users. Azure AD の ID に基づく包含データベース ユーザーは、master データベースにログインを持たないデータベース ユーザーで、そのデータベースに関連付けられている Azure AD ディレクトリの ID にマップされています。A contained database user based on an Azure AD identity, is a database user that does not have a login in the master database, and which maps to an identity in the Azure AD directory that is associated with the database. Azure AD の ID には、個々のユーザー アカウントにもグループ アカウントにもなります。The Azure AD identity can be either an individual user account or a group. 包含データベース ユーザーの詳細については、「 包含データベース ユーザー - データベースの可搬性を確保する」を参照してください。For more information about contained database users, see Contained Database Users- Making Your Database Portable.

注意

ポータルを使用して、データベース ユーザー (管理者を除く) を作成することはできません。Database users (with the exception of administrators) cannot be created using portal. RBAC ロールは、SQL Server、SQL Database、または SQL Data Warehouse には反映されません。RBAC roles are not propagated to SQL Server, SQL Database, or SQL Data Warehouse. Azure RBAC ロールは Azure リソースの管理に使用され、データベースのアクセス許可には適用されません。Azure RBAC roles are used for managing Azure Resources, and do not apply to database permissions. たとえば、 SQL Server 共同作成者 ロールでは、SQL Database または SQL Data Warehouse に接続するためのアクセス権は付与されません。For example, the SQL Server Contributor role does not grant access to connect to the SQL Database or SQL Data Warehouse. Transact-SQL ステートメントを使用して、アクセス許可をデータベースで直接付与する必要があります。The access permission must be granted directly in the database using Transact-SQL statements.

Azure AD ベースの包含データベース ユーザー (データベースを所有するサーバー管理者以外) を作成するには、少なくとも ALTER ANY USER アクセス許可を持つユーザーとして、Azure AD の ID でデータベースに接続します。To create an Azure AD-based contained database user (other than the server administrator that owns the database), connect to the database with an Azure AD identity, as a user with at least the ALTER ANY USER permission. その後、次の Transact-SQL 構文を使用します。Then use the following Transact-SQL syntax:

CREATE USER <Azure_AD_principal_name> FROM EXTERNAL PROVIDER;

Azure_AD_principal_name には、Azure AD ユーザーのユーザー プリンシパル名または Azure AD のグループの表示名を指定できます。Azure_AD_principal_name can be the user principal name of an Azure AD user or the display name for an Azure AD group.

例: Azure AD のフェデレーション ドメインまたは管理対象ドメインのユーザーを表す包含データベース ユーザーを作成するには、次のようにします。Examples: To create a contained database user representing an Azure AD federated or managed domain user:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

Azure AD またはフェデレーション ドメインのグループを表す包含データベース ユーザーを作成するには、セキュリティ グループの表示名を指定します。To create a contained database user representing an Azure AD or federated domain group, provide the display name of a security group:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Azure AD トークンを使用して接続するアプリケーションを表す包含データベース ユーザーを作成するには、次のようにします。To create a contained database user representing an application that connects using an Azure AD token:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

ヒント

使用している Azure サブスクリプションに関連付けられている Azure Active Directory とは別の Azure Active Directory から、ユーザーを直接作成することはできません。You cannot directly create a user from an Azure Active Directory other than the Azure Active Directory that is associated with your Azure subscription. ただし、別の Active Directory のメンバーのうち、関連付けられている Active Directory にインポート済みのユーザー (外部ユーザーと呼ばれます) は、テナント Active Directory の Active Directory グループに追加できます。However, members of other Active Directories that are imported users in the associated Active Directory (known as external users) can be added to an Active Directory group in the tenant Active Directory. 外部の Active Directory のユーザーは、この AD グループの包含データベース ユーザーを作成することで SQL Database にアクセスできるようになります。By creating a contained database user for that AD group, the users from the external Active Directory can gain access to SQL Database.

Azure Active Directory の ID に基づく包含データベース ユーザーの作成の詳細については、「 CREATE USER (Transact-SQL)」を参照してください。For more information about creating contained database users based on Azure Active Directory identities, see CREATE USER (Transact-SQL).

注意

Azure SQL Server の Azure Active Directory 管理者を削除すると、Azure AD 認証ユーザーはサーバーに接続できなくなります。Removing the Azure Active Directory administrator for Azure SQL server prevents any Azure AD authentication user from connecting to the server. 必要に応じて、SQL Database 管理者は不要な Azure AD ユーザーを手動で削除できます。If necessary, unusable Azure AD users can be dropped manually by a SQL Database administrator.

注意

"接続がタイムアウトしました" と表示された場合は、接続文字列の TransparentNetworkIPResolution パラメーターを false に設定することが必要になる場合があります。If you receive a Connection Timeout Expired, you may need to set the TransparentNetworkIPResolution parameter of the connection string to false. 詳しくは、「Connection timeout issue with .NET Framework 4.6.1 - TransparentNetworkIPResolution」(.NET Framework 4.6.1 での接続タイムアウトの問題 - TransparentNetworkIPResolution) をご覧ください。For more information, see Connection timeout issue with .NET Framework 4.6.1 - TransparentNetworkIPResolution.

データベース ユーザーを作成すると、そのユーザーには CONNECT アクセス許可が付与され、PUBLIC ロールのメンバーとしてそのデータベースに接続できるようになります。When you create a database user, that user receives the CONNECT permission and can connect to that database as a member of the PUBLIC role. 最初にこのユーザーが利用できるアクセス許可は、PUBLIC ロールに付与されているアクセス許可か、またはそのユーザーが属している Azure AD グループに付与されているアクセス許可のみです。Initially the only permissions available to the user are any permissions granted to the PUBLIC role, or any permissions granted to any Azure AD groups that they are a member of. Azure AD ベースの包含データベース ユーザーをプロビジョニングすると、他の種類のユーザーにアクセス許可を付与する場合と同様に、そのユーザーに追加のアクセス許可を付与できます。Once you provision an Azure AD-based contained database user, you can grant the user additional permissions, the same way as you grant permission to any other type of user. 通常は、データベース ロールにアクセス許可を付与し、そのロールにユーザーを追加します。Typically grant permissions to database roles, and add users to roles. 詳細については、 データベース エンジンのアクセス許可の基本知識に関するページを参照してください。For more information, see Database Engine Permission Basics. 特殊な SQL Database ロールの詳細については、「 Azure SQL Database におけるデータベースとログインの管理」を参照してください。For more information about special SQL Database roles, see Managing Databases and Logins in Azure SQL Database. 外部ユーザーとして管理対象ドメインにインポートされるフェデレーション ドメイン ユーザー アカウントは、管理対象ドメインの ID を使用する必要があります。A federated domain user account that is imported into a managed domain as an external user, must use the managed domain identity.

注意

データベースのメタデータでは、Azure AD ユーザーはタイプ E (EXTERNAL_USER) 、グループはタイプ X (EXTERNAL_GROUPS) でマークされます。Azure AD users are marked in the database metadata with type E (EXTERNAL_USER) and for groups with type X (EXTERNAL_GROUPS). 詳細については、「sys.database_principals」を参照してください。For more information, see sys.database_principals.

SSMS または SSDT を使用して、ユーザー データベースまたはデータ ウェアハウスに接続するConnect to the user database or data warehouse by using SSMS or SSDT

Azure AD 管理者が正しく設定されていることを確認するには、Azure AD の管理者アカウントを使用して master データベースに接続します。To confirm the Azure AD administrator is properly set up, connect to the master database using the Azure AD administrator account. Azure AD ベースの包含データベース ユーザー (データベースを所有しているサーバー管理者以外) をプロビジョニングするには、そのデータベースへのアクセス権を持つ Azure AD の ID を使用してデータベースに接続します。To provision an Azure AD-based contained database user (other than the server administrator that owns the database), connect to the database with an Azure AD identity that has access to the database.

重要

Azure Active Directory 認証は、SQL Server 2016 Management Studio および Visual Studio 2015 の SQL Server Data Tools でサポートされています。Support for Azure Active Directory authentication is available with SQL Server 2016 Management Studio and SQL Server Data Tools in Visual Studio 2015. SSMS の 2016 年 8 月のリリースには、Active Directory Universal 認証のサポートも含まれます。これにより、管理者は、電話、テキスト メッセージ、スマート カードと暗証番号 (PIN)、またはモバイル アプリ通知を使用する Multi-Factor Authentication を要求できます。The August 2016 release of SSMS also includes support for Active Directory Universal Authentication, which allows administrators to require Multi-Factor Authentication using a phone call, text message, smart cards with pin, or mobile app notification.

Azure AD の ID で SSMS または SSDT を利用して接続するUsing an Azure AD identity to connect using SSMS or SSDT

次の手順は、SQL Server Management Studio または SQL Server Database Tools で Azure AD の ID を使用して SQL Database に接続する方法を示しています。The following procedures show you how to connect to a SQL database with an Azure AD identity using SQL Server Management Studio or SQL Server Database Tools.

Active Directory 統合認証Active Directory integrated authentication

フェデレーション ドメインから Azure Active Directory の資格情報を使用して Windows にログオンしている場合は、この方法を使用します。Use this method if you are logged in to Windows using your Azure Active Directory credentials from a federated domain.

  1. Management Studio または Data Tools を起動し、[サーバーへの接続] (または [データベース エンジンへの接続]) ダイアログ ボックスの [認証] ボックスで、[Active Directory - 統合] を選択します。Start Management Studio or Data Tools and in the Connect to Server (or Connect to Database Engine) dialog box, in the Authentication box, select Active Directory - Integrated. 接続用の既存の資格情報が表示されるため、パスワードは不要であるか、入力できません。No password is needed or can be entered because your existing credentials will be presented for the connection.

    AD 統合認証を選択する

  2. [オプション] ボタンをクリックし、[接続プロパティ] ページの [データベースへの接続] ボックスに、接続先となるユーザー データベースの名前を入力します。Click the Options button, and on the Connection Properties page, in the Connect to database box, type the name of the user database you want to connect to. [AD ドメインの名前またはテナントの ID] オプションは MFA ユニバーサル接続オプションでのみサポートされており、それ以外の場合はグレーで表示されます。(The AD domain name or tenant ID” option is only supported for Universal with MFA connection options, otherwise it is greyed out.)

    データベース名を選択する

Active Directory パスワード認証Active Directory password authentication

Azure AD の管理対象ドメインを使用して Azure AD のプリンシパル名で接続する場合は、この方法を使用します。Use this method when connecting with an Azure AD principal name using the Azure AD managed domain. また、リモートで作業する場合など、ドメインにアクセスできないフェデレーション アカウントにもこの方法を使用できます。You can also use it for federated account without access to the domain, for example when working remotely.

この方法を使用するのは、Azure とフェデレーションされていないドメインの資格情報を使用して Windows にログオンしている場合や、初期ドメインまたはクライアント ドメインに基づく Azure AD で Azure AD 認証を使用する場合です。Use this method if you are logged in to Windows using credentials from a domain that is not federated with Azure, or when using Azure AD authentication using Azure AD based on the initial or the client domain.

  1. Management Studio または Data Tools を起動し、[サーバーへの接続] (または [データベース エンジンへの接続]) ダイアログ ボックスの [認証] ボックスで、[Active Directory - パスワード] を選択します。Start Management Studio or Data Tools and in the Connect to Server (or Connect to Database Engine) dialog box, in the Authentication box, select Active Directory - Password.
  2. [ユーザー名] ボックスに、Azure Active Directory のユーザー名を username@domain.com の形式で入力します。これは、Azure Active Directory のアカウントか、Azure Active Directory とフェデレーションするドメインのアカウントである必要があります。In the User name box, type your Azure Active Directory user name in the format username@domain.com. This must be an account from the Azure Active Directory or an account from a domain federate with the Azure Active Directory.
  3. [パスワード] ボックスに、Azure Active Directory アカウントまたはフェデレーション ドメイン アカウントのユーザー パスワードを入力します。In the Password box, type your user password for the Azure Active Directory account or federated domain account.

    AD パスワード認証を選択する

  4. [オプション] ボタンをクリックし、[接続プロパティ] ページの [データベースへの接続] ボックスに、接続先となるユーザー データベースの名前を入力します。Click the Options button, and on the Connection Properties page, in the Connect to database box, type the name of the user database you want to connect to. (前のオプションの図を参照してください)。(See the graphic in the previous option.)

クライアント アプリケーションからの Azure AD の ID を使用した接続Using an Azure AD identity to connect from a client application

次の手順は、クライアント アプリケーションから Azure AD の ID を使用して SQL データベースに接続する方法を示しています。The following procedures show you how to connect to a SQL database with an Azure AD identity from a client application.

Active Directory 統合認証Active Directory integrated authentication

統合 Windows 認証を使用するには、ドメインの Active Directory が Azure Active Directory とフェデレーションする必要があります。To use integrated Windows authentication, your domain’s Active Directory must be federated with Azure Active Directory. データベースに接続するクライアント アプリケーション (またはサービス) は、ユーザーのドメイン資格情報を使用してドメインに参加しているコンピューターで実行されている必要があります。Your client application (or a service) connecting to the database must be running on a domain-joined machine under a user’s domain credentials.

統合認証と Azure AD の ID を使用してデータベースに接続するには、データベース接続文字列内の Authentication キーワードを "Active Directory Integrated" に設定する必要があります。To connect to a database using integrated authentication and an Azure AD identity, the Authentication keyword in the database connection string must be set to Active Directory Integrated. 次の C# のコード サンプルでは、ADO .NET を使用します。The following C# code sample uses ADO .NET.

string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

接続文字列キーワード Integrated Security=True は、Azure SQL Database への接続ではサポートされていません。The connection string keyword Integrated Security=True is not supported for connecting to Azure SQL Database. ODBC 接続を行うには、スペースを削除して Authentication を 'ActiveDirectoryIntegrated' に設定する必要があります。When making an ODBC connection, you will need to remove spaces and set Authentication to 'ActiveDirectoryIntegrated'.

Active Directory パスワード認証Active Directory password authentication

統合認証と Azure AD の ID を使用してデータベースに接続するには、Authentication キーワードを "Active Directory Password" に設定する必要があります。To connect to a database using integrated authentication and an Azure AD identity, the Authentication keyword must be set to Active Directory Password. 接続文字列にユーザー ID (UID) とパスワード (PWD) のキーワードと値を含める必要があります。The connection string must contain User ID/UID and Password/PWD keywords and values. 次の C# のコード サンプルでは、ADO .NET を使用します。The following C# code sample uses ADO .NET.

string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb;  UID=bob@contoso.onmicrosoft.com; PWD=MyPassWord!";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

GitHub の Azure AD 認証のデモで入手できるデモ コード サンプルを使用して、Azure AD の認証方法の詳細を確認してください。Learn more about Azure AD authentication methods using the demo code samples available at Azure AD Authentication GitHub Demo.

Azure AD トークンAzure AD token

この認証方法を使用すると、中間層サービスは Azure Active Directory (AAD) からトークンを取得して、Azure SQL Database または Azure SQL Data Warehouse に接続できます。This authentication method allows middle-tier services to connect to Azure SQL Database or Azure SQL Data Warehouse by obtaining a token from Azure Active Directory (AAD). この方法では、証明書ベースの認証などの高度なシナリオが可能になります。It enables sophisticated scenarios including certificate-based authentication. Azure AD トークンの認証を使用するには、4 つの基本的な手順を完了する必要があります。You must complete four basic steps to use Azure AD token authentication:

  1. Azure Active Directory にアプリケーションを登録し、コードのクライアント ID を取得します。Register your application with Azure Active Directory and get the client id for your code.
  2. アプリケーションを表すデータベース ユーザーを作成します (上の手順 6.Create a database user representing the application. で完了しています)。(Completed earlier in step 6.)
  3. アプリケーションを実行するクライアント コンピューターで証明書を作成します。Create a certificate on the client computer runs the application.
  4. アプリケーションのキーとして、証明書を追加します。Add the certificate as a key for your application.

サンプルの接続文字列を次に示します。Sample connection string:

string ConnectionString =@"Data Source=n9lxnyuzhv.database.windows.net; Initial Catalog=testdb;"
SqlConnection conn = new SqlConnection(ConnectionString);
connection.AccessToken = "Your JWT token"
conn.Open();

詳細については、「 SQL Server Security Blog (SQL Server のセキュリティに関するブログ)」をご覧ください。For more information, see SQL Server Security Blog. 証明書の追加の詳細については、「Azure Active Directory の証明書ベースの認証の概要」を参照してください。For information about adding a certificate, see Get started with certificate-based authentication in Azure Active Directory.

sqlcmdsqlcmd

次のステートメントは、sqlcmd のバージョン 13.1 を使用して接続しています。これは、ダウンロード センターから入手できます。The following statements, connect using version 13.1 of sqlcmd, which is available from the Download Center.

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net  -G  
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30

次のステップNext steps