Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
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
- 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.
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.
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.
Přidejte
Readoprávnění pro účet služby SQL Serveru v certifikátu.
Instalace adal.dll
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.
Po instalaci ovladače Microsoft OLE DB pro SQL Server se ujistěte, že adal.dll je ve složce
C:\windows\system32.Měli byste mít také klíč
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirregistru s hodnotouC:\windows\system32\adal.dll. Pokud neexistuje, vytvořte ho.
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>.
- Zadejte název – v příkladu v tomto článku se používá SQLServer.
- Vyberte Podporované typy účtů a použijte Pouze účty v adresáři této organizace
- Nenastavujte přesměrovací URI
- Vyberte Zaregistrovat
Podívejte se na registraci aplikace níže:
Udělení oprávnění aplikace
Vyberte nově vytvořenou aplikaci a v nabídce na levé straně vyberte oprávnění rozhraní API.
Vyberte Přidat oprávnění>Microsoft Graph>oprávnění aplikace
- Zkontrolovat Directory.Read.All
- Vyberte Přidat oprávnění
Nebo:
Vyberte Přidat oprávnění>Microsoft Graph>oprávnění aplikace
Zkontrolujte Application.Read.All
Zkontrolujte Group.Read.All
Zkontrolujte User.Read.All
Vyberte Přidat oprávnění
Vyberte Udělení souhlasu správce
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.
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čí.
-
FederatedAuthenticationPokud 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ů.