Sdílet prostřednictvím


Kurz: Nastavení ověřování Microsoft Entra pro SQL Server

platí pro: SQL Server 2022 (16.x)

Tento článek popisuje podrobný proces nastavení ověřování pomocí ID Microsoft Entra a ukazuje, jak používat různé metody ověřování Microsoft Entra.

Poznámka

Microsoft Entra ID se dříve označovala jako Azure Active Directory (Azure AD).

V tomto kurzu se naučíte:

  • Vytvoření a registrace aplikace Microsoft Entra
  • Udělení oprávnění k aplikaci Microsoft Entra
  • Vytvoření a přiřazení certifikátu
  • Konfigurace ověřování Microsoft Entra pro SQL Server prostřednictvím webu Azure Portal
  • Vytváření přihlášení a uživatelů
  • Připojení pomocí podporované metody ověřování

Požadavky

Požadavky na ověřování

Poznámka

Azure můžete použít k automatickému vytvoření certifikátu služby Azure Key Vault a aplikace Microsoft Entra při nastavování správce Microsoft Entra pro server. Další informace naleznete v tématu Kurz: Použití automatizace k nastavení správce Microsoft Entra pro SQL Server.

  • Registrace aplikace Microsoft Entra pro SQL Server Registrace instance SQL Serveru jako aplikace Microsoft Entra umožňuje instanci dotazovat Microsoft Entra ID a umožňuje aplikaci Microsoft Entra ověřit se jménem instance SQL Serveru. Registrace aplikace také vyžaduje několik oprávnění, která sql Server používá pro určité dotazy.

  • SQL Server používá pro toto ověřování certifikát, který je uložený ve službě Azure Key Vault (AKV). Agent Azure Arc stáhne certifikát do hostitele instance SQL Serveru.

Varování

Připojení ověřená Microsoft Entra ID jsou vždy šifrovaná. Pokud SQL Server používá certifikát podepsaný svým držitelem, musíte do připojovacího řetězce přidat trust server cert = true. Připojení ověřená systémem SQL Server a Windows nevyžadují šifrování, ale důrazně se doporučuje.

SQL Server se připojuje přímo k Microsoft Entra ID pro ověřování. Explicitní adresy URL brány firewall musí být otevřeny pro přímý přístup nebo je třeba použít proxy server. Microsoft Entra ID nepoužívá proxy server agenta Arc Connected Machine pro ověřování. Pokud počítač vyžaduje použití proxy serveru, microsoft Entra ID vyžaduje, aby byl proxy server WinHTTP na úrovni počítače nastavený pomocí následujících příkazů (nahraďte <http://proxyserver:port> příslušnou hodnotou):

netsh winhttp set proxy proxy-server="<http://proxyserver:port>"

Microsoft Entra ID ověřování nevyužívá nastavení proxy agenta Arc. Proxy agenta Arc je možné nastavit pomocí následujících příkazů (nahraďte <http://proxyserver:port> příslušnou hodnotou):

azcmagent config set proxy.url "<http://proxyserver:port>"

Vytvoření a registrace aplikace Microsoft Entra

  • Přejděte na portál Azure , vyberte Microsoft Entra ID , Registrace aplikací>, Nová registrace>.
    1. Zadejte název – Příklad v tomto článku používá SQLServerCTP1.
    2. Vyberte Podporované typy účtů a použijte Pouze účty v tomto adresáři organizace
    3. Nenastavujte přesměrovací URI
    4. Vyberte Zaregistrovat

Podívejte se na registraci aplikace níže:

snímek obrazovky registrace aplikace na webu Azure Portal

Udělení oprávnění aplikace

Vyberte nově vytvořenou aplikaci a v nabídce na levé straně vyberte Oprávnění pro rozhraní API.

  1. Vyberte Přidat oprávnění>Microsoft Graph>oprávnění aplikace

    1. Zkontrolovat Directory.Read.All
    2. Vyberte Přidat oprávnění
  2. Vyberte Přidat oprávnění>pro Microsoft Graph>- Delegovaná oprávnění.

    1. Zkontrolujte Application.Read.All
    2. Zkontrolujte Directory.AccessAsUser.All
    3. Zkontrolujte Group.Read.All
    4. Zkontrolujte User.Read.All
    5. Vyberte Přidat oprávnění
  3. Vyberte Udělení souhlasu správce

Snímek obrazovky s oprávněními aplikace na webu Azure Portal

Poznámka

Pokud chcete udělit souhlas správce výše uvedeným oprávněním, váš účet Microsoft Entra vyžaduje roli Správce privilegovaných rolí nebo vyšší oprávnění.

Vytvoření a přiřazení certifikátu

  1. Přejděte na webu Azure Portal, vyberte trezory klíčůa vyberte trezor klíčů, který chcete použít, nebo vytvořte nový. Vyberte certifikáty>Generování/Import

    1. Pro metodu vytvoření certifikátupoužijte Generate.

    2. Přidejte název certifikátu a předmět.

    3. Doporučená doba platnosti je maximálně 12 měsíců. Zbývající hodnoty mohou zůstat ve výchozím nastavení.

    4. Vyberte Vytvořit.

    snímek obrazovky s vytvářením certifikátu na webu Azure Portal

    Poznámka

    Po vytvoření certifikátu může být uvedeno, že je zakázán. Aktualizujte web a zobrazí se certifikát jako povolený.

  2. Přejděte na nový certifikát a vyberte řádek pro nejnovější verzi certifikátu. Vyberte Stáhnout ve formátu CER a uložte veřejný klíč certifikátu.

    snímek obrazovky s certifikátem na webu Azure Portal, kde můžete certifikát zobrazit a stáhnout.

    Poznámka

    To není nutné provádět na hostiteli SQL Serveru. Spíše každý klient, který bude přistupovat do Azure portálu pro další krok.

  3. V Azure portálu přejděte k registraci aplikace vytvořené výše a vyberte certifikáty seznam.

    1. Vyberte nahrání certifikátu.
    2. V posledním kroku vyberte veřejný klíč (.cer soubor).
    3. Vyberte Přidat.

    snímek obrazovky s nabídkou certifikátů a tajných kódů na webu Azure Portal

  4. Na webu Azure Portal získejte ID objektu počítače Azure Arc.

    1. V části Prostředky Azure Arc>Počítačevyberte počítač.

    2. V Přehledvyhledejte JSON zobrazení.

    3. V části Identityzkopírujte hodnotu principalId.

      Snímek obrazovky s ovládacím prvkem portálu zobrazením JSON definice stroje

  5. Na portálu přejděte do instance služby Azure Key Vault, kde je certifikát uložený, a udělte přístup k prostředkům azure Machine. V navigační nabídce služby Azure Key Vault přejděte na Nastavenía konfigurace přístupu. Podrobné pokyny ke správě přiřazení rolí najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

    Vaše zkušenost závisí na konfiguraci přístupu k vašemu klíčovému trezoru:

    Pro použití řízení přístupu v Azure na základě role (doporučeno):

    1. Přidejte ke svému zdroji následující role.

      • Uživatel certifikátu služby Key Vault
      • Uživatel tajných kódů služby Key Vault
    2. Ověřte role v tomto umístění:

      snímek obrazovky s přidáním rolí IAM ve službě Azure Key Vault

    K použití zásad přístupu k trezoru :

    1. V navigačním menu vyberte zásady přístupu.

    2. Vyberte Vytvořit.

    3. Pro tajná oprávněnívyberte Získat>Seznam.

    4. Pro oprávnění certifikátuvyberte Získat seznam>.

    5. Vyberte Další.

    6. Na stránce Principál vyhledejte název instance Machine - Azure Arc, což je název hostitele SQL Serveru.

      Snímek obrazovky prostředku serveru Azure Arc v portálu

    7. Vyberte Prověřit a vytvořit.

    8. Ověřte, že hodnota pro hlavní>ID objektu odpovídá hlavnímu ID spravované identity přiřazené k instanci.

      snímek obrazovky webu Azure Portal pro kontrolu a vytvoření zásad přístupu

      Přejděte na stránku zdroje a vyberte zobrazení JSON v pravém horním rohu sekce Základy na stránce Přehled, abyste to potvrdili. V části Identity najdete principalId.

    9. Vyberte Vytvořit.

      Abyste měli jistotu, že se oprávnění použijí, musíte vybrat Vytvořit. Pokud chcete zajistit, aby byla oprávnění uložená, aktualizujte okno prohlížeče a ověřte, že je vaše instance Azure Arc k dispozici.

Konfigurace ověřování Microsoft Entra pro SQL Server prostřednictvím webu Azure Portal

Poznámka

Ověřování Microsoft Entra můžete nakonfigurovat pomocí některého z následujících prostředí:

  1. Přejděte do Azure Portalu, vyberte SQL Server – Azure Arca poté vyberte instanci pro váš SQL Server hostitele.

  2. Zkontrolujte stav vašeho prostředku SQL Server – Azure Arc a ověřte, jestli je připojený tím, že přejdete do nabídky Vlastnosti. Další informace najdete v tématu Ověření SQL Serveru – prostředky Azure Arc.

  3. V nabídce prostředků v části Nastavení vyberte Microsoft Entra ID a Purview.

  4. Výběrem Nastavit správce otevřete podokno ID Microsoft Entra a zvolte účet, který chcete nastavit jako přihlašovací jméno správce pro SQL Server.

  5. Vyberte certifikát spravovaný zákazníkem a Vybertecertifikátu.

  6. Vyberte Změnit certifikáta vyberte instanci AKV a certifikát, který jste vytvořili dříve na novém podokně.

  7. Vyberte registraci aplikace spravovanou zákazníkem.

  8. Vyberte Změnit registraci aplikacea vyberte registraci aplikace, kterou jste vytvořili dříve.

  9. Vyberte Uložit. Tím se odešle požadavek na agenta serveru Arc, který nakonfiguruje ověřování Microsoft Entra pro danou instanci SQL Serveru.

    snímek obrazovky s nastavením ověřování Microsoft Entra na webu Azure Portal

    Stažení certifikátů a konfigurace nastavení trvá několik minut. Po nastavení všech parametrů a výběru možnosti Uložit na webu Azure Portal se může zobrazit následující zpráva: SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing. Počkejte na potvrzení procesu uložení pomocí Saved successfully, než se pokusíte přihlásit do Microsoft Entra.

    Agent serveru Azure Arc se může aktualizovat pouze po dokončení předchozí akce. To znamená, že uložení nové konfigurace Microsoft Entra před dokončením poslední konfigurace může způsobit selhání. Pokud se při výběru možnosti Uložitzobrazí zpráva Rozšířené volání selhalo, počkejte 5 minut a zkuste to znovu.

    Poznámka

    Jakmile je přihlašovacímu jménu správce Microsoft Entra udělena role sysadmin, změna správce Microsoft Entra v Azure portálu neodstraní předchozí přihlášení, které zůstane jako sysadmin. Pokud chcete přihlášení odebrat, musíte ho odstranit ručně.

    Změna správce Microsoft Entra pro instanci SQL Serveru probíhá bez restartování serveru, jakmile se proces dokončí s agentem Azure Arc SQL Serveru. Aby se nový správce zobrazil v sys.server_principals, musí se instance SQL Serveru restartovat a do té doby se zobrazí starý správce. Aktuálního správce Microsoft Entra lze zkontrolovat v Azure Portal.

Vytváření přihlášení a uživatelů

Po dokončení operace agenta Azure Arc na serveru s SQL Serverem bude účet správce vybraný v nabídce Microsoft Entra ID na portálu mít roli sysadmin na instanci SQL Serveru. Přihlaste se k SQL Serveru účtem správce Microsoft Entra, který má na serveru oprávnění sysadmin, pomocí klienta, jako je SSMS nebo Azure Data Studio.

Poznámka

Všechna připojení k SQL Serveru, která se provádí pomocí ověřování Microsoft Entra, vyžadují šifrované připojení. Pokud správce databáze (DBA) nenastavil důvěryhodný certifikát SSL/TLS pro server, přihlášení pravděpodobně selžou se zprávou Řetěz certifikátů vydala autorita, která není důvěryhodná. Chcete-li tento problém vyřešit, nakonfigurujte instanci SYSTÉMU SQL Server tak, aby používala certifikát SSL/TLS, který je důvěryhodný klientem, nebo vyberte důvěryhodný certifikát serveru ve vlastnostech rozšířeného připojení. Další informace naleznete v tématu Povolení šifrovaných připojení k databázovému stroji.

Vytvoření syntaxe přihlášení

Stejnou syntaxi pro vytváření přihlášení Microsoft Entra a uživatelů ve službě Azure SQL Database a Azure SQL Managed Instance je teď možné použít na SQL Serveru.

Poznámka

Na SQL Serveru může každý účet s oprávněním ALTER ANY LOGIN nebo ALTER ANY USER vytvářet přihlášení nebo uživatele Microsoft Entra. Účet nemusí být použit pro přihlášení do Microsoft Entra.

Pokud chcete vytvořit přihlášení k účtu Microsoft Entra, spusťte v databázi master následující příkaz T-SQL:

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

Pro uživatele musí být hlavní název ve formátu user@tenant.com. V Microsoft Entra ID je to hlavní název uživatele. Pro všechny ostatní typy účtů, jako jsou skupiny Microsoft Entra nebo aplikace, je hlavním názvem název objektu Microsoft Entra.

Tady je několik příkladů:

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

Pokud chcete zobrazit seznam přihlášení Microsoft Entra v databázi master, spusťte příkaz T-SQL:

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Pokud chcete udělit členství uživatele Microsoft Entra roli sysadmin (například admin@contoso.com), spusťte v masternásledující příkazy:

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER; 
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

Uložená procedura sp_addsrvrolemember musí být spuštěna jako člen role serveru sysadmin SYSTÉMU SQL Server.

Vytvořit syntaxi uživatele

Uživatele databáze můžete vytvořit v Microsoft Entra ID buď jako uživatele databáze spojovaného s hlavním uživatelem serveru (přihlášení), nebo jako samostatného uživatele databáze.

Pokud chcete vytvořit uživatele Microsoft Entra z přihlášení Microsoft Entra v databázi SQL Serveru, použijte následující syntaxi:

CREATE USER [principal_name] FROM LOGIN [principal_name];

Syntaxe principal_name je stejná jako pro přihlášení.

Tady je několik příkladů:

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

Chcete-li vytvořit uživatele databáze Microsoft Entra, což není uživatel svázaný s přihlášením k serveru, lze provést následující syntaxi:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

Název skupiny Microsoft Entra nebo název aplikace Microsoft Entra použijte jako <principal name> při vytváření uživatele databáze Microsoft Entra ze skupiny nebo aplikace.

Tady je několik příkladů:

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

Pokud chcete zobrazit seznam uživatelů vytvořených v databázi, spusťte následující příkaz T-SQL:

SELECT * FROM sys.database_principals;

Nová databáze má ve výchozím nastavení oprávnění Connect. Všechna ostatní oprávnění SQL Serveru musí být explicitně udělena autorizovanými grantory.

Účty hostů Microsoft Entra

Syntaxe CREATE LOGIN a CREATE USER také podporuje uživatele typu host. Pokud je například testuser@outlook.com pozván do tenanta contoso.com, můžete ho přidat jako přihlášení k SQL Serveru se stejnou syntaxí jako vytvoření jakéhokoli jiného uživatele nebo přihlášení Microsoft Entra. Při vytváření uživatelů typu host a přihlášení použijte původní e-mail účtu hosta, nikoli hlavní název uživatele v tenantovi. V příkladech je outlook.com poskytováno, i když je účet zaregistrovaný v tenantovi contoso.com.

Vytvoření uživatele typu host z existujícího přihlášení

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

Vytvořit uživatele typu host jako uzavřeného uživatele

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

Připojení pomocí podporované metody ověřování

SQL Server podporuje několik metod ověřování Microsoft Entra:

  • Výchozí
  • Uživatelské jméno a heslo
  • Integrovaný
  • Univerzální s vícefaktorovým ověřováním
  • služební principál
  • Spravovaná identita
  • Přístupový token

Pomocí jedné z těchto metod se připojte k instanci SQL Serveru. Další informace naleznete v tématu ověřování Microsoft Entra pro SQL Server.

Příklad ověřování pomocí SSMS

Poznámka

I když je ID Microsoft Entra novým názvem proAzure Active Directory (Azure AD), Azure AD stále zůstává v některých pevně zakódovaných prvcích, jako jsou pole uživatelského rozhraní, zprostředkovatelé připojení, kódy chyb a rutiny, aby se zabránilo narušení existujících prostředí. V tomto článku jsou tyto dva názvy zaměnitelné.

Níže je snímek stránky připojení aplikace SQL Server Management Studio (SSMS) pomocí metody ověřování Azure Active Directory – Universal s vícefaktorovým ověřováním.

snímek obrazovky SSMS s oknem Připojit k serveru

Během procesu ověřování musí být databáze, ve které byl uživatel vytvořen, explicitně označena v nástroji SSMS. Rozbalte možnosti > Vlastnosti připojení > Připojit k databázi: database_name.

Další informace naleznete v tématu Použití vícefaktorového ověřování Microsoft Entra.

Nástroje SQL Serveru, které podporují ověřování Microsoft Entra pro Azure SQL, jsou podporovány také pro SQL Server 2022 (16.x).

Umístění, kde jsou uloženy parametry ID Microsoft Entra

Varování

Parametry ID Microsoft Entra jsou nakonfigurované agentem Azure Arc a neměly by se překonfigurovat ručně.

V Linuxu jsou parametry ID Microsoft Entra uloženy v mssql-conf. Další informace o možnostech konfigurace v Linuxu najdete v tématu Konfigurace SQL Serveru v Linuxu pomocí nástroje mssql-conf.

Známé problémy

  • Aktualizace certifikátu se nepropaguje:
    • Po nakonfigurování ověřování Microsoft Entra pro SQL Server se aktualizace certifikátu v podokně Microsoft Entra ID a Purview prostředku SQL Server - Azure Arc nemusí plně projevit. Výsledkem je úspěšné uložení, ale stále se zobrazuje stará hodnota. Pokud chcete certifikát aktualizovat, postupujte takto:

      • Vyberte Odebrat správce.
      • Vyberte Uložit.
      • Vyberte Nastavit správce a znovu nakonfigurujte ověřování Microsoft Entra pomocí nového certifikátu.
      • Vyberte Uložit.

Viz také