Bagikan melalui


Tutorial: Menyiapkan autentikasi Microsoft Entra untuk SQL Server dengan pendaftaran aplikasi

Berlaku untuk: SQL Server 2022 (16.x) saja.

Artikel ini menjelaskan proses langkah demi langkah untuk menyiapkan autentikasi dengan ID Microsoft Entra dengan pendaftaran aplikasi, 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
  • Hubungkan dengan metode autentikasi yang didukung

Prasyarat

Prasyarat autentikasi

Catatan

Anda dapat menggunakan Azure untuk membuat sertifikat Azure Key Vault dan aplikasi Microsoft Entra secara otomatis saat menyiapkan admin Microsoft Entra untuk 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 ID Microsoft Entra 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.

SQL Server terhubung langsung ke ID Microsoft Entra untuk autentikasi. URL firewall yang spesifik perlu dibuka untuk akses langsung, atau Anda dapat menggunakan server proksi. ID Microsoft Entra tidak menggunakan proksi Arc Connected Machine Agent untuk autentikasi. Jika komputer memerlukan penggunaan server proksi, ID Microsoft Entra mengharuskan proksi WinHTTP tingkat komputer diatur menggunakan perintah berikut (ganti <http://proxyserver:port> dengan nilai yang sesuai):

netsh winhttp set proxy proxy-server="<http://proxyserver:port>"

Autentikasi ID Microsoft Entra tidak menggunakan pengaturan proksi dari agen Arc. Proksi Agen Arc dapat diatur menggunakan perintah berikut (ganti <http://proxyserver:port> dengan nilai yang sesuai):

azcmagent config set proxy.url "<http://proxyserver:port>"

Membuat dan mendaftarkan aplikasi 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 Microsoft 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. 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.

Catatan

Untuk memberikan persetujuan Admin terhadap izin di atas, akun Microsoft Entra Anda memerlukan peran Administrator Peran Istimewa atau izin yang lebih tinggi.

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. Nama sertifikat harus unik. Nama sertifikat yang cocok dengan sertifikat yang ada menyebabkan kesalahan saat login dibuat.

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

    4. Pilih Buat.

    Cuplikan layar pembuatan sertifikat di portal Azure.

    Catatan

    Setelah sertifikat dibuat, mungkin akan mengatakan sertifikat dinonaktifkan. Refresh situs web dan itu akan menampilkan sertifikat sebagai aktif.

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

    Cuplikan layar sertifikat di portal Azure tempat Anda dapat melihat dan mengunduh sertifikat.

    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.

    Cuplikan layar menu sertifikat dan rahasia di portal Azure.

  4. Di portal Microsoft Azure, dapatkan ID objek dari Azure Arc Machine.

    1. Di bawah Azure Arc Resources>Machines, pilih mesin.

    2. Di Gambaran Umum, temukan Tampilan JSON.

    3. Di bawah Identitas, salin nilai untuk principalId.

      Cuplikan layar kontrol portal tampilan JSON definisi komputer.

  5. Di portal, navigasikan ke instans Azure Key Vault tempat sertifikat disimpan, dan berikan akses ke sumber daya Azure Machine. Di menu navigasi Azure Key Vault Anda, navigasikan ke pengaturan , dan Konfigurasi akses. Untuk langkah-langkah terperinci dalam mengelola penetapan peran, tinjau Tetapkan peran Azure menggunakan portal Microsoft Azure.

    Pengalaman Anda bergantung pada konfigurasi akses brankas kunci Anda:

    Untuk menggunakan kontrol akses Azure berbasis peran (disarankan):

    1. Tambahkan peran berikut ke Sumber Daya Anda.

      • Pengguna Sertifikat Key Vault
      • Pengguna Rahasia Key Vault
    2. Verifikasi peran di lokasi ini:

      Cuplikan layar penambahan peran IAM Azure Key Vault.

    Untuk menggunakan kebijakan akses Vault:

    1. Pilih Kebijakan akses dari menu navigasi.

    2. Pilih Buat.

    3. Untuk izin Rahasia , pilih Dapatkan>Daftar.

    4. Untuk Izin sertifikat, pilih Dapatkan daftar>.

    5. Pilih Selanjutnya.

    6. Untuk halaman Prinsipal, cari nama Machine Anda - instans Azure Arc, yang merupakan nama host SQL Server.

      Cuplikan layar sumber daya server Azure Arc di portal.

    7. Pilih Tinjau + buat.

    8. Verifikasi bahwa nilai untuk Utama>ID Objek cocok dengan ID Utama dari identitas terkelola yang ditetapkan ke instans.

      Cuplikan layar portal Azure untuk meninjau dan membuat kebijakan akses.

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

    9. Pilih Buat.

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

Mengonfigurasi autentikasi Microsoft Entra untuk SQL Server melalui portal Azure

Langkah-langkah di portal Microsoft Azure berlaku untuk SQL Server 2022 (16.x).

Langkah-langkah di portal Microsoft Azure tidak berlaku untuk SQL Server 2025 (17.x).

Catatan

Anda dapat mengonfigurasi autentikasi Microsoft Entra dengan salah satu pengalaman berikut:

  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 Validasi sumber daya SQL Server - Azure Arc.

  3. Pilih ID Microsoft Entra 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.

    Cuplikan layar pengaturan autentikasi Microsoft Entra di portal Microsoft Azure.

    Dibutuhkan beberapa menit untuk mengunduh sertifikat dan mengonfigurasi pengaturan. Setelah mengatur semua parameter dan memilih Simpan di portal Microsoft 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.

    Setelah login admin Microsoft Entra diberikan sysadmin peran, mengubah admin Microsoft Entra di portal Microsoft Azure tidak menghapus login sebelumnya yang tetap sebagai sysadmin. Untuk menghapus login, harus dihapus 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 di host SQL Server menyelesaikan operasinya, akun admin yang dipilih di menu ID Microsoft Entra di portal adalah sysadmin pada instans SQL Server. Masuk ke SQL Server dengan akun admin Microsoft Entra yang memiliki izin sysadmin di server menggunakan klien seperti SQL Server Management Studio (SSMS).

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 gagal dengan pesan:

The certificate chain was issued by an authority that is not trusted.

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 Mengonfigurasi Mesin Database SQL Server untuk mengenkripsi koneksi.

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

Pada SQL Server, akun Microsoft Entra apa pun yang memiliki izin ALTER ANY LOGIN atau ALTER ANY USER dapat masing-masing membuat login atau pengguna Microsoft Entra. Jika tidak, hanya akun dengan sysadmin hak akses yang dapat membuat login atau pengguna 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 tersimpan sp_addsrvrolemember harus dijalankan sebagai anggota role server SQL Server sysadmin.

Membuat sintaksis pengguna

Anda dapat membuat pengguna database dari ID Microsoft Entra baik sebagai pengguna database yang terkait dengan akun masuk server, atau sebagai pengguna database yang terandung.

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;

Database baru memiliki izin Sambungkan 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 tenant, itu dapat ditambahkan sebagai login ke SQL Server dengan sintaksis 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 tenant.

Membuat pengguna tamu dari login yang sudah ada

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

Membuat pengguna tamu sebagai pengguna terisolasi

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

Hubungkan dengan metode autentikasi yang didukung

SQL Server mendukung beberapa metode autentikasi Microsoft Entra:

  • Bawaan
  • Nama pengguna dan kata sandi
  • Terintegrasi
  • Universal dengan autentikasi multifaktor
  • Prinsipal layanan
  • Identitas yang Dikelola
  • 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.

Cuplikan layar SSMS memperlihatkan jendela Sambungkan ke Server.

Selama proses autentikasi, database tempat pengguna dibuat harus secara eksplisit ditunjukkan dalam SSMS. Perluas Opsi>Properti Koneksi>Sambungkan 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 panel SQL Server - Azure Arc sumber daya Microsoft Entra ID dan Purview mungkin tidak sepenuhnya terdistribusi. 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.