Sdílet prostřednictvím


Kurz: Povolení ověřování Microsoft Entra pro SQL Server ve Windows bez Azure Arc

Platí pro: SQL Server 2022 (16.x) a novější

Tento článek popisuje, jak se ověřit pomocí ID Microsoft Entra bez nastavení služby Azure Arc pro místní SQL Server 2022 a novější verze. Ověřování Microsoft Entra je cloudová služba pro správu identit, která poskytuje zabezpečený přístup k databázím SQL Serveru. Tento kurz vás provede procesem nastavení ověřování Microsoft Entra pro SQL Server ve Windows bez Azure Arc.

Poznámka:

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

V tomto návodu se naučíte, jak:

  • Přidejte certifikát pro SQL Server.
  • Nainstalujte adal.dll sloužící k připojení k SQL Serveru.
  • Vytvořte a zaregistrujte aplikaci Microsoft Entra ID.
  • Udělte oprávnění aplikace.
  • Nahrajte certifikát do aplikace.
  • Přidejte hodnoty registru pro povolení ověřování Microsoft Entra pro SQL Server.

Požadavky

  • Místní verze SQL Serveru 2022 nebo novější.
  • Aktivní tenant Microsoft Entra ID .
  • Toto nastavení používá registraci aplikace k přidružení SQL Serveru k Microsoft Entra ID. Postupujte podle pokynů k registraci aplikace v Microsoft Entra ID.
  • Ověřte, že SQL Server má síťové připojení k Azure, konkrétně k následující službě a adresě Microsoft Entra ID:
    • login.windows.net.
    • login.microsoftonline.com.
    • graph.microsoft.com.
    • graph.windows.net.
    • database.windows.net.
    • Úplný seznam IP adres a adres URL není potřeba, ale najdete ho v článku Adresy URL Microsoftu 365 a rozsahy IP adres.

Získání certifikátu

  1. Získejte certifikát, který se má použít pro SQL Server, a importujte ho do úložiště certifikátů počítače. Doporučujeme certifikát podepsaný certifikační autoritou.
    1. Pro certifikát, který neodpovídá žádným certifikátům nainstalovaným v úložišti certifikátů, použijte jedinečný název CN.

    2. Nainstalujte certifikát do úložiště certifikátů počítače. Další informace naleznete v tématu Import certifikátu do úložiště místního počítače.

    3. Přidejte Read oprávnění pro účet služby SQL Serveru v certifikátu.

      Snímek obrazovky s vlastnostmi oprávnění certifikátu

Instalace adal.dll

  1. Nainstalujte adal.dll pro SQL Server. Tato knihovna je potřebná pro připojení k SQL Serveru pomocí ověřování Microsoft Entra. adal.dll můžete získat z instalace nejnovějšího ovladače Microsoft OLE DB pro SQL Server.

  2. Po instalaci ovladače Microsoft OLE DB pro SQL Server se ujistěte, že adal.dll je ve složce C:\windows\system32.

  3. Měli byste mít také klíč HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDir registru s hodnotou C:\windows\system32\adal.dll. Pokud neexistuje, vytvořte ho.

    Snímek obrazovky s klíčem registru pro adal.dll

    Další informace o registru systému Windows naleznete v tématu Informace o registru systému Windows pro pokročilé uživatele.

Vytvoření a registrace aplikace Microsoft Entra ID

  • Přejděte na portál Azure , vyberte Microsoft Entra ID , Registrace aplikací>, Nová registrace>.
    1. Zadejte název – v příkladu v tomto článku se používá SQLServer.
    2. Vyberte Podporované typy účtů a použijte Pouze účty v adresáři této 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í 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í

Nebo:

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

    1. Zkontrolujte Application.Read.All

    2. Zkontrolujte Group.Read.All

    3. Zkontrolujte User.Read.All

    4. Vyberte Přidat oprávnění

  2. Vyberte Udělení souhlasu správce

Snímek obrazovky znázorňující, jak udělit souhlas 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í.

Nahrání certifikátu

Nahrajte certifikát, který jste vytvořili v části Získání certifikátu, ve formátu .cer nebo .pem do registrace aplikace na Azure Portal.

Snímek obrazovky s nahráním certifikátu pro aplikaci na webu Azure Portal

Přidání hodnot registru pro povolení ověřování Microsoft Entra pro SQL Server

Aktualizujte klíč HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication registru následujícími hodnotami, abyste povolili ověřování Microsoft Entra pro SQL Server. Příkladem cesty klíče registru pro SQL Server 2022 je HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.

Výstraha

K vážným problémům může dojít, pokud nesprávně upravíte registr pomocí Editoru registru nebo pomocí jiné metody. Tyto problémy můžou vyžadovat přeinstalaci operačního systému. Microsoft nemůže zaručit, že tyto problémy je možné vyřešit. Upravte registr na vlastní nebezpečí.

  • FederatedAuthentication Pokud klíč neexistuje, vytvořte ho se všemi následujícími hodnotami.
  • Prvních pět uvedených položek je potřeba aktualizovat hodnotami z aplikace, kterou jste vytvořili v předchozí části. Zbývající položky jsou výchozí hodnoty.
  • Název certifikátu <sql-server-certificate-name> je název, který jste vytvořili v části Získání certifikátu a nahraný do Azure.
  • Jedná se <application-client-id> o ID aplikace (klienta) z aplikace, kterou jste vytvořili v části Vytvoření a registrace aplikace Microsoft Entra ID. Další informace o vyhledání ID klienta najdete v tématu ID klienta.
  • Jedná se <tenant-id> o ID tenanta z vašeho tenanta Azure. ID tenanta najdete na webu Azure Portal v částiPřehled> Microsoft Entra.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication]

"AADCertSubjectName"="<sql-server-certificate-name>"
"AADTenantSpecificSQLServicePrincipalCertSubjectName"="<sql-server-certificate-name>"
"ClientId"="<application-client-id>"
"AADTenantSpecificSQLServicePrincipalClientId"="<application-client-id>"
"PrimaryAADTenant"="<tenant-id>"
"AADChannelMaxBufferedMessageSize"="200000"
"AADGraphEndPoint"="graph.windows.net"
"AADGroupLookupMaxRetryAttempts"="10"
"AADGroupLookupMaxRetryDuration"="30000"
"AADGroupLookupRetryInitialBackoff"="100"
"AuthenticationEndpoint"="login.microsoftonline.com"
"CacheMaxSize"="300"
"FederationMetadataEndpoint"="login.windows.net"
"GraphAPIEndpoint"="graph.windows.net"
"IssuerURL"="https://sts.windows.net/"
"MsGraphEndPoint"="graph.microsoft.com"
"OnBehalfOfAuthority"="https://login.windows.net/"
"SendX5c"="false"
"ServicePrincipalName"="https://database.windows.net/"
"ServicePrincipalNameForArcadia"="https://sql.azuresynapse.net"
"ServicePrincipalNameForArcadiaDogfood"="https://sql.azuresynapse-dogfood.net"
"ServicePrincipalNameNoSlash"="https://database.windows.net"
"STSURL"="https://login.windows.net/"
"ClientCertBlackList"=""

Další informace o registru Systému Windows, včetně zálohování, úprav a obnovování klíčů registru, naleznete v tématu Informace o registru systému Windows pro pokročilé uživatele.

Testování autentizace

Po nastavení serveru a úpravě hodnot registru by mělo být ověřování Microsoft Entra funkční. Otestujte nastavení vytvořením přihlášení pomocí následujících příkazů T-SQL:

CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER

Běžné problémy

Může se zobrazit následující chyba:

Keyset does not exist (AdalDll) with error code: 21

Příčinou této chyby můžou být problémy s oprávněními certifikátu. Ujistěte se, že účet služby SQL Serveru má Read oprávnění k certifikátu. Pokud problém přetrvává, ujistěte se, že má certifikát jedinečný název CN, který neodpovídá žádným jiným certifikátům v úložišti certifikátů.