Bagikan melalui


Tutorial: Mengaktifkan autentikasi Microsoft Entra untuk SQL Server di Windows tanpa Azure Arc

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

  1. Dapatkan sertifikat yang akan digunakan untuk SQL Server dan impor ke penyimpanan sertifikat komputer. Kami merekomendasikan sertifikat yang ditandatangani CA.
    1. Gunakan nama CN unik untuk sertifikat yang tidak cocok dengan sertifikat apa pun yang diinstal di penyimpanan sertifikat.

    2. Instal sertifikat di penyimpanan sertifikat komputer. Untuk informasi selengkapnya, lihat Mengimpor sertifikat ke penyimpanan komputer lokal.

    3. Tambahkan Read izin untuk akun layanan SQL Server pada sertifikat.

      Cuplikan layar dari properti Izin sertifikat.

Menginstal adal.dll

  1. 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.

  2. Setelah menginstal Driver Microsoft OLE DB untuk SQL Server, pastikan bahwaadal.dll ada di folder C:\windows\system32.

  3. Anda juga harus memiliki kunci HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDir registri dengan nilai C:\windows\system32\adal.dll. Jika tidak ada, buatlah.

    Cuplikan layar kunci registri untuk adal.dll.

    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.
    1. Tentukan nama - Contoh dalam artikel ini menggunakan SQLServer.
    2. Pilih Jenis akun yang didukung dan gunakan Akun dalam direktori organisasi ini saja
    3. Jangan atur URI pengalihan
    4. Pilih Daftar

Lihat pendaftaran aplikasi di bawah ini:

Cuplikan layar mendaftarkan aplikasi di portal Azure.

Memberikan izin aplikasi

Pilih aplikasi yang baru dibuat, dan di menu sisi kiri, pilih Izin API.

  1. Pilih Tambahkan izin>Microsoft Graph>Izin aplikasi

    1. Periksa Directory.Read.All
    2. Pilih Tambahkan izin

Atau,

  1. Pilih Tambahkan izin>Microsoft Graph>Izin aplikasi

    1. Silakan periksa Application.Read.All

    2. Periksa Group.Read.All

    3. Periksa User.Read.All

    4. Pilih Tambahkan izin

  2. Pilih Berikan persetujuan admin

Cuplikan layar memperlihatkan cara memberikan persetujuan di portal Microsoft Azure.

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.

Cuplikan layar mengunggah sertifikat untuk 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 FederatedAuthentication tidak 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.