Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2022 (16.x) dan yang lebih baru.
Artikel ini menjelaskan cara mengautentikasi dengan MICROSOFT Entra ID tanpa menyiapkan Azure Arc untuk SQL Server 2022 lokal Anda dan versi yang lebih baru. Autentikasi Microsoft Entra adalah layanan manajemen identitas berbasis cloud yang menyediakan akses aman ke database SQL Server. Tutorial ini memandu Anda melalui proses penyiapan autentikasi Microsoft Entra untuk SQL Server di Windows tanpa Azure Arc.
Nota
MICROSOFT Entra ID sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Dalam tutorial ini, Anda akan belajar cara:
- Tambahkan sertifikat untuk SQL Server.
- Instal adal.dll digunakan untuk menyambungkan ke SQL Server.
- Membuat dan mendaftarkan aplikasi ID Microsoft Entra.
- Memberikan izin aplikasi.
- Unggah sertifikat ke aplikasi.
- Tambahkan nilai registri untuk mengaktifkan autentikasi Microsoft Entra untuk SQL Server.
Prasyarat
- SQL Server 2022 lokal atau versi yang lebih baru.
- Penyewa MICROSOFT Entra ID aktif.
- Penyiapan ini menggunakan pendaftaran aplikasi untuk mengaitkan SQL Server dengan ID Microsoft Entra. Ikuti panduan untuk mendaftarkan aplikasi di ID Microsoft Entra.
- Verifikasi bahwa SQL Server memiliki konektivitas jaringan ke Azure, khususnya ke layanan dan alamat ID Microsoft Entra berikut:
- login.windows.net.
- login.microsoftonline.com.
- graph.microsoft.com.
- graph.windows.net.
- database.windows.net.
- Daftar lengkap alamat IP dan URL tidak diperlukan, tetapi dapat ditemukan di artikel, URL Microsoft 365, dan rentang alamat IP.
Mendapatkan sertifikat
- Dapatkan sertifikat yang akan digunakan untuk SQL Server dan impor ke penyimpanan sertifikat komputer. Kami merekomendasikan sertifikat yang ditandatangani CA.
Gunakan nama CN unik untuk sertifikat yang tidak cocok dengan sertifikat apa pun yang diinstal di penyimpanan sertifikat.
Instal sertifikat di penyimpanan sertifikat komputer. Untuk informasi selengkapnya, lihat Mengimpor sertifikat ke penyimpanan komputer lokal.
Tambahkan
Readizin untuk akun layanan SQL Server pada sertifikat.
Menginstal adal.dll
Instal adal.dll untuk SQL Server. Pustaka ini diperlukan untuk menyambungkan ke SQL Server Anda dengan autentikasi Microsoft Entra. Anda bisa mendapatkan adal.dll dari penginstalan terbaru Microsoft OLE DB Driver for SQL Server.
Setelah menginstal Driver Microsoft OLE DB untuk SQL Server, pastikan bahwaadal.dll ada di folder
C:\windows\system32.Anda juga harus memiliki kunci
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirregistri dengan nilaiC:\windows\system32\adal.dll. Jika tidak ada, buatlah.
Untuk informasi selengkapnya tentang registri Windows, lihat Informasi registri Windows untuk pengguna tingkat lanjut.
Membuat dan mendaftarkan aplikasi ID Microsoft Entra
-
Buka portal Azure, pilih Microsoft Entra ID>Pendaftaran Aplikasi>Pendaftaran Baru.
- Tentukan nama - Contoh dalam artikel ini menggunakan SQLServer.
- Pilih Jenis akun yang didukung dan gunakan Akun dalam direktori organisasi ini saja
- Jangan atur URI pengalihan
- Pilih Daftar
Lihat pendaftaran aplikasi di bawah ini:
Memberikan izin aplikasi
Pilih aplikasi yang baru dibuat, dan di menu sisi kiri, pilih Izin API.
Pilih Tambahkan izin>Microsoft Graph>Izin aplikasi
- Periksa Directory.Read.All
- Pilih Tambahkan izin
Atau,
Pilih Tambahkan izin>Microsoft Graph>Izin aplikasi
Silakan periksa Application.Read.All
Periksa Group.Read.All
Periksa User.Read.All
Pilih Tambahkan izin
Pilih Berikan persetujuan admin
Nota
Untuk memberikan persetujuan Admin terhadap izin di atas, akun Microsoft Entra Anda memerlukan peran Administrator Peran Istimewa atau izin yang lebih tinggi.
Mengunggah sertifikat
Unggah sertifikat yang Anda buat di bagian Dapatkan sertifikat dalam .cer format atau .pem ke pendaftaran aplikasi di portal Microsoft Azure.
Menambahkan nilai registri untuk mengaktifkan autentikasi Microsoft Entra untuk SQL Server
Perbarui kunci HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication registri dengan nilai berikut untuk mengaktifkan autentikasi Microsoft Entra untuk SQL Server. Contoh jalur kunci registri untuk SQL Server 2022 adalah HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.
Peringatan
Masalah serius mungkin terjadi jika Anda salah mengubah registri dengan menggunakan Editor Registri atau dengan menggunakan metode lain. Masalah ini mungkin mengharuskan Anda menginstal ulang sistem operasi. Microsoft tidak dapat menjamin bahwa masalah ini dapat diselesaikan. Ubah registri dengan risiko Anda sendiri.
- Jika kunci
FederatedAuthenticationtidak ada, buat dengan semua nilai berikut. - Lima entri pertama yang tercantum perlu diperbarui dengan nilai dari aplikasi yang Anda buat di bagian sebelumnya. Entri lainnya adalah nilai default.
-
<sql-server-certificate-name>adalah nama sertifikat yang Anda buat di bagian Mendapatkan sertifikat dan diunggah ke Azure. -
<application-client-id>adalah ID Aplikasi (klien) dari aplikasi yang Anda buat di bagian Membuat dan mendaftarkan aplikasi ID Microsoft Entra. Untuk informasi selengkapnya tentang menemukan ID klien, lihat ID Klien. -
<tenant-id>adalah ID pengguna dari tenant Azure Anda. Anda dapat menemukan ID penyewa di portal Azure di bawah Microsoft Entra ID>Gambaran Umum.
[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"=""
Untuk informasi selengkapnya tentang registri Windows, termasuk mencadangkan, mengedit, dan memulihkan kunci registri, lihat Informasi registri Windows untuk pengguna tingkat lanjut.
Menguji autentikasi
Setelah menyiapkan server dan mengedit nilai registri, autentikasi Microsoft Entra harus berfungsi. Uji penyiapan dengan membuat login menggunakan perintah T-SQL berikut:
CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER
Masalah umum
Anda mungkin melihat kesalahan berikut:
Keyset does not exist (AdalDll) with error code: 21
Kesalahan ini bisa disebabkan oleh masalah izin pada sertifikat. Pastikan bahwa akun layanan SQL Server memiliki Read izin pada sertifikat. Jika masalah berlanjut, pastikan sertifikat memiliki nama CN unik yang tidak cocok dengan sertifikat lain di penyimpanan sertifikat.