SQL による Azure Active Directory 認証の構成と管理Configure and manage Azure Active Directory authentication with SQL

この記事では、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, managed instance, and SQL Data Warehouse. 概要については、「Azure Active Directory 認証」を参照してください。For an overview, see Azure Active Directory Authentication.

注意

この記事は Azure SQL サーバーのほか、その Azure SQL サーバーに作成される SQL Database と SQL Data Warehouse の両方に当てはまります。This article applies to Azure SQL server, and to both SQL Database and SQL Data Warehouse databases that are created on the Azure SQL server. わかりやすいように、SQL Database という言葉で SQL Database と SQL Data Warehouse の両方を言い表します。For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse.

重要

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.

Azure サブスクリプションの Azure Active Directory への関連付けまたは追加Associate or add an Azure subscription to Azure Active Directory

  1. Azure サブスクリプションを Azure Active Directory に関連付けるには、ディレクトリを、データベースをホストする Azure サブスクリプションの信頼できるディレクトリにします。Associate your Azure subscription to Azure Active Directory by making the directory a trusted directory for the Azure subscription hosting the database. 詳しくは、Azure サブスクリプションを Azure AD に関連付ける方法に関するページをご覧ください。For details, see How Azure subscriptions are associated with Azure AD.

  2. Azure Portal のディレクトリ スイッチャーを使用して、ドメインに関連付けられたサブスクリプションに切り替えます。Use the directory switcher in the Azure portal to switch to the subscription associated with domain.

    重要

    すべての Azure サブスクリプションには、Azure AD インスタンスとの間に信頼関係があります。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. このサブスクリプションとディレクトリの間の信頼関係は、サブスクリプションと 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. この信頼関係について詳しくは、「Azure サブスクリプションを Azure Active Directory に関連付けるまたは追加する方法」をご覧ください。To learn more about this trusted relationship see How to associate or add an Azure subscription to Azure Active Directory.

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 Active Directory 管理者をプロビジョニングするProvision an Azure Active Directory administrator for your managed instance

重要

次の手順は、マネージド インスタンスをプロビジョニングする場合にのみに実行します。Only follow these steps if you are provisioning a managed instance. この操作は、Azure AD 内のグローバル/会社の管理者か、特権ロール管理者だけが実行できます。This operation can only be executed by Global/Company administrator or a Privileged Role Administrator in Azure AD. 次の手順では、ディレクトリ内の異なる権限を持ったユーザーにアクセス許可を付与するプロセスについて説明します。Following steps describe the process of granting permissions for users with different privileges in directory.

注意

一般提供より前に作成され、一般提供の後も引き続き運用される、MI の Azure AD 管理者については、既存の動作に対する機能的な変更はありません。For Azure AD admins for MI created prior to GA, but continue operating post GA, there is no functional change to the existing behavior. 詳細については、「MI の新しい Azure AD 管理者機能」セクションをご覧ください。For more information, see the New Azure AD admin functionality for MI section for more details.

セキュリティ グループ メンバーシップを通じたユーザーの認証や、新しいユーザーの作成などといったタスクを正常に実行するには、マネージド インスタンスに Azure AD の読み取りアクセス許可が必要です。Your managed instance needs permissions to read Azure AD to successfully accomplish tasks such as authentication of users through security group membership or creation of new users. そのためには、マネージド インスタンスに Azure AD の読み取りアクセス許可を付与する必要があります。For this to work, you need to grant permissions to managed instance to read Azure AD. これには 2 つの方法があります。ポータルから付与する方法と、PowerShell を使用する方法です。There are two ways to do it: from Portal and PowerShell. いずれの場合も、次の手順を実行します。The following steps both methods.

  1. Azure Portal の右上隅にあるユーザー アイコンを選択すると、Active Directory 候補の一覧がドロップダウンで表示されます。In the Azure portal, in the upper-right corner, select your connection to drop down a list of possible Active Directories.

  2. 既定の Azure AD として適切な Active Directory を選択します。Choose the correct Active Directory as the default Azure AD.

    この手順では、Active Directory に関連付けられたサブスクリプションを Managed Instance とリンクすることで、Azure AD とマネージド インスタンスの両方に同じサブスクリプションが使用されるようにします 。This step links the subscription associated with Active Directory with Managed Instance making sure that the same subscription is used for both Azure AD and the Managed Instance.

  3. マネージド インスタンスに移動し、Azure AD 統合に使用するものを選択します。Navigate to Managed Instance and select one that you want to use for Azure AD integration.

    aad

  4. Active Directory 管理者ページの上部でバナーを選択し、現在のユーザーにアクセス許可を付与します。Select the banner on top of the Active Directory admin page and grant permission to the current user. Azure AD のグローバル/会社の管理者としてログインしていれば、Azure portal からこれを行うことができます。PowerShell と以下のスクリプトを使用する方法もあります。If you're logged in as Global/Company administrator in Azure AD, you can do it from the Azure portal or using PowerShell with the script below.

    アクセス許可の付与 (ポータル)

    # Gives Azure Active Directory read permission to a Service Principal representing the managed instance.
    # Can be executed only by a "Company Administrator", "Global Administrator", or "Privileged Role Administrator" type of user.
    
    $aadTenant = "<YourTenantId>" # Enter your tenant ID
    $managedInstanceName = "MyManagedInstance"
    
    # Get Azure AD role "Directory Users" and create if it doesn't exist
    $roleName = "Directory Readers"
    $role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
    if ($role -eq $null) {
        # Instantiate an instance of the role template
        $roleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}
        Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
        $role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
    }
    
    # Get service principal for managed instance
    $roleMember = Get-AzureADServicePrincipal -SearchString $managedInstanceName
    $roleMember.Count
    if ($roleMember -eq $null) {
        Write-Output "Error: No Service Principals with name '$    ($managedInstanceName)', make sure that managedInstanceName parameter was     entered correctly."
        exit
    }
    if (-not ($roleMember.Count -eq 1)) {
        Write-Output "Error: More than one service principal with name pattern '$    ($managedInstanceName)'"
        Write-Output "Dumping selected service principals...."
        $roleMember
        exit
    }
    
    # Check if service principal is already member of readers role
    $allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
    $selDirReader = $allDirReaders | where{$_.ObjectId -match     $roleMember.ObjectId}
    
    if ($selDirReader -eq $null) {
        # Add principal to readers role
        Write-Output "Adding service principal '$($managedInstanceName)' to     'Directory Readers' role'..."
        Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId     $roleMember.ObjectId
        Write-Output "'$($managedInstanceName)' service principal added to     'Directory Readers' role'..."
    
        #Write-Output "Dumping service principal '$($managedInstanceName)':"
        #$allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
        #$allDirReaders | where{$_.ObjectId -match $roleMember.ObjectId}
    }
    else {
        Write-Output "Service principal '$($managedInstanceName)' is already     member of 'Directory Readers' role'."
    }
    
  5. 操作が正常に完了すると、右上隅に次の通知が表示されます。After the operation is successfully completed, the following notification will show up in the top-right corner:

    success

  6. これで、マネージド インスタンスの Azure AD 管理者を選択できるようになりました。Now you can choose your Azure AD admin for your managed instance. 選択するには、[Active Directory 管理者] ページで [管理者の設定] を選択します。For that, on the Active Directory admin page, select Set admin command.

    管理者の設定

  7. [AAD 管理者] ページで、ユーザーを検索し、管理者にするユーザーまたはグループを選択してから [選択] を選択します。In the AAD admin page, search for a user, select the user or group to be an administrator, and then select Select.

    [Active Directory 管理者] ページには、Active Directory のメンバーとグループがすべて表示されます。The Active Directory admin page shows all members and groups of your Active Directory. 淡色表示されているユーザーまたはグループは、Azure AD 管理者としてサポートされていないため選択できませんUsers or groups that are grayed out can't be selected because they aren't supported as Azure AD administrators. サポートされている管理者の一覧については、「Azure AD の機能と制限事項」をご覧ください。See the list of supported admins in Azure AD Features and Limitations. ロール ベースのアクセス制御 (RBAC) は Azure portal にのみ適用され、SQL Server には反映されません。Role-based access control (RBAC) applies only to the Azure portal and isn't propagated to SQL Server.

    Azure Active Directory 管理者を追加する

  8. [Active Directory 管理者] ページの上部にある [保存] を選択します。At the top of the Active Directory admin page, select Save.

    [保存]

    管理者を変更する処理には数分かかる場合があります。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 管理者をプロビジョニングしたら、CREATE LOGIN 構文を利用し、Azure AD サーバー プリンシパル (ログイン) の作成を開始できます。After provisioning an Azure AD admin for your managed instance, you can begin to create Azure AD server principals (logins) with the CREATE LOGIN syntax. 詳細については、マネージド インスタンスの概要に関する記事を参照してください。For more information, see managed instance overview.

ヒント

後で管理者を削除するには、[Active Directory 管理者] ページの上部にある [管理者の削除] を選択し、 [保存] を選択します。To later remove an Admin, at the top of the Active Directory admin page, select Remove admin, and then select Save.

MI の新しい Azure AD 管理者機能New Azure AD admin functionality for MI

次の表は、MI のパブリック プレビュー Azure AD ログイン管理者の機能と、Azure AD ログインについて一般提供で提供される新機能をまとめたものです。The table below summarizes the functionality for the public preview Azure AD login admin for MI, versus a new functionality delivered with GA for Azure AD logins.

パブリック プレビュー期間中の MI の Azure AD ログイン管理者Azure AD login admin for MI during public preview MI の Azure AD 管理者の一般提供機能GA functionality for Azure AD admin for MI
SQL Database の Azure AD 管理者と同様の動作になります。これにより Azure AD 認証が有効になりますが、Azure AD 管理者は、MI のマスター DB に Azure AD ログインまたは SQL ログインを作成することはできません。Behaves in a similar way as Azure AD admin for SQL Database, which enables Azure AD authentication, but the Azure AD admin cannot create Azure AD or SQL logins in the master db for MI. Azure AD 管理者には sysadmin アクセス許可があり、MI のマスター DB に AAD ログインと SQL ログインを作成できます。Azure AD admin has sysadmin permission and can create AAD and SQL logins in master db for MI.
sys.server_principals ビューに存在しませんIs not present in the sys.server_principals view sys.server_principals ビューに存在しますIs present in the sys.server_principals view
個々の Azure AD ゲスト ユーザーを MI の Azure AD 管理者として設定できます。Allows individual Azure AD guest users to be set up as Azure AD admin for MI. 詳細については、「Azure portal で Azure Active Directory B2B コラボレーション ユーザーを追加する」を参照してください。For more information, see Add Azure Active Directory B2B collaboration users in the Azure portal. ゲスト ユーザーをメンバーとして含む Azure AD グループを作成して、 MI の Azure AD 管理者としてこのグループを設定する必要があります。Requires creation of an Azure AD group with guest users as members to set up this group as an Azure AD admin for MI. 詳細については、「Azure AD の企業間サポート」を参照してください。For more information, see Azure AD business to business support.

一般提供の前に作成され、一般提供の後も引き続き運用される、MI の既存の Azure AD 管理者のベスト プラクティスとして、同じ Azure AD ユーザーまたはグループに対して Azure portal の [管理者の削除] オプションと [管理者の設定] オプションを使用して Azure AD 管理者をリセットしてください。As a best practice for existing Azure AD admins for MI created before GA, and still operating post GA, reset the Azure AD admin using the Azure portal “Remove admin” and “Set admin” option for the same Azure AD user or group.

MI の Azure AD ログインの一般提供に関する既知の問題Known issues with the Azure AD login GA for MI

  • T-SQL コマンド CREATE LOGIN [myaadaccount] FROM EXTERNAL PROVIDER を使用して作成された MI のマスター データベースに Azure AD ログインが存在する場合、それを MI の Azure AD 管理者として設定することはできません。If an Azure AD login exists in the master database for MI, created using the T-SQL command CREATE LOGIN [myaadaccount] FROM EXTERNAL PROVIDER, it can't be set up as an Azure AD admin for MI. Azure AD ログインを作成するために、Azure portal、PowerShell、または CLI コマンドを使用してそのログインを Azure AD 管理者として設定すると、エラーが発生します。You'll experience an error setting the login as an Azure AD admin using the Azure portal, PowerShell, or CLI commands to create the Azure AD login.

    • そのアカウントを Azure AD 管理者として作成するには、コマンド DROP LOGIN [myaadaccount] を使用して、マスター データベースでそのログインを削除する必要があります。The login must be dropped in the master database using the command DROP LOGIN [myaadaccount], before the account can be created as an Azure AD admin.
    • DROP LOGIN が成功したら、Azure portal で Azure AD 管理者アカウントを設定します。Set up the Azure AD admin account in the Azure portal after the DROP LOGIN succeeds.
    • Azure AD 管理者アカウントを設定できない場合は、そのログインのマネージド インスタンスのマスター データベースをチェックインします。If you can't set up the Azure AD admin account, check in the master database of the managed instance for the login. コマンド SELECT * FROM sys.server_principals を使用します。Use the following command: SELECT * FROM sys.server_principals
    • MI の Azure AD 管理者を設定すると、このアカウントのマスター データベースにログインが自動的に作成されます。Setting up an Azure AD admin for MI will automatically create a login in the master database for this account. Azure AD 管理者を削除すると、マスター データベースからログインが自動的に削除されます。Removing the Azure AD admin will automatically drop the login from the master database.
  • 個々の Azure AD ゲスト ユーザーは、MI の Azure AD 管理者としてサポートされません。Individual Azure AD guest users are not supported as Azure AD admins for MI. ゲスト ユーザーを Azure AD 管理者として設定するには、 Azure AD グループの一員にする必要があります。現在のところ、Azure portal ブレードでは、別の Azure AD のゲスト ユーザーは淡色表示されず、ユーザーは管理者のセットアップを続行できるようになっています。Guest users must be part of an Azure AD group to be set up as Azure AD admin. Currently, the Azure portal blade doesn't gray out guest users for another Azure AD, allowing users to continue with the admin setup. ゲスト ユーザーを Azure AD 管理者として保存すると、セットアップは失敗します。Saving guest users as an Azure AD admin will cause the setup to fail.

    • ゲスト ユーザーを MI の Azure AD 管理者にする場合は、ゲスト ユーザーを Azure AD グループに含めて、このグループを Azure AD 管理者として設定します。If you wish to make a guest user an Azure AD admin for MI, include the guest user in an Azure AD group, and set this group as an Azure AD admin.

SQL マネージド インスタンス用の PowerShellPowerShell for SQL managed instance

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.

重要

PowerShell Azure Resource Manager (RM) モジュールは Azure SQL Database で引き続きサポートされますが、今後の開発はすべて Az.Sql モジュールを対象に行われます。The PowerShell Azure Resource Manager (RM) module is still supported by Azure SQL Database, but all future development is for the Az.Sql module. AzureRM モジュールのバグ修正は、少なくとも 2020 年 12 月までは引き続き受け取ることができます。The AzureRM module will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRm モジュールのコマンドの引数は実質的に同じです。The arguments for the commands in the Az module and in the AzureRm modules are substantially identical. その互換性の詳細については、「新しい Azure PowerShell Az モジュールの概要」を参照してください。For more about their compatibility, see Introducing the new Azure PowerShell Az module.

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

  • Connect-AzAccountConnect-AzAccount
  • Select-AzSubscriptionSelect-AzSubscription

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

コマンドレット名Cmdlet name 説明Description
Set-AzSqlInstanceActiveDirectoryAdministratorSet-AzSqlInstanceActiveDirectoryAdministrator 現在のサブスクリプションでの SQL マネージド インスタンスの Azure AD 管理者をプロビジョニングしますProvisions an Azure AD administrator for SQL managed instance in the current subscription. (現在のサブスクリプションから実行する必要があります)。(Must be from the current subscription)
Remove-AzSqlInstanceActiveDirectoryAdministratorRemove-AzSqlInstanceActiveDirectoryAdministrator 現在のサブスクリプションでの SQL マネージド インスタンスの Azure AD 管理者を削除します。Removes an Azure AD administrator for SQL managed instance in the current subscription.
Get-AzSqlInstanceActiveDirectoryAdministratorGet-AzSqlInstanceActiveDirectoryAdministrator 現在のサブスクリプションでの SQL マネージド インスタンスの Azure AD 管理者に関する情報を返します。Returns information about an Azure AD administrator for SQL managed instance in the current subscription.

次のコマンドでは、ResourceGroup01 というリソース グループに関連付けられている、ManagedInstance01 というマネージド インスタンスの Azure AD 管理者に関する情報が取得されます。The following command gets information about an Azure AD administrator for a managed instance named ManagedInstance01 that is associated with a resource group named ResourceGroup01.

Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"

次のコマンドでは、ManagedInstance01 というマネージド インスタンスの、DBAs という Azure AD 管理者グループがプロビジョニングされます。The following command provisions an Azure AD administrator group named DBAs for the managed instance named ManagedInstance01. このサーバーは、リソース グループ ResourceGroup01 に関連付けられています。This server is associated with resource group ResourceGroup01.

Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"

次のコマンドを実行すると、リソース グループ ResourceGroup01 に関連付けられている、ManagedInstanceName01 というマネージド インスタンスの Azure AD 管理者が削除されます。The following command removes the Azure AD administrator for the managed instance named ManagedInstanceName01 associated with the resource group ResourceGroup01.

Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru

Azure SQL Database サーバーの Azure Active Directory 管理者をプロビジョニングするProvision an Azure Active Directory administrator for your Azure SQL Database server

重要

次の手順は、Azure SQL Database サーバーまたは Data Warehouse をプロビジョニングする場合にのみ実行します。Only follow these steps if you are provisioning an Azure SQL Database server or Data Warehouse.

次の 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 ポータルAzure portal

  1. Azure Portal の右上隅にあるユーザー アイコンをクリックすると、Active Directory 候補の一覧がドロップダウンで表示されます。In the Azure portal, in the upper-right corner, select 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-associated 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-ad

  2. [SQL サーバー] を探して選択します。Search for and select SQL server.

    [SQL サーバー] を探して選択する

    注意

    このページでは、 [SQL Server] を選択する前に、名前の横にある星マークを選択してそのカテゴリを "お気に入りに追加" し、 [SQL Server] を左側のナビゲーション バーに追加することができます。On this page, before you select SQL servers, you can select the star next to the name to favorite the category and add SQL servers to the left navigation bar.

  3. [SQL Server] ページで、 [Active Directory 管理者] を選択します。On SQL Server page, select Active Directory admin.

  4. [Active Directory 管理者] ページで、 [管理者の設定] を選択します。In the Active Directory admin page, select Set admin.

    [SQL サーバー] の Active Directory 管理者の設定

  5. [管理者の追加] ページで、ユーザーを検索し、管理者にするユーザーまたはグループを選択してから [選択] を選択します。In the Add admin page, search for a user, select the user or group to be an administrator, and then select Select. [Active Directory 管理者] ページには、Active Directory のメンバーとグループがすべて表示されます。(The Active Directory admin page 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.

    Azure Active Directory 管理者を選択する

  6. [Active Directory 管理者] ページの上部にある [保存] を選択します。At the top of the Active Directory admin page, select SAVE.

    管理者の保存

管理者を変更する処理には数分かかる場合があります。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 page, select Remove admin, and then select Save.

Azure SQL Database と Azure SQL Data Warehouse 用の PowerShellPowerShell for Azure SQL Database and Azure SQL Data Warehouse

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:

  • Connect-AzAccountConnect-AzAccount
  • Select-AzSubscriptionSelect-AzSubscription

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

コマンドレット名Cmdlet name 説明Description
Set-AzSqlServerActiveDirectoryAdministratorSet-AzSqlServerActiveDirectoryAdministrator 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-AzSqlServerActiveDirectoryAdministratorRemove-AzSqlServerActiveDirectoryAdministrator 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-AzSqlServerActiveDirectoryAdministratorGet-AzSqlServerActiveDirectoryAdministrator 現在 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.

これらの各コマンドの情報を確認するには、PowerShell の get-help コマンドを使用します。Use PowerShell command get-help to see more information for each of these commands. たとえば、「 get-help Set-AzSqlServerActiveDirectoryAdministrator 」のように入力します。For example, get-help Set-AzSqlServerActiveDirectoryAdministrator.

次のスクリプトでは、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-AzSqlServerActiveDirectoryAdministrator -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-AzSqlServerActiveDirectoryAdministrator では、サポートされていないユーザーに対する Azure AD 管理者のプロビジョニングは禁止されていません。The Azure PowerShell command Set-AzSqlServerActiveDirectoryAdministrator 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-AzSqlServerActiveDirectoryAdministrator -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-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

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

Remove-AzSqlServerActiveDirectoryAdministrator -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 Database Operations for Azure SQL Database

クライアント コンピューターを構成する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 AD サーバー プリンシパル (ログイン) がサポートされるようになったため、Azure AD ユーザー、グループ、アプリケーションからログインを作成できます。Managed instance now supports Azure AD server principals (logins), which enables you to create logins from Azure AD users, groups, or applications. Azure AD サーバー プリンシパル (ログイン) では、包含データベース ユーザーとしてデータベース ユーザーを作成することを要求せずにマネージド インスタンスで認証を受ける機能が提供されます。Azure AD server principals (logins) provides the ability to authenticate to your managed instance without requiring database users to be created as a contained database user. 詳細については、マネージド インスタンスの概要に関する記事を参照してください。For more information, see managed instance Overview. Azure AD サーバー プリンシパル (ログイン) の作成の構文については、「CREATE LOGIN」を参照してください。For syntax on creating Azure AD server principals (logins), see CREATE LOGIN.

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.

注意

Azure Portal を使用して、データベース ユーザー (管理者を除く) を作成することはできません。Database users (with the exception of administrators) cannot be created using the Azure 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.

警告

T-SQL CREATE LOGIN および CREATE USER ステートメントにユーザー名として含まれているコロン : やアンパサンド & などの特殊文字はサポートされていません。Special characters like colon : or ampersand & when included as user names in the T-SQL CREATE LOGIN and CREATE USER statements are not supported.

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;

注意

このコマンドでは、SQL がログイン ユーザーの代わりに Azure AD (「外部プロバイダー」) にアクセスすることが必要です。This command requires that SQL access Azure AD (the "external provider") on behalf of the logged-in user. 場合によっては、Azure AD によって SQL に例外が返されることがあります。Sometimes, circumstances will arise that cause Azure AD to return an exception back to SQL. このような場合、ユーザーには AAD 固有のエラー メッセージを含む SQL エラー 33134 が表示されます。In these cases, the user will see SQL error 33134, which should contain the AAD-specific error message. このエラーはほとんどの場合、アクセスが拒否されたこと、ユーザーがリソースにアクセスするために MFA に登録する必要があること、あるいはファーストパーティのアプリケーション間のアクセスを事前承認によって処理する必要があることを示します。Most of the time, the error will say that access is denied, or that the user must enroll in MFA to access the resource, or that access between first-party applications must be handled via preauthorization. 最初の 2 つのケースでは、問題は通常、ユーザーの AAD テナントで設定されている条件付きアクセス ポリシーによって発生し、ポリシーによってユーザーは外部プロバイダーにアクセスできなくなります。In the first two cases, the issue is usually caused by Conditional Access policies that are set in the user's AAD tenant: they prevent the user from accessing the external provider. アプリケーション '00000002-0000-0000-c000-000000000000' (AAD Graph API のアプリケーション ID) へのアクセスを許可するように CA ポリシーを更新すると、問題が解決されます。Updating the CA policies to allow access to the application '00000002-0000-0000-c000-000000000000' (the application ID of the AAD Graph API) should resolve the issue. 「ファーストパーティのアプリケーション間のアクセスを事前承認で処理する必要がある」というエラーが発生した場合、この問題は、ユーザーがサービス プリンシパルとしてサインインしていることが原因です。In the case that the error says access between first-party applications must be handled via preauthorization, the issue is because the user is signed in as a service principal. 代わりにユーザーによってコマンドを実行した場合、コマンドは成功するはずです。The command should succeed if it is executed by a user instead.

ヒント

使用している 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. [オプション] ボタンを選択し、 [接続プロパティ] ページの [データベースへの接続] ボックスに、接続先となるユーザー データベースの名前を入力します。Select 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 accounts without access to the domain, for example when working remotely.

Azure AD のネイティブ ユーザーまたはフェデレーション ユーザーのために、SQL DB/DW を Azure AD で認証するには、この方法を使用します。Use this method to authenticate to SQL DB/DW with Azure AD for native or federated Azure AD users. ネイティブ ユーザーとは、Azure AD に明示的に作成され、ユーザー名とパスワードを使用して認証されるユーザーです。これに対し、フェデレーション ユーザーとは、所属ドメインが Azure AD との間でフェデレーションされている Windows ユーザーをいいます。A native user is one explicitly created in Azure AD and being authenticated using user name and password, while a federated user is a Windows user whose domain is federated with Azure AD. 後者の (ユーザーとパスワードを使用した) 方法は、ユーザーが自分の Windows 資格情報の使用を希望しているものの、そのローカル コンピューターがドメインに参加していない (つまりリモート アクセスを使用している) 場合に使用できます。The latter method (using user & password) can be used when a user wants to use their windows credential, but their local machine is not joined with the domain (for example, using a remote access). このケースでは、Windows ユーザーが自分のドメイン アカウントとパスワードを指定し、フェデレーションされた資格情報を使用して SQL DB/DW に対する認証を行うことができます。In this case, a Windows user can indicate their domain account and password and can authenticate to SQL DB/DW using federated credentials.

  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 の形式で入力します。In the User name box, type your Azure Active Directory user name in the format username@domain.com. ユーザー名は、Azure Active Directory のアカウントか、Azure Active Directory とフェデレーションするドメインのアカウントである必要があります。User names 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. [オプション] ボタンを選択し、 [接続プロパティ] ページの [データベースへの接続] ボックスに、接続先となるユーザー データベースの名前を入力します。Select 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);
conn.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.

注意

-G を使用する sqlcmd コマンドは、システム ID で動作しないため、ユーザー プリンシパル ログインが必要です。sqlcmd with the -G command does not work with system identities, and requires a user principal login.

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