Tutorial: Menyiapkan autentikasi Microsoft Entra untuk SQL Server

Berlaku untuk: SQL Server 2022 (16.x)

Artikel ini menjelaskan proses langkah demi langkah untuk menyiapkan autentikasi dengan ID Microsoft Entra, dan menunjukkan cara menggunakan metode autentikasi Microsoft Entra yang berbeda.

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat dan mendaftarkan aplikasi Microsoft Entra
  • Memberikan izin ke aplikasi Microsoft Entra
  • Membuat dan menetapkan sertifikat
  • Mengonfigurasi autentikasi Microsoft Entra untuk SQL Server melalui portal Azure
  • Membuat login dan pengguna
  • Koneksi dengan metode autentikasi yang didukung

Prasyarat

Prasyarat autentikasi

Catatan

Fungsionalitas yang diperluas telah diterapkan di Azure untuk memungkinkan pembuatan otomatis sertifikat Azure Key Vault dan aplikasi Microsoft Entra selama menyiapkan admin Microsoft Entra untuk SQL Server. Untuk informasi selengkapnya, lihat Tutorial: Menggunakan otomatisasi untuk menyiapkan admin Microsoft Entra untuk SQL Server.

  • Pendaftaran aplikasi Microsoft Entra untuk SQL Server. Mendaftarkan instans SQL Server sebagai aplikasi Microsoft Entra memungkinkan instans untuk mengkueri ID Microsoft Entra, dan memungkinkan aplikasi Microsoft Entra untuk mengautentikasi atas nama instans SQL Server. Pendaftaran aplikasi juga memerlukan beberapa izin, yang digunakan oleh SQL Server untuk kueri tertentu.

  • SQL Server menggunakan sertifikat untuk autentikasi ini, yang disimpan di Azure Key Vault (AKV). Agen Azure Arc mengunduh sertifikat ke host instans SQL Server.

Peringatan

Koneksi yang diautentikasi oleh MICROSOFT Entra ID selalu dienkripsi. Jika SQL Server menggunakan sertifikat yang ditandatangani sendiri, Anda harus menambahkan trust server cert = true string koneksi. Koneksi terautentikasi SQL Server dan Windows tidak memerlukan enkripsi, tetapi sangat disarankan.

Membuat dan mendaftarkan aplikasi Microsoft Entra

  1. Buka portal Azure, pilih Pendaftaran Baru Pendaftaran>Aplikasi Microsoft Entra ID.>
    1. Tentukan nama - Contoh dalam artikel ini menggunakan SQLServerCTP1.
    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:

Screenshot of registering application in the Azure portal.

Memberikan izin aplikasi

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

  1. Pilih Tambahkan izin>Aplikasi Microsoft Graph>

    1. Periksa Directory.Read.All
    2. Pilih Tambahkan izin
  2. Pilih Tambahkan izin>Microsoft Graph>Izin yang Didelegasikan

    1. Periksa Application.Read.All
    2. Periksa Directory.AccessAsUser.All
    3. Periksa Group.Read.All
    4. Periksa User.Read.All
    5. Pilih Tambahkan izin
  3. Pilih Berikan persetujuan admin

Screenshot of application permissions in the Azure portal.

Catatan

Untuk memberikan persetujuan Admin atas izin di atas, akun Microsoft Entra Anda memerlukan peran Administrator Global atau Administrator Peran Istimewa.

Membuat dan menetapkan sertifikat

  1. Buka portal Azure, pilih Brankas kunci, dan pilih brankas kunci yang ingin Anda gunakan atau buat yang baru. Pilih Buat/Impor Sertifikat>

    1. Untuk Metode pembuatan sertifikat, gunakan Hasilkan.

    2. Tambahkan nama dan subjek sertifikat.

    3. Periode validitas yang direkomendasikan paling lama 12 bulan. Nilai lainnya dapat dibiarkan sebagai default.

    4. Pilih Buat.

    Screenshot of creating certificate in the Azure portal.

    Catatan

    Setelah sertifikat dibuat, sertifikat mungkin mengatakan sertifikat dinonaktifkan. Refresh situs dan akan menampilkan sertifikat sebagai diaktifkan.

  2. Navigasikan ke sertifikat baru, dan pilih baris untuk versi terbaru sertifikat. Pilih Unduh dalam format CER untuk menyimpan kunci umum sertifikat.

    Screenshot of certificate in the Azure portal where you can view and download the certificate.

    Catatan

    Ini tidak perlu dilakukan pada host SQL Server. Sebaliknya, setiap klien yang akan mengakses portal Azure untuk langkah berikutnya.

  3. Di portal Azure, navigasikan ke pendaftaran aplikasi yang dibuat di atas dan pilih Daftar sertifikat

    1. Pilih unggah sertifikat.
    2. Pilih kunci publik (file .cer) yang diunduh di langkah terakhir.
    3. Pilih Tambahkan.

    Screenshot of certificate and secrets menu in the Azure portal.

  4. Di portal Azure, navigasikan ke instans Azure Key Vault tempat sertifikat disimpan, dan pilih Kebijakan akses dari menu navigasi.

    1. Pilih Buat.

    2. Untuk Izin rahasia, pilih Dapatkan dan Daftar.

    3. Untuk Izin sertifikat, pilih Dapatkan dan Daftar.

    4. Pilih Selanjutnya.

    5. Pada halaman Utama , cari nama komputer Anda - instans Azure Arc, yang merupakan nama host host SQL Server.

      Screenshot of Azure Arc server resource in portal.

    6. Lewati halaman Aplikasi (opsional) dengan memilih Berikutnya dua kali, atau pilih Tinjau + buat.

      Verifikasi bahwa "ID Objek" Dari Prinsipal cocok dengan ID Utama identitas terkelola yang ditetapkan ke instans.

      Screenshot of Azure portal to review and create access policy.

      Untuk mengonfirmasi, buka halaman sumber daya dan pilih Tampilan JSON di kanan atas kotak Esensial di halaman Gambaran Umum. Di bawah identitas , Anda akan menemukan principalId

      Screenshot of portal control of JSON view of machine definition.

    7. Pilih Buat.

    Anda harus memilih Buat untuk memastikan bahwa izin diterapkan. Untuk memastikan izin telah disimpan, refresh jendela browser, dan periksa apakah baris untuk instans Azure Arc Anda masih ada.

    Screenshot of adding access policy to the key vault in the Azure portal.

Mengonfigurasi autentikasi Microsoft Entra untuk SQL Server melalui portal Azure

Catatan

Menggunakan templat Azure CLI, PowerShell, atau ARM untuk menyiapkan admin Microsoft Entra untuk SQL Server tersedia.

  1. Buka portal Azure, dan pilih SQL Server – Azure Arc, dan pilih instans untuk host SQL Server Anda.

  2. Periksa status sumber daya SQL Server - Azure Arc Anda dan lihat apakah sumber daya tersebut tersambung dengan masuk ke menu Properti. Untuk informasi selengkapnya, lihat Memvalidasi SQL Server - Sumber daya Azure Arc.

  3. Pilih MICROSOFT Entra ID dan Purview di bawah Pengaturan di menu sumber daya.

  4. Pilih Atur Admin untuk membuka panel ID Microsoft Entra, dan pilih akun yang akan diatur sebagai login admin untuk SQL Server.

  5. Pilih Sertifikasi yang dikelola pelanggan dan Pilih sertifikat.

  6. Pilih Ubah sertifikat, dan pilih instans dan sertifikat AKV yang Anda buat sebelumnya di panel baru.

  7. Pilih Pendaftaran aplikasi yang dikelola pelanggan.

  8. Pilih Ubah pendaftaran aplikasi, dan pilih pendaftaran aplikasi yang Anda buat sebelumnya.

  9. Pilih Simpan. Ini mengirimkan permintaan ke agen server Arc, yang mengonfigurasi autentikasi Microsoft Entra untuk instans SQL Server tersebut.

    Screenshot of setting Microsoft Entra authentication in the Azure portal.

    Dibutuhkan beberapa menit untuk mengunduh sertifikat dan mengonfigurasi pengaturan. Setelah mengatur semua parameter dan memilih Simpan di portal Azure, pesan berikut mungkin muncul: SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing. Tunggu hingga proses penyimpanan dikonfirmasi dengan Saved successfully, sebelum mencoba masuk Microsoft Entra.

    Agen server Azure Arc hanya dapat memperbarui setelah tindakan sebelumnya selesai. Ini berarti bahwa menyimpan konfigurasi Microsoft Entra baru sebelum yang terakhir diselesaikan dapat menyebabkan kegagalan. Jika Anda melihat pesan Panggilan diperpanjang gagal saat Anda memilih Simpan, tunggu 5 menit lalu coba lagi.

    Catatan

    Setelah login admin Microsoft Entra diberikan sysadmin peran, mengubah admin Microsoft Entra di portal Azure tidak menghapus login sebelumnya yang tetap sebagai sysadmin. Untuk menghapus login, log masuk harus dihilangkan secara manual.

    Perubahan admin Microsoft Entra untuk instans SQL Server terjadi tanpa menghidupkan ulang server, setelah proses selesai dengan agen Azure Arc SQL Server. Agar admin baru ditampilkan di sys.server_principals, instans SQL Server harus dimulai ulang, dan sampai saat itu, admin lama ditampilkan. Admin Microsoft Entra saat ini dapat diperiksa di portal Azure.

Membuat login dan pengguna

Setelah agen Azure Arc pada host SQL Server menyelesaikan operasinya, akun admin yang dipilih di menu ID Microsoft Entra di portal akan menjadi sysadmin pada instans SQL Server. Masuk ke SQL Server dengan akun admin Microsoft Entra yang memiliki sysadmin izin di server menggunakan klien seperti SSMS atau Azure Data Studio.

Catatan

Semua koneksi ke SQL Server yang dilakukan dengan autentikasi Microsoft Entra memerlukan koneksi terenkripsi. Jika Administrator Database (DBA) belum menyiapkan sertifikat SSL/TLS tepercaya untuk server, login kemungkinan akan gagal dengan pesan Rantai sertifikat dikeluarkan oleh otoritas yang tidak tepercaya. Untuk memperbaikinya, konfigurasikan instans SQL Server untuk menggunakan sertifikat SSL/TLS yang dipercaya oleh klien atau pilih sertifikat server kepercayaan di properti koneksi tingkat lanjut. Untuk informasi selengkapnya, lihat Mengaktifkan koneksi terenkripsi ke Mesin Basis Data.

Membuat sintaksis login

Sintaks yang sama untuk membuat login dan pengguna Microsoft Entra di Azure SQL Database dan Azure SQL Managed Instance sekarang dapat digunakan di SQL Server.

Catatan

Di SQL Server, akun apa pun yang memiliki ALTER ANY LOGIN izin atau ALTER ANY USER masing-masing dapat membuat login atau pengguna Microsoft Entra. Akun tidak perlu masuk Microsoft Entra.

Untuk membuat login untuk akun Microsoft Entra, jalankan perintah T-SQL berikut dalam master database:

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

Untuk pengguna, nama utama harus dalam format user@tenant.com. Di MICROSOFT Entra ID, ini adalah nama utama pengguna. Untuk semua jenis akun lainnya, seperti grup atau aplikasi Microsoft Entra, nama utamanya adalah nama objek Microsoft Entra.

Berikut beberapa contohnya:

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

Untuk mencantumkan login Microsoft Entra dalam master database, jalankan perintah T-SQL:

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Untuk memberikan keanggotaan pengguna Microsoft Entra ke sysadmin peran (misalnya admin@contoso.com), jalankan perintah berikut di master:

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER; 
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

Prosedur sp_addsrvrolemember tersimpan harus dijalankan sebagai anggota peran server SQL Server sysadmin .

Membuat sintaksis pengguna

Anda dapat membuat pengguna database dari ID Microsoft Entra baik sebagai pengguna database yang terkait dengan prinsipal server (masuk), atau sebagai pengguna database mandiri.

Untuk membuat pengguna Microsoft Entra dari login Microsoft Entra dalam database SQL Server, gunakan sintaks berikut:

CREATE USER [principal_name] FROM LOGIN [principal_name];

Sintaksnya principal_name sama dengan untuk login.

Berikut adalah beberapa contoh:

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

Untuk membuat pengguna database mandiri Microsoft Entra, yang merupakan pengguna yang tidak terkait dengan login server, sintaks berikut dapat dijalankan:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

Gunakan nama grup Microsoft Entra atau nama aplikasi Microsoft Entra seperti <principal name> saat membuat pengguna database Microsoft Entra dari grup atau aplikasi.

Berikut adalah beberapa contoh:

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

Untuk mencantumkan pengguna yang dibuat dalam database, jalankan perintah T-SQL berikut:

SELECT * FROM sys.database_principals;

Pengguna database baru diberikan izin Koneksi secara default. Semua izin SQL Server lainnya harus diberikan secara eksplisit oleh pemberi izin yang berwenang.

Akun tamu Microsoft Entra

Sintaks CREATE LOGIN dan CREATE USER juga mendukung pengguna tamu. Misalnya, jika testuser@outlook.com diundang ke contoso.com penyewa, itu dapat ditambahkan sebagai login ke SQL Server dengan sintaks yang sama seperti membuat pengguna atau login Microsoft Entra lainnya. Saat membuat pengguna tamu dan masuk, gunakan email asal akun tamu, bukan nama utama penggunanya di penyewa. Dalam contoh, outlook.com disediakan meskipun akun terdaftar di contoso.com penyewa.

Membuat pengguna tamu dari login yang sudah ada

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

Membuat pengguna tamu sebagai pengguna mandiri

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

Koneksi dengan metode autentikasi yang didukung

SQL Server mendukung beberapa metode autentikasi Microsoft Entra:

  • Default
  • Nama pengguna dan kata sandi
  • Terintegrasi
  • Universal dengan autentikasi multifaktor
  • Perwakilan layanan
  • Identitas terkelola
  • Token akses

Gunakan salah satu metode ini untuk menyambungkan ke instans SQL Server. Untuk informasi selengkapnya, lihat Autentikasi Microsoft Entra untuk SQL Server.

Contoh autentikasi menggunakan SSMS

Catatan

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

Di bawah ini adalah rekam jepret halaman koneksi SQL Server Management Studio (SSMS) menggunakan metode autentikasi Azure Active Directory - Universal dengan MFA.

Screenshot SSMS showing the Connect to Server window.

Selama proses autentikasi, database tempat pengguna dibuat harus secara eksplisit ditunjukkan dalam SSMS. Perluas Opsi Koneksi properti > Koneksi ke database: database_name.>

Untuk informasi selengkapnya, lihat Menggunakan autentikasi multifaktor Microsoft Entra.

Alat SQL Server yang mendukung autentikasi Microsoft Entra untuk Azure SQL juga didukung untuk SQL Server 2022 (16.x).

Lokasi tempat parameter ID Microsoft Entra disimpan

Peringatan

Parameter ID Microsoft Entra dikonfigurasi oleh agen Azure Arc dan tidak boleh dikonfigurasi ulang secara manual.

Di Linux, parameter ID Microsoft Entra disimpan di mssql-conf. Untuk informasi selengkapnya tentang opsi konfigurasi di Linux, lihat Mengonfigurasi SQL Server di Linux dengan alat mssql-conf.

Masalah umum

  • Memperbarui sertifikat tidak menyebar:
    • Setelah autentikasi Microsoft Entra dikonfigurasi untuk SQL Server, memperbarui sertifikat di SQL Server - ID Microsoft Entra sumber daya Azure Arc dan panel Purview mungkin tidak disebarluaskan sepenuhnya. Ini menghasilkan penyimpanan yang berhasil tetapi nilai lama masih ditampilkan. Untuk memperbarui sertifikat, lakukan hal berikut:

      • Pilih Hapus Admin.
      • Pilih Simpan.
      • Pilih Atur Admin dan konfigurasi ulang autentikasi Microsoft Entra dengan sertifikat baru.
      • Pilih Simpan.

Lihat juga