Konfigurace a správa ověřování Azure AD pomocí Azure SQL

PLATÍ PRO: Azure SQL Database Azure SQL Instance Azure Synapse Analytics

Tento článek ukazuje, jak vytvořit a naplnit instanci Azure Active Directory (Azure AD) a pak použít Azure AD s Azure SQL Database, spravovanouinstancí Azure SQL a Azure Synapse Analytics. Přehled najdete v tématu Azure Active Directory ověřování.

Metody ověřování Azure AD

Ověřování Azure AD podporuje následující metody ověřování:

  • Cloudové identity Azure AD
  • Hybridní identity Azure AD, které podporují:
    • Cloudové ověřování se dvěma možnostmi spolu s bezproblémovým jednotným přihlašováním (SSO)
      • Ověřování hodnot hash hesel Azure AD
      • Předplatné ověřování Azure AD
    • Federované ověřování

Další informace o metodách ověřování Azure AD a o tom, který z nich si můžete vybrat, najdete v článku Volba správné metody ověřování pro Azure Active Directory řešení hybridní identity.

Další informace o hybridních identitách, nastavení a synchronizaci Azure AD najdete v těchto článku:

Vytvoření a naplnění instance Azure AD

Vytvořte instanci Azure AD a naplňte ji uživateli a skupinami. Azure AD může být počáteční doménou spravovanou službou Azure AD. Azure AD může být taky místní služba Active Directory Domain Services, který je federovaný s Azure AD.

Další informace najdete v těchto článku:

Přidružení nebo přidání předplatného Azure do Azure Active Directory

  1. Přidružte předplatné Azure k Azure Active Directory vytvořením důvěryhodného adresáře pro předplatné Azure hostující databázi. Podrobnosti najdete v tématu Přidružení nebo přidání předplatného Azure do Azure Active Directory tenanta.

  2. K přechodu na předplatné přidružené k doméně použijte přepínač adresářů na portálu Azure Portal.

    Důležité:

    Každé předplatné Azure má vztah důvěryhodnosti s instancí Azure AD. To znamená, že důvěřuje tomuto adresáři k ověřování uživatelů, služeb a zařízení. Více předplatných může důvěřovat stejnému adresáři, ale předplatné důvěřuje jenom jednomu adresáři. Tento vztah důvěryhodnosti, který má předplatné s adresářem, je na rozdíl od vztahu, který má předplatné se všemi ostatními prostředky v Azure (weby, databáze atd.), které jsou spíš jako podřízené prostředky předplatného. Pokud platnost předplatného vyprší, přístup k jinými prostředkům přidruženým k předplatnému se taky zastaví. Adresář ale zůstane v Azure a můžete k němu přidružit další předplatné a dál spravovat uživatele adresáře. Další informace o zdrojích najdete v tématu Principy přístupu k prostředkům v Azure. Další informace o tomto důvěryhodném vztahu najdete v tématu Jak přidružit nebo přidat předplatné Azure do Azure Active Directory.

Správce Azure AD se serverem v SQL Database

Každý server v Azure (který SQL Database nebo Azure Synapse) začíná jedním účtem správce serveru, který je správcem celého serveru. Vytvořte druhý účet správce jako účet Azure AD. Tento objekt zabezpečení se vytvoří jako uživatel databáze obsažené v hlavní databázi serveru. Účty správce jsou členy role db_owner v každé databázi uživatelů a jako uživatele dbo zadejte každou uživatelskou databázi. Další informace o účtech správce najdete v tématu Správa databází a přihlášení.

Při Azure Active Directory s geografickou replikací musí Azure Active Directory správce nakonfigurovat pro primární i sekundární servery. Pokud server nemá správce Azure Active Directory, Azure Active Directory přihlášení a uživatelé dostanou chybu Cannot connect serveru.

Poznámka:

Uživatelé, kteří nejsou založeni na účtu Azure AD (včetně účtu správce serveru), nemohou vytvářet uživatele založené na službě Azure AD, protože nemají oprávnění ověřovat navrhované uživatele databáze pomocí Azure AD.

Zřízení správce Azure AD (SQL spravovaná instance)

Důležité:

Tento postup postupujte jenom v případě, že zařizování služby Azure SQL spravovanou instanci. Tuto operaci může provést jenom globální správce nebo správce privilegovaných rolí v Azure AD.

Ve verzi Public Previewmůžete roli Čtečky adresářů přiřadit skupině v Azure AD. Vlastníci skupiny pak mohou přidat identitu spravované instance jako člena této skupiny, což vám umožní zřídit správce Azure AD pro SQL spravovanou instanci. Další informace o této funkci najdete v článku Role čtečky adresářů v Azure Active Directory pro Azure SQL.

Vaše SQL spravovaná instance potřebuje oprávnění ke čtení Azure AD k úspěšnému provádění úkolů, jako je ověřování uživatelů prostřednictvím členství ve skupině zabezpečení nebo vytváření nových uživatelů. Aby to fungovalo, musíte udělit oprávnění SQL instance ke čtení Azure AD. Můžete to udělat pomocí webu Azure Portal nebo PowerShellu.

Portál Azure

Pokud chcete udělit oprávnění ke čtení SQL spravované instance Azure AD pomocí portálu Azure Portal, přihlaste se jako globální správce v Azure AD a postupujte takto:

  1. Na portálu Azure Portalv pravém horním rohu vyberte připojení z rozevíracího seznamu možných aktivních adresářů.

  2. Jako výchozí Azure AD zvolte správnou službu Active Directory.

    Tento krok prodá předplatné přidružené ke službě Active Directory SQL spravované instanci, a ujistěte se, že se stejné předplatné používá jak pro instanci Azure AD, tak pro SQL spravovanou instanci.

  3. Přejděte na SQL instanci, kterou chcete použít pro integraci Azure AD.

    Screenshot of the Azure portal showing the Active Directory admin page open for the selected SQL managed instance.

  4. Vyberte nápis v horní části stránky správce služby Active Directory a udělte oprávnění aktuálnímu uživateli.

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Active Directory. The Grant permissions button is selected.

  5. Po úspěšné operaci se v pravém horním rohu zobrazí následující oznámení:

    Screenshot of a notification confirming that active directory read permissions have been successfully updated for the managed instance.

  6. Teď si můžete pro svou spravovanou instanci SQL Azure AD. Za to vyberte na stránce správce služby Active Directory příkaz Nastavit správce.

    Screenshot showing the Set admin command highlighted on the Active Directory admin page for the selected SQL managed instance.

  7. Na stránce správce Azure AD vyhledejte uživatele, vyberte uživatele nebo skupinu, které chcete mít jako správce, a pak vyberte Vybrat.

    Stránka správce služby Active Directory zobrazuje všechny členy a skupiny služby Active Directory. Uživatele nebo skupiny, které jsou šedé, nejde vybrat, protože nejsou podporované jako správci Azure AD. Seznam podporovaných správců najdete v tématu Funkce a omezení Azure AD. Řízení přístupu na základě rolí Azure (Azure RBAC) se vztahuje jenom na portál Azure Portal a není rozšířeno do SQL Database, SQL spravované instance nebo Azure Synapse.

    Add Azure Active Directory admin

  8. V horní části stránky správce služby Active Directory vyberte Uložit.

    Screenshot of the Active Directory admin page with the Save button in the top row next to the Set admin and Remove admin buttons.

    Proces změny správce může trvat několik minut. Potom se nový správce zobrazí v poli správce služby Active Directory.

Po zřízení správce Azure AD pro vaši SQL instanci můžete začít vytvářet zaregistrované objekty serveru Azure AD (přihlášení) se syntaxí CREATE LOGIN. Další informace najdete v tématu SQL spravované instance.

Tip

Pokud chcete správce později odebrat, v horní části stránky správce služby Active Directory vyberte Odebrat správcea pak vyberte Uložit.

PowerShell

Pokud chcete udělit SQL oprávnění ke čtení spravované instance Azure AD pomocí PowerShellu, spusťte tento skript:

# Gives Azure Active Directory read permission to a Service Principal representing the SQL Managed Instance.
# Can be executed only by a "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 your SQL 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'."
}

PowerShell pro SQL spravovanou instanci

Pokud chcete spustit rutiny PowerShellu, musíte mít nainstalované Azure PowerShell a spuštěné. Podrobné informace najdete v tématu Instalace akonfigurace Azure PowerShell .

Důležité:

Modul PowerShell Azure Resource Manager (RM) stále podporuje Azure SQL Managed Instance, ale veškerý budoucí vývoj je pro modul Az.Sql. Modul AzureRM bude dostávat opravy chyb až do prosince 2020. Argumenty příkazů v modulu Az a v modulech AzureRm jsou podstatně shodné. Další informace o jejich kompatibilitě najdete v tématu Představení nového modulu Azure PowerShell Az.

Pokud chcete zřídit správce Azure AD, spusťte následující Azure PowerShell příkazy:

  • Connect-AzAccount
  • Select-AzSubscription

Rutiny používané ke zřízení a správě správce Azure AD pro vaši SQL instance jsou uvedené v následující tabulce:

Název rutiny Popis
Set-AzSqlInstanceActiveDirectoryAdministrator Ustanovení správce Azure AD pro SQL spravované instance v aktuálním předplatném. (Musí být z aktuálního předplatného)
Remove-AzSqlInstanceActiveDirectoryAdministrator Odebere správce Azure AD pro SQL spravované instance v aktuálním předplatném.
Get-AzSqlInstanceActiveDirectoryAdministrator Vrátí informace o správci Azure AD pro SQL spravované instance v aktuálním předplatném.

Následující příkaz získá informace o správci Azure AD pro SQL instanci s názvem ManagedInstance01, která je přidružená ke skupině prostředků s názvem ResourceGroup01.

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

Následující příkaz obsahuje skupinu správce Azure AD s názvem DBAs pro SQL s názvem ManagedInstance01. Tento server je přidružený ke skupině prostředků ResourceGroup01.

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

Následující příkaz odebere správce Azure AD pro SQL s názvem ManagedInstanceName01 přidružené ke skupině prostředků ResourceGroup01.

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

Zřízení správce Azure AD (SQL Database)

Důležité:

Tento postup postupujte jenom v případě, že zřizování serveru pro SQL Database nebo Azure Synapse.

Následující dva postupy ukazují, jak zřídit správce Azure Active Directory serveru na portálu Azure Portal a pomocí PowerShellu.

Portál Azure

  1. Na portálu Azure Portalv pravém horním rohu vyberte připojení, abyste si vysunout seznam možných aktivních adresářů. Jako výchozí Azure AD zvolte správnou službu Active Directory. Tento krok spojuje active directory přidružené k předplatnému se serverem a ujistěte se, že se stejné předplatné používá jak pro Azure AD, tak pro server.

  2. Vyhledejte a vyberte SQL server.

    Search for and select SQL servers

    Poznámka:

    Na této stránce můžete před výběrem SQLvybrat hvězdičku vedle názvu, kterou chcete kategorii oblíbené, a přidat SQL servery na levý navigační panel.

  3. Na stránce SQL Server vyberte Správce služby Active Directory.

  4. Na stránce správce služby Active Directory vyberte Nastavit správce.

    SQL servers set Active Directory admin

  5. Na stránce Přidat správce vyhledejte uživatele, vyberte uživatele nebo skupinu, které chcete mít jako správce, a pak vyberte Vybrat. (Stránka správce služby Active Directory zobrazuje všechny členy a skupiny služby Active Directory. Uživatele nebo skupiny, které jsou šedě, nelze vybrat, protože nejsou podporované jako správci Azure AD. (Seznam podporovaných správců najdete v části Funkce a omezení Azure AD v části Použití ověřování Azure Active Directory ověřování s SQL Database nebo Azure Synapse.) Řízení přístupu založené na rolích Azure (Azure RBAC) se vztahuje jenom na portál a není šířeno do SQL Server.

    Select Azure Active Directory admin

  6. V horní části stránky správce služby Active Directory vyberte Uložit.

    save admin

Proces změny správce může trvat několik minut. Potom se nový správce zobrazí v poli správce služby Active Directory.

Poznámka:

Při nastavování správce Azure AD už nový název správce (uživatel nebo skupina) nemůže být v databázi virtuálního hlavního serveru jako uživatel ověřování serveru. Pokud je k dispozici, nastavení správce Azure AD se nezdaří. jeho vytvoření a označující, že takový správce (jméno) už existuje. Vzhledem k tomu, že takový uživatel ověřování serveru není součástí Azure AD, veškeré úsilí o připojení k serveru pomocí ověřování Azure AD se nezdaří.

Pokud chcete správce později odebrat, v horní části stránky správce služby Active Directory vyberte Odebrat správcea pak vyberte Uložit.

PowerShell pro SQL Database a Azure Synapse

Pokud chcete spustit rutiny PowerShellu, musíte mít nainstalované Azure PowerShell a spuštěné. Podrobné informace najdete v tématu Instalace akonfigurace Azure PowerShell . Pokud chcete zřídit správce Azure AD, spusťte následující Azure PowerShell příkazy:

  • Connect-AzAccount
  • Select-AzSubscription

Rutiny používané ke zřízení a správě správce Azure AD pro SQL Database a Azure Synapse:

Název rutiny Popis
Set-AzSqlServerActiveDirectoryAdministrator Získejte Azure Active Directory správce pro hostování serveru SQL Database Azure Synapse. (Musí být z aktuálního předplatného)
Remove-AzSqlServerActiveDirectoryAdministrator Odebere správce Azure Active Directory serveru, který hostuje SQL Database nebo Azure Synapse.
Get-AzSqlServerActiveDirectoryAdministrator Vrátí informace o správci Azure Active Directory, který je aktuálně nakonfigurovaný pro server hostující SQL Database nebo Azure Synapse.

Pomocí příkazu PowerShell get-help zobrazíte další informace pro každý z těchto příkazů. Například . get-help Set-AzSqlServerActiveDirectoryAdministrator

Následující skript obsahuje skupinu správce Azure AD s názvem DBA_Group (ID objektu) pro server demo_server ve skupině prostředků s názvem Skupina-23:

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

Vstupní parametr DisplayName přijímá zobrazovaný název Azure AD nebo hlavní uživatelské jméno. Například a DisplayName="John Smith"DisplayName="johns@contoso.com" . Pro skupiny Azure AD se podporuje jenom zobrazovaný název Azure AD.

Poznámka:

Příkaz Azure PowerShell nezabrání zřizování správců Set-AzSqlServerActiveDirectoryAdministrator Azure AD nepodporovaným uživatelům. Nepodporovaný uživatel může být zřízen, ale nemůže se připojit k databázi.

V následujícím příkladu se používá nepovinný identifikátor ObjectID:

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

Poznámka:

Identifikátor ObjectID Azure AD je povinný, pokud displayname není jedinečný. Pokud chcete načíst hodnoty ObjectID a DisplayName, použijte oddíl Active Directory portál Azure Classic a zobrazte vlastnosti uživatele nebo skupiny.

Následující příklad vrátí informace o aktuálním správci Azure AD pro server:

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

V následujícím příkladu odeberete správce Azure AD:

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

Poznámka:

Můžete také zřídit správce Azure Active Directory pomocí rozhraní REST API. Další informace najdete v článku Referenční informace a operace rozhraní REST API pro správu služeb pro Azure SQL Database operace pro Azure SQL Database

Konfigurace klientských počítačů

Na všech klientských počítačích, ze kterých se vaše aplikace nebo uživatelé připojují k SQL Database Nebo Azure Synapse pomocí identit Azure AD, musíte nainstalovat následující software:

Tyto požadavky můžete splnit takto:

  • Instalace nejnovější verze SQL Server Management Studio nebo SQL Server Data Tools splňuje .NET Framework 4.6.
    • SSMS nainstaluje verzi x86 ADAL.DLL.
    • SSDT nainstaluje verzi aplikace amd64 ADAL.DLL.
    • Nejnovější verze Visual Studio Visual Studio Downloads splňuje požadavky .NET Framework 4.6, ale nenainstaluje požadovanou verziADAL.DLL.

Vytvoření obsažených uživatelů mapovaných na identity Azure AD

Vzhledem SQL, že spravovaná instance podporuje zaregistrované objekty serveru Azure AD (přihlášení), není použití obsažených uživatelů databáze povinné. Zaregistrované objekty serveru Azure AD (přihlášení) umožňují vytvářet přihlášení od uživatelů, skupin nebo aplikací Azure AD. To znamená, že můžete ověřit pomocí SQL spravované instance pomocí přihlášení k serveru Azure AD místo uživatele databáze, který je součástí databáze. Další informace najdete v tématu SQL spravované instance. Syntaxi při vytváření objektů serveru Azure AD (přihlášení) najdete v tématu CREATE LOGIN.

Použití ověřování Azure Active Directory s SQL Database a Azure Synapse ale vyžaduje použití obsažených uživatelů databáze na základě identity Azure AD. Obsažený uživatel databáze nemá přihlašovací jméno v hlavní databázi a mapuje se na identitu v Azure AD, která je přidružená k databázi. Identita Azure AD může být buď individuální uživatelský účet, nebo skupina. Další informace o obsažených uživatelích databáze najdete v tématu Contained Database Users - Making Your Database Portable ( Přenosná databáze).

Poznámka:

Uživatele databáze (s výjimkou správců) nelze vytvořit pomocí portálu Azure Portal. Role Azure se nešíře do databáze v SQL Database, SQL instance nebo Azure Synapse. Role Azure se používají ke správě prostředků Azure a nevztahují se na oprávnění databáze. Například role SQL Server Přispěvatel neuděluje přístup k připojení k databázi v SQL Database, SQL spravované instanci nebo Azure Synapse. Přístupová oprávnění musí být udělena přímo v databázi pomocí příkazů Transact-SQL.

Upozornění:

Speciální znaky, jako je dvojtečka nebo ampersand, pokud jsou zahrnuté jako uživatelská jména v SQL a :&CREATE LOGINCREATE USER příkazy, nejsou podporované.

Důležité:

Uživatelé a instanční objekty Azure AD (aplikace Azure AD), které jsou členy více než 2048 skupin zabezpečení Azure AD, nejsou podporované pro přihlášení k databázi v SQL Database, spravované instanci nebo Azure Synapse.

Pokud chcete vytvořit uživatele databáze založené na službě Azure AD (kromě správce serveru, který databázi vlastní), připojte se k databázi pomocí identity Azure AD jako uživatel s aspoň oprávněním ALTER ANY USER. Potom použijte následující syntaxi Transact-SQL:

CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;

Azure_AD_principal_name může být hlavní uživatelské jméno uživatele Azure AD nebo zobrazovaný název skupiny Azure AD.

Příklady: Vytvoření uživatele databáze, který představuje federovaného nebo spravovaného uživatele domény Azure AD:

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

Pokud chcete vytvořit uživatele obsažené databáze představující skupinu Azure AD nebo federované domény, zadejte zobrazovaný název skupiny zabezpečení:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Vytvoření uzavřeného uživatele databáze představujícího aplikaci, která se připojuje pomocí tokenu Azure AD:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Poznámka:

Tento příkaz vyžaduje, SQL přístup k Azure AD ("externí poskytovatel") jménem přihlášeného uživatele. Někdy nastanou okolnosti, které způsobí, že Azure AD vrátí výjimku zpět do SQL. V těchto případech se uživateli zobrazí chybová SQL 33134, která by měla obsahovat chybovou zprávu specifickou pro Azure AD. Chyba většinou říká, že přístup je odepřený nebo že uživatel musí zaregistrovat do MFA pro přístup k prostředku nebo že přístup mezi aplikacemi první strany musí být zpracován předběžnou autorizací. V prvních dvou případech je problém obvykle způsoben zásadami podmíněného přístupu nastavenými v tenantovi Azure AD uživatele: brání uživateli v přístupu k externímu poskytovateli. Tento problém by měl vyřešit aktualizace zásad podmíněného přístupu tak, aby se umožnil přístup k aplikaci 00000003-0000-0000-c000-00000000000 (ID aplikace rozhraní Microsoft Graph API). V případě, že chyba říká, že přístup mezi aplikacemi první strany musí být zpracován předběžnou autorizací, problém je v tom, že uživatel je přihlášený jako hlavní povinný objekt služby. Příkaz by měl být úspěšný, pokud ho místo toho provede uživatel.

Tip

Uživatele nemůžete přímo vytvořit z jiného Azure Active Directory, než je Azure Active Directory který je přidružený k vašemu předplatnému Azure. Členy dalších aktivních adresářů, které jsou importované uživateli v přidružené službě Active Directory (označované jako externí uživatelé), ale můžete přidat do skupiny služby Active Directory v adresáři Active Directory tenanta. Vytvořením uživatele obsažené databáze pro skupinu AD získají uživatelé z externího adresáře Active Directory přístup k SQL Database.

Další informace o vytváření obsažených uživatelů databází založených na Azure Active Directory identitách najdete v tématu CREATE USER (Transact-SQL).

Poznámka:

Odebráním Azure Active Directory správce serveru zabráníte tomu, aby se k serveru připojují ověřovací uživatel Azure AD. V případě potřeby může nepoužitelné uživatele Azure AD ručně zrušit SQL Database správce.

Poznámka:

Pokud se zobrazí vypršení časovéholimitu připojení , bude pravděpodobně nutné nastavit parametr připojovacího řetězce na hodnotu false. Další informace najdete v článku Problém s časovým limitem připojení s .NET Framework 4.6.1 – TransparentNetworkIPResolution.

Když vytvoříte uživatele databáze, dostane tento uživatel oprávnění PŘIPOJIT a může se k této databázi připojit jako člen role PUBLIC. Zpočátku jsou uživateli dostupná pouze oprávnění udělená roli PUBLIC nebo oprávnění udělená jakékoli skupině Azure AD, které jsou jejich členem. Po zřízení uživatele databáze založené na službě Azure AD můžete uživateli udělit další oprávnění stejným způsobem jako udělení oprávnění jinému typu uživatele. Obvykle udělte oprávnění rolím databáze a přidejte uživatele do rolí. Další informace najdete v článku Základy oprávnění databázového stroje. Další informace o zvláštních rolích SQL Database najdete v tématu Správa databází a přihlášení v Azure SQL Database. Uživatelský účet federované domény, který se naimportuje do spravované domény jako externí uživatel, musí používat identitu spravované domény.

Poznámka:

Uživatelé Azure AD jsou v metadatech databáze označeni typem E (EXTERNAL_USER) a pro skupiny s typem X (EXTERNAL_GROUPS). Další informace najdete v tématu sys.database_principals.

Připojení do databáze pomocí SSMS nebo SSDT

Pokud chcete ověřit, že je správce Azure AD správně nastavený, připojte se k hlavní databázi pomocí účtu správce Azure AD. Pokud chcete zřídit uživatele databáze založené na službě Azure AD (kromě správce serveru, který databázi vlastní), připojte se k databázi pomocí identity Azure AD, která má přístup k databázi.

Důležité:

Podpora ověřování Azure Active Directory je dostupná s SQL Server Management Studio (SSMS) od roku 2016 a SQL Server Data Tools od roku 2015. Verze SSMS z srpna 2016 zahrnuje také podporu univerzálního ověřování služby Active Directory, která správcům umožňuje vyžadovat vícefaktorové ověřování pomocí telefonního hovoru, textové zprávy, čipových karet s připínáčky nebo oznámení mobilní aplikace.

Použití identity Azure AD k připojení pomocí SSMS nebo SSDT

Následující postupy ukazují, jak se připojit k SQL Database pomocí identity Azure AD pomocí SQL Server Management Studio nebo SQL Server databázové nástroje.

Integrované ověřování služby Active Directory

Tuto metodu použijte, pokud jste přihlášení k Windows pomocí přihlašovacích údajů Azure Active Directory z federované domény nebo spravované domény, která je nakonfigurovaná pro bezproblémové jednotné přihlašování pro předávkovací ověřování a ověřování hodnot hash hesel. Další informace najdete v článku Azure Active Directory bezproblémového jednotného přihlašování.

  1. Spusťte Management Studio nebo Datové nástroje a v dialogovém okně Připojení server (nebo Připojení to Database Engine)vyberte v poli Ověřování možnost Azure Active Directory – integrované. Žádné heslo není potřeba nebo je možné zadat, protože se pro připojení zobrazí vaše stávající přihlašovací údaje.

    Select AD Integrated Authentication

  2. Vyberte tlačítko Možnosti a na stránce Vlastnosti připojení do pole Připojení databáze zadejte název databáze uživatelů, ke které se chcete připojit. Další informace najdete v článku Vícefaktorové ověřování Azure AD o rozdílech mezi vlastnostmi připojení pro SSMS 17.x a 18.x.

    Select the database name

Active Directory ověřování pomocí hesla

Tuto metodu použijte při připojování k hlavnímu názvu Azure AD pomocí spravované domény Azure AD. Můžete ho taky použít pro federované účty bez přístupu k doméně, například při vzdálené práci.

Tuto metodu použijte k ověření databáze v SQL Database nebo spravované instanci SQL Azure AD s uživateli cloudové identity Azure AD nebo s těmi, kteří používají hybridní identity Azure AD. Tato metoda podporuje uživatele, kteří chtějí Windows přihlašovací údaje, ale jejich místní počítač není připojený k doméně (například pomocí vzdáleného přístupu). V takovém případě může Windows uživatel označit svůj účet domény a heslo a může se ověřit v databázi v SQL Database, SQL spravované instanci nebo Azure Synapse.

  1. Spusťte Management Studio nebo Datové nástroje a v dialogovém okně Připojení server (nebo Připojení to Database Engine)vyberte v poli Ověřování možnost Azure Active Directory – Heslo.

  2. Do pole Uživatelské jméno zadejte Azure Active Directory uživatelské jméno ve formátu . Uživatelská jména musí být účet Azure Active Directory nebo účet ze spravované nebo federované domény se Azure Active Directory.

  3. Do pole Heslo zadejte uživatelské heslo pro účet Azure Active Directory nebo spravovaný/federovaný účet domény.

    Select AD Password Authentication

  4. Vyberte tlačítko Možnosti a na stránce Vlastnosti připojení do pole Připojení databáze zadejte název databáze uživatelů, ke které se chcete připojit. (Viz obrázek v předchozí možnosti.)

Interaktivní ověřování služby Active Directory

Tuto metodu použijte pro interaktivní ověřování s vícefaktorové ověřování (MFA) nebo bez něj, s interaktivním vyžádáním hesla. Tuto metodu můžete použít k ověření databáze v SQL Database, spravované instanci SQL a Azure Synapse pro uživatele cloudové identity Azure AD nebo pro uživatele, kteří používají hybridní identity Azure AD.

Další informace najdete v tématu Použití vícefaktorového ověřování Azure AD s SQL Database a Azure Synapse (podpora SSMS pro MFA).

Připojení z klientské aplikace pomocí identity Azure AD

Následující postupy ukazují, jak se připojit k SQL Database s identitou Azure AD z klientské aplikace.

Integrované ověřování služby Active Directory

Pokud chcete použít integrované ověřování Windows, musí být služba Active Directory vaší domény federovaná s Azure Active Directory nebo by měla být spravovaná doména, která je nakonfigurovaná pro bezproblémové jednotné přihlašování pro předávkovací ověřování nebo ověřování hodnot hash hesel. Další informace najdete v článku Azure Active Directory bezproblémového jednotného přihlašování.

Poznámka:

MSAL.NET (Microsoft.Identity.Client) pro integrované ověřování Windows není podporováno pro bezproblémové jednotné přihlašování pro předávkovací ověřování a ověřování hodnot hash hesel.

Klientská aplikace (nebo služba) připojující se k databázi musí být spuštěná na počítači připojeném k doméně pod přihlašovacími údaji domény uživatele.

Pokud se chcete připojit k databázi pomocí integrovaného ověřování a identity Azure AD, musí být klíčové slovo Authentication v připojovacím řetězci databáze nastavené na Active Directory Integrated . Následující ukázka kódu C# používá rozhraní ADO .NET.

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

Klíčové slovo Integrated Security=True připojovacího řetězce není pro připojení k Azure SQL Database. Při vytváření připojení ODBC budete muset odebrat mezery a nastavit ověřování na Hodnotu ActiveDirectoryIntegrated.

Active Directory ověřování pomocí hesla

Pokud se chcete připojit k databázi pomocí cloudových uživatelských účtů identity Azure AD nebo těch, kteří používají hybridní identity Azure AD, musí být klíčové slovo Ověřování nastavené na Active Directory Password . Připojovací řetězec musí obsahovat klíčová slova a hodnoty ID uživatele/UID a Heslo/PWD. Následující ukázka kódu C# používá rozhraní 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();

Přečtěte si další informace o metodách ověřování Azure AD pomocí ukázkových ukázek kódu dostupných na webu Azure AD Authentication GitHub Demo.

Token Azure AD

Tato metoda ověřování umožňuje službám střední úrovně získat webové tokeny JSON (JWT) pro připojení k databázi v SQL Database, spravované instanci SQL nebo Azure Synapse získáním tokenu z Azure AD. Tato metoda umožňuje různé scénáře aplikací, včetně identit služeb, objektů služeb a aplikací pomocí ověřování založeného na certifikátech. Pokud chcete používat ověřování tokenem Azure AD, musíte provést čtyři základní kroky:

  1. Zaregistrujte svou aplikaci Azure Active Directory a získejte ID klienta pro váš kód.
  2. Vytvořte uživatele databáze představující aplikaci. (Dokončeno dříve v kroku 6.)
  3. Vytvoření certifikátu v klientském počítači spustí aplikaci.
  4. Přidejte certifikát jako klíč pro vaši aplikaci.

Ukázkový připojovací řetězec:

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

Další informace najdete v článku SQL Server blog zabezpečení. Informace o přidání certifikátu najdete v tématu Začínáme s ověřováním založeným na certifikátech v Azure Active Directory.

sqlcmd

Následující příkazy se připojují pomocí verze 13.1 sqlcmd, která je dostupná v Centru pro stahování.

Poznámka:

sqlcmd s -G příkazem nefunguje s identitami systému a vyžaduje hlavní přihlášení uživatele.

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

Poradce při potížích s ověřováním Azure AD

Pokyny k řešení problémů s ověřováním Azure AD najdete na následujícím blogu: https://techcommunity.microsoft.com/t5/azure-sql-database/troubleshooting-problems-related-to-azure-ad-authentication-with/ba-p/1062991

Další kroky

  • Přehled přihlášení, uživatelů, rolí databáze a oprávnění v SQL Database najdete v tématu Přihlášení, uživatelé,role databáze a uživatelské účty .
  • Další informace o objektech zabezpečení databáze najdete v tématu Objekty zabezpečení.
  • Další informace o rolích databáze najdete v tématu Role databáze.
  • Další informace o pravidlech brány firewall v SQL Database najdete v SQL Database firewallu.
  • Informace o tom, jak nastavit hosta Azure AD jako správce Azure AD, najdete v článku Vytvoření uživatelů hosta Azure AD a nastavení jako správce Azure AD.
  • Informace o tom, jak pomocí Azure SQL service principals, najdete v tématu Vytvoření uživatelů Azure AD pomocí aplikací Azure AD.