Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2022 (16.x) ve üzeri.
Bu makalede, şirket içi SQL Server 2022 ve sonraki sürümleriniz için Azure Arc'ı ayarlamadan Microsoft Entra Id ile kimlik doğrulamasının nasıl yapılacağını açıklanmaktadır. Microsoft Entra kimlik doğrulaması, SQL Server veritabanlarına güvenli erişim sağlayan bulut tabanlı bir kimlik yönetimi hizmetidir. Bu öğretici, Azure Arc olmadan Windows'ta SQL Server için Microsoft Entra kimlik doğrulamasını ayarlama işleminde size yol gösterir.
Uyarı
Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Bu eğitimde şunları öğreniyorsunuz:
- SQL Server için bir sertifika ekleyin.
- SQL Server'a bağlanmak için kullanılan adal.dll yükleyin.
- Bir Microsoft Entra ID uygulaması oluşturun ve kaydedin.
- Uygulama izinleri verin.
- Sertifikayı uygulamaya yükleyin.
- SQL Server için Microsoft Entra kimlik doğrulamasını etkinleştirmek için kayıt defteri değerleri ekleyin.
Önkoşullar
- Şirket içi SQL Server 2022 veya sonraki bir sürümü.
- Etkin bir Microsoft Entra ID kiracısı.
- Bu kurulum, SQL Server'ı Microsoft Entra Id ile ilişkilendirmek için bir uygulama kaydı kullanır. Microsoft Entra Id'de bir uygulamayı kaydetmek için kılavuzu izleyin.
- SQL Server'ın Azure'a, özellikle de aşağıdaki Microsoft Entra ID hizmetine ve adreslerine ağ bağlantısı olduğunu doğrulayın:
- login.windows.net.
- login.microsoftonline.com.
- graph.microsoft.com.
- graph.windows.net.
- database.windows.net.
- IP adreslerinin ve URL'lerin tam listesi gerekli değildir, ancak Microsoft 365 URL'leri ve IP adresi aralıkları makalesinde bulunabilir.
Sertifika alma
- SQL Server için kullanılacak bir sertifika alın ve bunu bilgisayar sertifika deposuna aktarın. CA imzalı bir sertifika öneririz.
Sertifika deposunda yüklü sertifikalarla eşleşmeyen sertifika için benzersiz bir CN adı kullanın.
Sertifikayı bilgisayar sertifika deposuna yükleyin. Daha fazla bilgi için bkz. Sertifikayı yerel bilgisayar deposuna aktarma.
Sertifikaya SQL Server hizmet hesabı için izinler ekleyin
Read.
adal.dll yükleme
SQL Server için adal.dll yükleyin. Bu kitaplık, Microsoft Entra kimlik doğrulaması ile SQL Server'ınıza bağlanmak için gereklidir. SQL Server için en son Microsoft OLE DB Sürücüsü yüklemesinden adal.dll alabilirsiniz.
SQL Server için Microsoft OLE DB Sürücüsünü yükledikten sonraadal.dllklasöründe
C:\windows\system32olun.Kayıt defteri anahtarınızın
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirve değerininC:\windows\system32\adal.dllolması gerekir. Yoksa oluşturun.
Windows kayıt defteri hakkında daha fazla bilgi için bkz. Gelişmiş kullanıcılar için Windows kayıt defteri bilgileri.
Microsoft Entra ID uygulaması oluşturma ve kaydetme
-
Azure portalına gidin, Microsoft Entra ID>Uygulama Kayıtları>Yeni Kayıt'ı seçin.
- Bir ad belirtin - Bu makaledeki örnekte SQLServer kullanılmaktadır.
- Desteklenen hesap türleri'ni seçin ve yalnızca bu kuruluş dizinindeki Hesaplar'ı kullanın
- Yeniden yönlendirme URI'sini ayarlamayın
- Kaydol'u seçin
Aşağıdaki uygulama kaydına bakın:
Uygulama izinleri verme
Yeni oluşturulan uygulamayı seçin ve sol taraftaki menüde API İzinleri'ni seçin.
Bir izin ekle>Microsoft Graph>Uygulama izinleri
- Directory.Read.All Öğesini Denetle
- İzin ekle'yi seçin
Veya
Bir izin ekle>Microsoft Graph>Uygulama izinleri
Application.Read.All Öğesini Denetle
Group.Read.All Öğesini Denetle
User.Read.All Öğesini Denetle
İzin ekle'yi seçin
Yönetici onayı ver'i seçin
Uyarı
Yukarıdaki izinlere Yönetici onayı vermek için, Microsoft Entra hesabınız Ayrıcalıklı Rol Yöneticisi rolü veya daha yüksek izinler gerektirir.
Sertifikayı karşıya yükle
Azure portalındaki uygulama kaydına veya .cer biçiminde .pem yükleyin.
SQL Server için Microsoft Entra kimlik doğrulamasını etkinleştirmek için kayıt defteri değerleri ekleme
SQL Server için Microsoft Entra kimlik doğrulamasını etkinleştirmek için kayıt defteri anahtarını HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication aşağıdaki değerlerle güncelleştirin. SQL Server 2022 için kayıt defteri anahtar yolunun bir örneğidir HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.
Uyarı
Kayıt Defteri Düzenleyicisi'ni veya başka bir yöntemi kullanarak kayıt defterini yanlış değiştirirseniz ciddi sorunlar oluşabilir. Bu sorunlar, işletim sistemini yeniden yüklemenizi gerektirebilir. Microsoft, bu sorunların çözülebileceği konusunda garanti veremez. Kayıt defterini değiştirme riski size aittir.
-
FederatedAuthenticationanahtar yoksa, tüm aşağıdaki değerlerle oluşturun. - Listelenen ilk beş girdinin, önceki bölümde oluşturduğunuz uygulamadaki değerlerle güncelleştirilmiş olması gerekir. Girdilerin geri kalanı varsayılan değerlerdir.
-
<sql-server-certificate-name>, Sertifika alma bölümünde oluşturduğunuz ve Azure'a yüklediğiniz sertifikanın adıdır. -
<application-client-id>, Microsoft Entra Id uygulaması oluşturma ve kaydetme bölümünde oluşturduğunuz uygulamanın Uygulama (istemci) kimliğidir. İstemci kimliğini bulma hakkında daha fazla bilgi için bkz. İstemci Kimliği. -
<tenant-id>Azure kiracınıza ait kiracı kimliğidir. Kiracı kimliğini Azure portalında Microsoft Entra Id'ye>Genel Bakış bölümünde bulabilirsiniz.
[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"=""
Kayıt defteri anahtarlarını yedekleme, düzenleme ve geri yükleme gibi Windows kayıt defteri hakkında daha fazla bilgi için bkz. Gelişmiş kullanıcılar için Windows kayıt defteri bilgileri.
Kimlik doğrulamayı test etme
Sunucuyu ayarladıktan ve kayıt defteri değerlerini düzenledikten sonra Microsoft Entra kimlik doğrulaması işlevsel olmalıdır. Aşağıdaki T-SQL komutlarını kullanarak oturum açma bilgileri oluşturarak kurulumu test edin:
CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER
Yaygın sorunlar
Aşağıdaki hatayı görebilirsiniz:
Keyset does not exist (AdalDll) with error code: 21
Bu hata, sertifikadaki izin sorunlarına bağlı olabilir. SQL Server hizmet hesabının Read sertifika üzerinde izinleri olduğundan emin olun. Sorun devam ederse, sertifikanın sertifika deposundaki diğer sertifikalarla eşleşmeyen benzersiz bir CN adına sahip olduğundan emin olun.