Mengaktifkan autentikasi Microsoft Entra untuk SQL Server di Azure VM
Berlaku untuk: SQL Server di Azure VM
Artikel ini mengajarkan Anda untuk mengaktifkan autentikasi dengan MICROSOFT Entra ID (sebelumnya Azure Active Directory) untuk SQL Server Anda di komputer virtual (VM) Azure.
Gambaran Umum
Dimulai dengan SQL Server 2022, Anda dapat menyambungkan ke SQL Server di Azure VM menggunakan salah satu metode autentikasi Microsoft Entra berikut:
- Kata sandi menawarkan autentikasi dengan kredensial Microsoft Entra
- Universal dengan MFA menambahkan autentikasi multifaktor
- Terintegrasi menggunakan penyedia federasi seperti Layanan Federasi Direktori Aktif (ADFS) untuk mengaktifkan pengalaman akses menyeluruh (SSO)
- Perwakilan Layanan memungkinkan autentikasi dari aplikasi Azure
- Identitas Terkelola memungkinkan autentikasi dari aplikasi yang ditetapkan identitas Microsoft Entra
Saat Anda membuat login Microsoft Entra untuk SQL Server dan saat pengguna tersambung menggunakan login tersebut, SQL Server menggunakan identitas terkelola untuk mengkueri Microsoft Graph. Saat mengaktifkan autentikasi Microsoft Entra untuk SQL Server di Azure VM, Anda perlu memberikan identitas terkelola yang dapat digunakan SQL Server untuk berkomunikasi dengan ID Microsoft Entra. Identitas terkelola ini harus memiliki izin untuk mengkueri Microsoft Graph.
Saat mengaktifkan identitas terkelola untuk sumber daya di Azure, batas keamanan identitas adalah sumber daya yang dilampirkan. Misalnya, batas keamanan untuk komputer virtual dengan identitas terkelola untuk sumber daya Azure yang diaktifkan adalah komputer virtual. Kode apa pun yang berjalan pada VM tersebut dapat memanggil titik akhir identitas terkelola dan meminta token. Saat mengaktifkan identitas terkelola untuk SQL Server di Azure VM, identitas dilampirkan ke komputer virtual, sehingga batas keamanan adalah komputer virtual. Pengalamannya mirip saat bekerja dengan sumber daya lain yang mendukung identitas terkelola. Untuk informasi selengkapnya, baca Tanya Jawab Umum Identitas Terkelola.
Identitas terkelola yang ditetapkan sistem dan ditetapkan pengguna yang digunakan untuk autentikasi Microsoft Entra dengan SQL Server di Azure VM menawarkan manfaat berikut:
- Identitas terkelola yang ditetapkan sistem menawarkan proses konfigurasi yang disederhanakan. Karena identitas terkelola memiliki masa pakai yang sama dengan komputer virtual, tidak perlu menghapusnya secara terpisah saat Anda menghapus komputer virtual.
- Identitas terkelola yang ditetapkan pengguna menawarkan skalabilitas karena dapat dilampirkan, dan digunakan untuk autentikasi Microsoft Entra, untuk beberapa SQL Server di Azure VM.
Untuk mulai menggunakan identitas terkelola, tinjau Mengonfigurasi identitas terkelola menggunakan portal Azure.
Prasyarat
Untuk mengaktifkan autentikasi Microsoft Entra di SQL Server, Anda memerlukan prasyarat berikut:
- Gunakan SQL Server 2022.
- Daftarkan komputer virtual SQL Server dengan ekstensi SQL Server Iaas Agent di cloud apa pun.
- Memiliki identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna yang ada di penyewa Microsoft Entra yang sama dengan komputer virtual SQL Server Anda. Konfigurasikan identitas terkelola menggunakan portal Azure untuk mempelajari lebih lanjut.
- Azure CLI 2.48.0 atau yang lebih baru jika Anda ingin menggunakan Azure CLI untuk mengonfigurasi autentikasi Microsoft Entra untuk komputer virtual SQL Server Anda.
Memberikan izin
Identitas terkelola yang Anda pilih untuk memfasilitasi autentikasi antara SQL Server dan MICROSOFT Entra ID harus memiliki tiga izin aplikasi Microsoft Graph berikut (peran aplikasi): User.Read.All
, , GroupMember.Read.All
dan Application.Read.All
.
Atau, menambahkan identitas terkelola ke peran Pembaca Microsoft Entra Directory memberikan izin yang memadai. Cara lain untuk menetapkan peran Pembaca Direktori ke identitas terkelola adalah dengan menetapkan peran Pembaca Direktori ke grup di ID Microsoft Entra. Pemilik grup kemudian dapat menambahkan identitas terkelola Komputer Virtual sebagai anggota grup ini. Ini meminimalkan melibatkan administrator Microsoft Entra Global dan mendelegasikan tanggung jawab kepada pemilik grup.
Menambahkan identitas terkelola ke peran
Bagian ini menjelaskan cara menambahkan identitas terkelola Anda ke peran Pembaca Direktori di ID Microsoft Entra. Anda harus memiliki hak istimewa Administrator Global untuk membuat perubahan pada penetapan peran Pembaca Direktori. Jika Anda tidak memiliki izin yang memadai, bekerja samalah dengan administrator Microsoft Entra Anda untuk mengikuti langkah-langkah ini.
Untuk memberikan identitas terkelola Anda peran Pembaca Direktori, ikuti langkah-langkah berikut:
Buka Peran dan administrator ID Microsoft Entra di portal Azure:
Ketik pembaca Direktori di kotak pencarian, lalu pilih peran Pembaca direktori untuk membuka Pembaca Direktori | Halaman penugasan :
Pada Pembaca Direktori | Halaman penugasan, pilih + Tambahkan tugas untuk membuka halaman Tambahkan penugasan.
Pada halaman Tambahkan tugas , pilih Tidak ada anggota yang dipilih di bawah Pilih anggota untuk membuka halaman Pilih anggota .
Pada halaman Pilih anggota , cari nama identitas terkelola yang ingin Anda gunakan dengan komputer virtual SQL Server Anda dan tambahkan ke peran Pembaca Direktori. Untuk identitas terkelola yang ditetapkan sistem, cari nama VM. Gunakan Pilih untuk mengonfirmasi identitas dan kembali ke halaman Tambahkan tugas .
Verifikasi bahwa Anda melihat identitas yang Anda pilih di bawah Pilih anggota lalu pilih Berikutnya.
Verifikasi bahwa jenis penugasan Anda diatur ke Aktif dan kotak di samping Ditetapkan secara permanen dicentang. Masukkan pembenaran bisnis, seperti Menambahkan izin peran Pembaca Direktori ke identitas yang ditetapkan sistem untuk VM2 lalu pilih Tetapkan untuk menyimpan pengaturan Anda dan kembali ke Pembaca Direktori | Halaman penugasan .
Pada Pembaca Direktori | Halaman penugasan, konfirmasikan bahwa Anda melihat identitas yang baru ditambahkan di bawah Pembaca Direktori.
Menambahkan izin peran aplikasi
Anda dapat menggunakan Azure PowerShell untuk memberikan peran aplikasi ke identitas terkelola. Untuk melakukannya, ikuti langkah-langkah berikut:
Catatan
Modul Azure ACTIVE Directory dan MSOnline PowerShell tidak digunakan lagi per 30 Maret 2024. Untuk mempelajari lebih lanjut, baca pembaruan penghentian. Setelah tanggal ini, dukungan untuk modul ini terbatas pada bantuan migrasi ke Microsoft Graph PowerShell SDK dan perbaikan keamanan. Modul yang tidak digunakan lagi akan terus berfungsi hingga Maret, 30 2025.
Sebaiknya migrasi ke Microsoft Graph PowerShell untuk berinteraksi dengan ID Microsoft Entra (sebelumnya Microsoft Azure AD). Untuk pertanyaan umum tentang migrasi, lihat Tanya Jawab Umum Migrasi. Catatan: MSOnline versi 1.0.x mungkin mengalami gangguan setelah 30 Juni 2024.
Menyambungkan ke Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
Ambil identitas terkelola:
$Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'" $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
Tetapkan
User.Read.All
peran ke identitas:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Tetapkan
GroupMember.Read.All
peran ke identitas:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Tetapkan
Application.Read.All
peran ke identitas:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Anda dapat memvalidasi izin yang ditetapkan ke identitas terkelola dengan melakukan hal berikut:
- Buka ID Microsoft Entra di portal Azure.
- Pilih Aplikasi perusahaan lalu pilih Semua aplikasi di bawah Kelola.
- Filter Jenis aplikasi menurut
Managed identities
. - Pilih identitas terkelola lalu pilih Izin di bawah Keamanan. Anda akan melihat izin berikut:
User.Read.All
, ,GroupMember.Read.All
Application.Read.All
.
Mengaktifkan komunikasi keluar
Agar autentikasi Microsoft Entra berfungsi, Anda memerlukan hal berikut:
- Komunikasi keluar dari SQL Server ke ID Microsoft Entra dan titik akhir Microsoft Graph.
- Komunikasi keluar dari klien SQL ke ID Microsoft Entra.
Konfigurasi Azure VM default memungkinkan komunikasi keluar ke titik akhir Microsoft Graph, serta ID Microsoft Entra, tetapi beberapa pengguna memilih untuk membatasi komunikasi keluar baik dengan menggunakan firewall tingkat OS, atau grup keamanan jaringan (NSG) Azure VNet.
Firewall pada komputer virtual SQL Server dan klien SQL apa pun perlu mengizinkan lalu lintas keluar pada port 80 dan 443.
Aturan NSG Azure VNet untuk VNet yang menghosting komputer virtual SQL Server Anda harus memiliki hal berikut:
- Tag Layanan dari
AzureActiveDirectory
. - Rentang port tujuan: 80, 443.
- Tindakan diatur ke Izinkan.
- Prioritas tinggi (yang merupakan angka rendah).
Mengaktifkan autentikasi Microsoft Entra
Anda dapat mengaktifkan autentikasi Microsoft Entra ke komputer virtual SQL Server Anda dengan menggunakan portal Azure, atau Azure CLI.
Catatan
Setelah autentikasi Microsoft Entra diaktifkan, Anda dapat mengikuti langkah yang sama di bagian ini untuk mengubah konfigurasi agar menggunakan identitas terkelola yang berbeda.
Untuk mengaktifkan autentikasi Microsoft Entra ke komputer virtual SQL Server Anda, ikuti langkah-langkah berikut:
Navigasi ke sumber daya komputer virtual SQL Anda di portal Azure.
Pilih Konfigurasi Keamanan di bawah Keamanan.
Pilih Aktifkan di bawah Autentikasi Microsoft Entra.
Pilih jenis identitas terkelola dari menu drop-down, baik yang ditetapkan Sistem atau Ditetapkan pengguna. Jika Anda memilih ditetapkan pengguna, pilih identitas yang ingin Anda gunakan untuk mengautentikasi ke SQL Server di Azure VM Anda dari menu drop-down Identitas terkelola yang ditetapkan pengguna yang muncul.
Setelah autentikasi Microsoft Entra diaktifkan, Anda dapat mengikuti langkah yang sama untuk mengubah identitas terkelola mana yang dapat diautentikasi ke komputer virtual SQL Server Anda.
Catatan
Kesalahan The selected managed identity does not have enough permissions for Microsoft Entra authentication
menunjukkan bahwa izin belum ditetapkan dengan benar ke identitas yang Anda pilih. Periksa bagian Beri izin untuk menetapkan izin yang tepat.
Batasan
Pertimbangkan batasan berikut:
- Autentikasi Microsoft Entra hanya didukung dengan SQL Server 2022 yang berjalan di VM Windows yang terdaftar dengan ekstensi Agen IaaS SQL, yang disebarkan ke cloud apa pun. Hanya skenario yang didukung dari ekstensi Agen IaaS SQL yang didukung, seperti instans default, atau satu instans bernama. Instans kluster failover tidak didukung.
- Identitas yang Anda pilih untuk mengautentikasi ke SQL Server harus memiliki peran Pembaca Direktori di ID Microsoft Entra atau tiga izin aplikasi Microsoft Graph berikut (peran aplikasi):
User.Read.All
, ,GroupMember.Read.All
danApplication.Read.All
. - Setelah autentikasi Microsoft Entra diaktifkan, tidak ada cara untuk menonaktifkannya.
- Saat ini, mengautentikasi ke SQL Server di Azure VM melalui autentikasi Microsoft Entra menggunakan metode FIDO2 tidak didukung.
Langkah berikutnya
Tinjau praktik terbaik keamanan untuk SQL Server.
Untuk artikel lain yang terkait dengan menjalankan SQL Server di Azure VM, lihat Gambaran umum SQL Server di Azure Virtual Machines. Jika Anda memiliki pertanyaan tentang komputer virtual SQL Server, lihat Tanya jawab umum.
Untuk mempelajari selengkapnya, lihat artikel lain dalam seri praktik terbaik ini: