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

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

V tomto článku se dozvíte, jak vytvořit a naplnit instanci Azure Active Directory (Azure AD) a pak použít Azure AD s Azure SQL Database, Azure SQL Managed Instance a Azure Synapse Analytics. Přehled najdete v tématu Azure Active Directory ověřování.

metody ověřování Azure AD

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

  • Pouze cloudové identity Azure AD
  • Azure AD hybridní identity, které podporují:
    • Cloudové ověřování se dvěma možnostmi v kombinaci s bezproblémovým jednotným přihlašováním (SSO)
      • ověřování pomocí hodnoty hash hesel Azure AD
      • předávací ověřování Azure AD
    • Federovaného ověřování

Další informace o metodách ověřování Azure AD a o tom, které z nich se mají zvolit, najdete v tématu Volba správné metody ověřování pro vaše řešení hybridní identity Azure Active Directory.

Další informace o Azure AD hybridníchidentitch

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í Azure AD spravovaná doména. Azure AD může být také služba místní Active Directory Domain Services, která je federovaná s Azure AD.

Další informace naleznete v tématu:

Přiřazení nebo přidání předplatného Azure do služby Azure Active Directory

  1. Přidružte své předplatné Azure k Azure Active Directory tím, že z adresáře vytvoříte důvěryhodný adresář 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 vašeho Azure Active Directory tenanta.

  2. Pomocí přepínače adresáře v Azure Portal přepněte do předplatného přidruženého k doméně.

    Důležité

    Každé předplatné služby Azure má vztah důvěryhodnosti s instancí služby Azure AD. To znamená, že tomuto adresáři svěřuje ověřování uživatelů, služeb i zařízení. Několik předplatných může důvěřovat stejnému adresáři, ale jedno předplatné důvěřuje pouze jednomu adresáři. Vztah důvěryhodnosti, který má předplatné s adresářem, se liší od vztahu, který má předplatné se všemi ostatními prostředky ve službě Azure (webové stránky, databáze apod.), což jsou pro předplatné spíše podřízené prostředky. Pokud platnost předplatného vyprší, zastaví se i přístup k těmto dalším prostředkům přidruženým k předplatnému. Adresář však ve službě Azure zůstane a vy k němu můžete přidružit jiné předplatné a pokračovat ve správě uživatelů adresáře. Další informace o prostředcích najdete v tématu Principy přístupu k prostředkům v Azure. Další informace o této důvěryhodné relaci najdete v tématu Jak přidružit nebo přidat předplatné Azure do Azure Active Directory.

Azure AD správce se serverem v SQL Database

Každý server v Azure (který hostuje 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 s omezením v hlavní databázi na serveru. Účty správce jsou členy role db_owner v každé uživatelské databázi a jako uživatel 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 použití Azure Active Directory s geografickou replikací musí být správce Azure Active Directory nakonfigurovaný pro primární i sekundární servery. Pokud server nemá správce Azure Active Directory, Azure Active Directory přihlášení a uživatelům se zobrazí Cannot connect chyba serveru.

Poznámka

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

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

Důležité

Pokud zřizujete Azure SQL Managed Instance, postupujte podle těchto kroků. Tuto operaci může spustit pouze globální správce nebo správce privilegovaných rolí v Azure AD.

Ve verzi Public Preview můžete přiřadit roli Čtenáři adresáře ke skupině v Azure AD. Vlastníci skupiny pak můžou přidat identitu spravované instance jako člena této skupiny, což by vám umožnilo zřídit správce Azure AD pro SQL Managed Instance. Další informace o této funkci najdete v tématu Role Čtenáře adresářů v Azure Active Directory pro Azure SQL.

Vaše SQL Managed Instance potřebuje oprávnění ke čtení Azure AD k úspěšnému provádění úloh, 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 SQL Managed Instance oprávnění ke čtení Azure AD. Můžete to udělat pomocí Azure Portal nebo PowerShellu.

portál Azure

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

  1. V Azure Portal vyberte v pravém horním rohu svůj účet a pak zvolte Přepnout adresáře a ověřte, která služba Active Directory je aktuálně vaší službou Active Directory. V případě potřeby přepněte adresáře.

    Screenshot of the Azure portal showing where to switch your directory

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

    Tento krok propojil předplatné přidružené ke službě Active Directory na SQL Managed Instance a ujistěte se, že se stejné předplatné používá pro instanci Azure AD i pro SQL Managed Instance.

  3. Přejděte na SQL Managed Instance, které 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 banner 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ém dokončení operace 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ď můžete pro svůj SQL Managed Instance zvolit správce Azure AD. V takovém případě na stránce správce služby Active Directory vyberte 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 Azure AD správce vyhledejte uživatele, vyberte uživatele nebo skupinu, která má být správcem, a pak vyberte Vybrat.

    Na stránce správce služby Active Directory se zobrazí všichni členové a skupiny služby Active Directory. Uživatelé nebo skupiny, které jsou neaktivní, se nedají vybrat, protože nejsou podporované jako správci Azure AD. Seznam podporovaných správců najdete v tématu Azure AD Funkce a omezení. Řízení přístupu na základě role v Azure (Azure RBAC) se vztahuje pouze na Azure Portal a není rozšířen na SQL Database, SQL Managed 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. Nový správce se pak zobrazí v poli správce služby Active Directory.

    U Azure AD uživatelů a skupin se ID objektu zobrazí vedle názvu správce. U aplikací (instančních objektů) se zobrazí ID aplikace .

Po zřízení správce Azure AD pro váš SQL Managed Instance můžete začít vytvářet Azure AD objekty zabezpečení serveru (přihlášení) pomocí syntaxe CREATE LOGIN. Další informace najdete v tématu SQL Managed Instance přehled.

Tip

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

PowerShell

Pokud chcete udělit oprávnění ke čtení SQL Managed 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 Managed Instance

Pokud chcete spouštět rutiny PowerShellu, musíte mít nainstalované a spuštěné Azure PowerShell. Podrobné informace najdete v tématu Instalace a konfigurace prostředí Azure PowerShell.

Důležité

Modul Azure Resource Manager (RM) PowerShellu je stále podporovaný Azure SQL Managed Instance, ale veškerý budoucí vývoj je určený pro modul Az.Sql. Modul AzureRM bude dál dostávat opravy chyb až do nejméně prosince 2020. Argumenty příkazů v modulu Az a v modulech AzureRm jsou podstatně identické. Další informace o 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í příkazy Azure PowerShell:

  • Connect-AzAccount
  • Select-AzSubscription

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

Název rutiny Description
Set-AzSqlInstanceActiveDirectoryAdministrator Zřídí správce Azure AD pro SQL Managed 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 Managed Instance v aktuálním předplatném.
Get-AzSqlInstanceActiveDirectoryAdministrator Vrátí informace o správci Azure AD pro SQL Managed Instance v aktuálním předplatném.

Následující příkaz získá informace o správci Azure AD pro SQL Managed Instance 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 zřídí skupinu správců Azure AD s názvem DBA pro SQL Managed Instance 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 Managed Instance 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é

Pokud zřizujete server pro SQL Database nebo Azure Synapse, postupujte podle těchto kroků.

Následující dva postupy ukazují, jak zřídit správce Azure Active Directory pro váš server v Azure Portal a pomocí PowerShellu.

portál Azure

  1. V Azure Portal v pravém horním rohu vyberte připojení a vyberte seznam možných adresářů Active Directory. Jako výchozí Azure AD zvolte správnou službu Active Directory. Tento krok propojuje službu Active Directory přidruženou k předplatnému se serverem a zajišťuje, aby se stejné předplatné používalo pro Azure AD i 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 SQL serverů vybrat hvězdičku vedle názvu kategorie a přidat SQL servery do levého navigačního panelu.

  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 být správcem, a pak vyberte Vybrat. (Na stránce správce služby Active Directory se zobrazují všichni členové a skupiny vaší služby Active Directory. Uživatele nebo skupiny, které jsou neaktivní, nelze vybrat, protože nejsou podporovány jako správci Azure AD. (Seznam podporovaných správců najdete v části Funkce a omezení Azure ADOvěřování Azure Active Directory pro ověřování pomocí SQL Database nebo Azure Synapse.) Řízení přístupu na základě role Azure (Azure RBAC) se vztahuje pouze na portál a není rozšířeno na SQL Server.

    Select Azure Active Directory admin

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

    save admin

    U Azure AD uživatelů a skupin se ID objektu zobrazí vedle názvu správce. Pro aplikace (instanční objekty) se zobrazí ID aplikace .

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

Poznámka

Při nastavování správce Azure AD už nové jméno správce (uživatel nebo skupina) nemůže být ve virtuální hlavní databázi přítomno jako uživatel ověřování serveru. Pokud je k dispozici, nastavení správce Azure AD se nezdaří; vrátí zpět jeho vytvoření a indikuje, že takový správce (název) již 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 selže.

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

PowerShell pro SQL Database a Azure Synapse

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

  • Connect-AzAccount
  • Select-AzSubscription

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

Název rutiny Description
Set-AzSqlServerActiveDirectoryAdministrator Zřídí správce Azure Active Directory pro server hostující SQL Database nebo Azure Synapse. (Musí být z aktuálního předplatného)
Remove-AzSqlServerActiveDirectoryAdministrator Odebere správce Azure Active Directory pro server hostující 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 PowerShellu získejte nápovědu k zobrazení dalších informací pro každý z těchto příkazů. Například, get-help Set-AzSqlServerActiveDirectoryAdministrator.

Následující skript zřídí skupinu Azure AD správce s názvem DBA_Group (ID 40b79501-b343-44ed-9ce7-da4c8cc7353fobjektu) pro demo_server server ve skupině prostředků s názvem Group-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í název uživatele. Příklad: DisplayName="John Smith" a DisplayName="johns@contoso.com". U Azure AD skupin se podporuje jenom zobrazovaný název Azure AD.

Poznámka

Příkaz Set-AzSqlServerActiveDirectoryAdministrator Azure PowerShell vám nebrání v zřizování Azure AD správců pro nepodporované uživatele. Nepodporovaný uživatel je možné zřídit, ale nemůže se připojit k databázi.

Následující příklad používá volitelné Id objektu:

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

Poznámka

Id objektu Azure AD se vyžaduje v případě, že displayName není jedinečný. Pokud chcete načíst hodnoty ObjectID a DisplayName, použijte oddíl služby 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 serveru:

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

Následující příklad odebere správce Azure AD:

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

Poznámka

Správce Azure Active Directory můžete zřídit také pomocí rozhraní REST API. Další informace najdete v tématu Referenční informace k rozhraní REST API služby Service Management a operace pro operace Azure SQL Database pro Azure SQL Database

Konfigurace klientských počítačů

Poznámka

System.Data.SqlClient používá knihovnu Azure Active Directory Authentication Library (ADAL), která bude zastaralá. Pokud používáte obor názvů System.Data.SqlClient pro ověřování Azure Active Directory, migrujte aplikace do Microsoft.Data.SqlClient a knihovny MSAL (Microsoft Authentication Library). Další informace o používání ověřování Azure AD s SqlClient najdete v tématu Použití ověřování Azure Active Directory s SqlClient.

SSMS a SSDT stále používají knihovnu Azure Active Directory Authentication Library (ADAL). Pokud chcete v aplikacích dál používat ADAL.DLL , můžete pomocí odkazů v této části nainstalovat nejnovější ovladač SSMS, ODBC a OLE DB, který obsahuje nejnovější knihovnuADAL.DLL .

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í Azure AD identit, musíte nainstalovat následující software:

Tyto požadavky můžete splnit takto:

Vytváření uživatelů s omezením namapovaných na identity Azure AD

Vzhledem k tomu, že SQL Managed Instance podporuje objekty zabezpečení serveru Azure AD (přihlášení), není nutné používat uživatele databáze s omezením. Objekty zabezpečení (přihlášení) serveru Azure AD umožňuje vytvářet přihlášení z uživatelů, skupin nebo aplikací Azure AD. To znamená, že se můžete ověřit pomocí SQL Managed Instance pomocí přihlášení k serveru Azure AD místo uživatele databáze s omezením. Další informace najdete v SQL Managed Instance přehledu. Syntaxi vytváření objektů zabezpečení 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í uživatelů databáze s omezením na základě identity Azure AD. Uživatel databáze s omezením nemá v hlavní databázi přihlášení 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 uživatelích databáze s omezením najdete v tématu Uživatelé databáze s omezením – Přenosná databáze.

Poznámka

Uživatelé databáze (s výjimkou správců) nelze vytvořit pomocí Azure Portal. Role Azure se nešírují do databáze v SQL Database, SQL Managed Instance nebo Azure Synapse. Role Azure se používají ke správě prostředků Azure a nevztahují se na oprávnění k databázi. Role přispěvatele SQL Server například neuděluje přístup pro připojení k databázi v SQL Database, SQL Managed Instance 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 T-SQL CREATE LOGIN a CREATE USER příkazy, nejsou podporovány.

Důležité

Azure AD uživatele a instanční objekty (Azure AD aplikace), které jsou členy více než 2048 Azure AD skupin zabezpečení, se nepodporují 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 Azure AD (jiného než správce serveru, který databázi vlastní), připojte se k databázi s Azure AD identitou jako uživatel s alespoň oprávněním ALTER ANY USER. Pak 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í název uživatele Azure AD nebo zobrazované jméno skupiny Azure AD.

Příklady: Vytvoření uživatele databáze s omezením představujícího Azure AD federovaného nebo spravovaného uživatele domény:

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

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

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Vytvoření uživatele databáze s omezením představující aplikaci, která se připojuje pomocí tokenu Azure AD:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Poznámka

Tento příkaz vyžaduje, aby SQL přístup Azure AD ("externí poskytovatel") jménem přihlášeného uživatele. Někdy dojde k okolnostem, které způsobí, že Azure AD vrátit výjimku zpět do SQL. V těchto případech se uživateli zobrazí SQL chyba 33134, která by měla obsahovat chybovou zprávu specifickou pro Azure AD. Ve většině případů se zobrazí chyba, že přístup byl odepřen nebo že se 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 prostřednictvím předběžného ověřování. V prvních dvou případech je problém obvykle způsoben zásadami podmíněného přístupu, které jsou nastavené v tenantovi Azure AD uživatele: zabrání uživateli v přístupu k externímu poskytovateli. Aktualizace zásad podmíněného přístupu tak, aby umožňovala přístup k aplikaci 00000003-0000-0000-c000-000000000000 (ID aplikace Microsoft Graph API), by mělo problém vyřešit. V případě, že chyba říká, že přístup mezi aplikacemi první strany musí být zpracován prostřednictvím předběžného ověřování, je problém, protože uživatel je přihlášený jako instanční objekt. Příkaz by měl být úspěšný, pokud je spuštěn uživatelem.

Tip

Uživatele nemůžete vytvořit přímo z jiného Azure Active Directory než Azure Active Directory, který je přidružený k vašemu předplatnému Azure. Členové jiných adresářů active directory, které jsou importovány uživatele v přidružené službě Active Directory (označované jako externí uživatelé), se ale dají přidat do skupiny služby Active Directory v tenantovi Active Directory. Vytvořením uživatele databáze s omezením pro tuto skupinu AD můžou uživatelé z externí služby Active Directory získat přístup k SQL Database.

Další informace o vytváření uživatelů databáze s omezením na základě Azure Active Directory identit najdete v tématu CREATE USER (Transact-SQL).

Poznámka

Odebráním správce Azure Active Directory serveru zabráníte všem uživatelům ověřování Azure AD, aby se připojil k serveru. V případě potřeby je možné nepoužitelné Azure AD uživatele ručně vyřadit správcem SQL Database.

Poznámka

Pokud se zobrazí vypršení časového limitu připojení, možná budete muset nastavit TransparentNetworkIPResolution parametr připojovacího řetězce na false. Další informace najdete v tématu Problém s vypršením časového limitu připojení s .NET Framework 4.6.1 – TransparentNetworkIPResolution.

Když vytvoříte uživatele databáze, obdrží tento uživatel oprávnění CONNECT a může se k této databázi připojit jako člen veřejné role. Zpočátku jedinými dostupnými oprávněními pro uživatele jsou všechna oprávnění udělená veřejné roli nebo všechna oprávnění udělená všem Azure AD skupinám, které jsou členy. Jakmile zřídíte uživatele databáze založené na Azure AD, můžete uživateli udělit další oprávnění stejným způsobem, jako udělíte oprávnění jakémukoli jinému typu uživatele. Obvykle udělte oprávnění databázovým rolím a přidejte uživatele do rolí. Další informace najdete v tématu Základy oprávnění databázového stroje. Další informace o speciální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 importovaný do spravované domény jako externí uživatel musí používat identitu spravované domény.

Poznámka

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

Připojení k databázi 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 Azure AD (kromě správce serveru, který databázi vlastní), připojte se k databázi s Azure AD identitou, která má přístup k databázi.

Důležité

Podpora ověřování Azure Active Directory je dostupná u SQL Server Management Studio (SSMS) od roku 2016 a SQL Server datových nástrojů od roku 2015. Verze SSMS ze 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 pinem nebo oznámením mobilní aplikace.

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

Následující postupy ukazují, jak se připojit k SQL Database pomocí Azure AD identity pomocí SQL Server Management Studio nebo SQL Server Databázových nástrojů.

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

Tuto metodu použijte, pokud jste přihlášení k Windows pomocí svých 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ávací ověřování a ověřování hash hesel. Přečtěte si informace v článku o bezproblémovém jednotném přihlašování služby Azure Active Directory.

  1. Spusťte Management Studio nebo datové nástroje a v dialogovém okně Připojení na server (nebo Připojení do databázového stroje) vyberte v poli OvěřováníAzure Active Directory – Integrované. Není potřeba žádné heslo ani není možné zadat, protože pro připojení se 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í v poli Připojení k databázi zadejte název uživatelské databáze, ke které se chcete připojit. Další informace najdete v článku Vícefaktorové Azure AD ověřování rozdílů mezi vlastnostmi připojení pro SSMS 17.x a 18.x.

    Select the database name

Ověřování hesel služby Active Directory

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 také použít pro federované účty bez přístupu k doméně, například při práci na dálku.

Tuto metodu použijte k ověření databáze v SQL Database nebo SQL Managed Instance s Azure AD uživateli identity jen pro cloud nebo pro uživatele, kteří používají Azure AD hybridní identity. Tato metoda podporuje uživatele, kteří chtějí používat svoje Windows přihlašovací údaje, ale 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 uživatel Windows označit svůj účet domény a heslo a může ověřit databázi v SQL Database, SQL Managed Instance nebo Azure Synapse.

  1. Spusťte Management Studio nebo datové nástroje a v dialogovém okně Připojení na server (nebo Připojení do databázového stroje) v poli Ověřování vyberte Azure Active Directory - Heslo.

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

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

    Select AD Password Authentication

  4. Vyberte tlačítko Možnosti a na stránce Vlastnosti připojení zadejte do pole Připojení k databázi název uživatelské databáze, 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 k interaktivnímu ověřování s vícefaktorovým ověřováním (MFA) s interaktivním vyžádáním hesla. Tuto metodu lze použít k ověření v databázi v SQL Database, SQL Managed Instance a Azure Synapse pro Azure AD uživatele identit jen pro cloud nebo uživatele, kteří používají Azure AD hybridní identity.

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).

Použití Azure AD identity pro připojení z klientské aplikace

Následující postupy ukazují, jak se připojit k SQL Database pomocí Azure AD identity 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ávací ověřování nebo ověřování hash hesel. Přečtěte si informace v článku o bezproblémovém jednotném přihlašování služby Azure Active Directory.

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ě v rámci přihlašovacích údajů uživatele k doméně.

Pokud se chcete připojit k databázi pomocí integrovaného ověřování a identity Azure AD, musí být klíčové slovo ověřování v připojovacím řetězci databáze nastaveno na Active Directory Integrated. Následující ukázka kódu jazyka C# používá 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í podporováno pro připojení k Azure SQL Database. Při vytváření připojení ODBC budete muset odebrat mezery a nastavit ověřování na ActiveDirectoryIntegrated.

Ověřování hesel služby Active Directory

Pokud se chcete připojit k databázi pomocí Azure AD uživatelských účtů identit jen pro cloud nebo uživatele, kteří používají Azure AD hybridní identity, 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 USER ID/UID a Password/PWD. Následující ukázka kódu jazyka C# používá 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 Azure AD Authentication GitHub Demo.

token Azure AD

Tato metoda ověřování umožňuje službám střední vrstvy získat webové tokeny JSON (JWT) pro připojení k databázi v SQL Database, SQL Managed Instance 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, instančních objektů a aplikací pomocí ověřování na základě certifikátů. Abyste mohli použít ověřování tokenu Azure AD, musíte provést čtyři základní kroky:

  1. Zaregistrujte aplikaci pomocí 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. Na klientském počítači vytvořte certifikát, na kterém běží aplikace.
  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 blogu o zabezpečení SQL Server. Informace o přidání certifikátu najdete v tématu Začínáme ověřování na základě certifikátu v Azure Active Directory.

sqlcmd

Následující příkazy se připojují pomocí verze 13.1 sqlcmd, která je dostupná z webu Download Center.

Poznámka

sqlcmd-G příkazem nefunguje se systémovými identitami a vyžaduje přihlášení objektu zabezpeč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

Řešení potíží s ověřováním Azure AD

Pokyny k řešení potíží 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