Menggunakan Autentikasi Terintegrasi

Unduh driver ODBC

Driver Microsoft ODBC untuk SQL Server di Linux dan macOS mendukung koneksi yang menggunakan autentikasi terintegrasi Kerberos. Ini mendukung MIT Kerberos Key Distribution Center (KDC), dan bekerja dengan pustaka Generic Security Services Application Program Interface (GSSAPI) dan Kerberos v5.

Mulai versi 17.6, driver juga mendukung autentikasi terintegrasi dengan Microsoft Entra ID (sebelumnya Azure Active Directory) menggunakan akun federasi, meskipun ada keterbatasan pustaka sistem. Lihat Menggunakan ID Microsoft Entra untuk informasi selengkapnya.

Menggunakan Autentikasi Terintegrasi untuk Menyambungkan ke SQL Server dari Aplikasi ODBC

Anda dapat mengaktifkan autentikasi terintegrasi Kerberos dengan menentukan Trusted_Connection=ya di string koneksi SQLDriverConnect atau SQLConnect. Contohnya:

Driver='ODBC Driver 18 for SQL Server';Server=your_server;Encrypt=yes;Trusted_Connection=yes  

Saat menyambungkan dengan DSN, Anda juga dapat menambahkan Trusted_Connection=yes ke entri DSN di odbc.ini.

Opsi -E dari sqlcmd dan opsi -T dari bcp juga dapat digunakan untuk menentukan autentikasi terintegrasi; lihat Menyambungkan dengan sqlcmd dan Menyambungkan dengan bcp untuk informasi selengkapnya.

Pastikan prinsipal klien yang akan terhubung ke SQL Server sudah terautentikasi dengan KDC Kerberos.

ServerSPN dan FailoverPartnerSPN tidak didukung.

Menyebarkan Aplikasi Driver ODBC Linux atau macOS yang Dirancang untuk Dijalankan sebagai Layanan

Administrator sistem dapat menyebarkan aplikasi untuk dijalankan sebagai layanan yang menggunakan Autentikasi Kerberos untuk menyambungkan ke SQL Server.

Pertama-tama Anda perlu mengonfigurasi Kerberos pada klien dan kemudian memastikan bahwa aplikasi dapat menggunakan kredensial Kerberos dari prinsip default.

Pastikan Anda menggunakan kinit atau PAM (Modul Autentikasi Yang Dapat Dicolokkan) untuk mendapatkan dan menyimpan TGT untuk prinsipal yang digunakan koneksi, melalui salah satu metode berikut:

  • Jalankan kinit dengan memberikan nama prinsipal dan kata sandi.

  • Jalankan kinit, dengan memberikan nama principal dan lokasi file keytab yang berisi kunci principal yang dibuat oleh ktutil.

  • Pastikan bahwa login ke sistem dilakukan menggunakan Kerberos PAM (Modul Autentikasi Yang Dapat Dicolokkan).

Saat aplikasi berjalan sebagai layanan, karena kredensial Kerberos kedaluwarsa berdasarkan desain, perbarui kredensial untuk memastikan ketersediaan layanan berkelanjutan. Driver ODBC tidak memperbarui kredensial itu sendiri; pastikan bahwa ada cron pekerjaan atau skrip yang berjalan secara berkala untuk memperbarui kredensial sebelum kedaluwarsa. Untuk menghindari memerlukan kata sandi untuk setiap perpanjangan, Anda dapat menggunakan file keytab.

Konfigurasi dan Penggunaan Kerberos menyediakan detail tentang cara ke layanan Kerberize di Linux.

Melacak Akses ke Database

Administrator database dapat membuat jejak audit akses ke database saat menggunakan akun sistem untuk mengakses SQL Server menggunakan Autentikasi Terintegrasi.

Masuk ke SQL Server menggunakan akun sistem dan tidak ada fungsionalitas di Linux untuk meniru konteks keamanan. Oleh karena itu, diperlukan lebih banyak informasi untuk mengidentifikasi pengguna.

Untuk mengaudit aktivitas di SQL Server atas nama pengguna selain akun sistem, aplikasi harus menggunakan Transact-SQL EXECUTE AS.

Untuk meningkatkan performa aplikasi, aplikasi dapat menggunakan pengumpulan koneksi dengan Autentikasi dan audit Terintegrasi. Namun, menggabungkan pengumpulan koneksi, Autentikasi Terintegrasi, dan audit menciptakan risiko keamanan karena manajer driver unixODBC mengizinkan pengguna yang berbeda untuk menggunakan kembali koneksi yang dikumpulkan. Untuk informasi selengkapnya, lihat Pooling Koneksi ODBC.

Sebelum digunakan kembali, aplikasi harus mengatur ulang koneksi yang dikumpulkan dengan menjalankan sp_reset_connection.

Menggunakan Direktori Aktif untuk Mengelola Identitas Pengguna

Administrator sistem aplikasi tidak perlu mengelola set kredensial masuk terpisah untuk SQL Server. Dimungkinkan untuk mengonfigurasi Direktori Aktif sebagai pusat distribusi utama (KDC) untuk Autentikasi Terintegrasi. Lihat Microsoft Kerberos untuk informasi selengkapnya.

Menggunakan Server Tertaut dan Kueri Terdistribusi

Pengembang dapat menyebarkan aplikasi yang menggunakan server tertaut atau kueri terdistribusi tanpa administrator database yang mempertahankan set kredensial SQL terpisah. Dalam situasi ini, pengembang harus mengonfigurasi aplikasi untuk menggunakan autentikasi terintegrasi:

  • Pengguna masuk ke komputer klien dan mengautentikasi ke server aplikasi.

  • Server aplikasi mengautentikasi sebagai database yang berbeda dan tersambung ke SQL Server.

  • SQL Server melakukan autentikasi sebagai pengguna basis data ke basis data lain (SQL Server.

Setelah autentikasi terintegrasi dikonfigurasi, kredensial akan diteruskan ke server tertaut.

Autentikasi Terintegrasi dan sqlcmd

Untuk mengakses SQL Server menggunakan autentikasi terintegrasi, gunakan opsi -E dari sqlcmd. Pastikan bahwa akun yang menjalankan sqlcmd dikaitkan dengan prinsipal klien Kerberos default.

Autentikasi Terintegrasi dan bcp

Untuk mengakses SQL Server menggunakan autentikasi terintegrasi, gunakan opsi -T dari bcp. Pastikan bahwa akun yang menjalankan bcp dikaitkan dengan prinsipal klien Kerberos default.

Merupakan kesalahan jika menggunakan -T dengan opsi -U atau -P.

Sintaks yang Didukung untuk SPN yang Didaftarkan oleh SQL Server

Sintaks yang digunakan oleh SPN dalam string koneksi atau atribut koneksi adalah sebagai berikut:

Sintaks Deskripsi
MSSQLSvc/fqdn:port SPN default yang dihasilkan penyedia saat TCP digunakan. port adalah nomor port TCP. fqdn adalah nama domain yang sepenuhnya memenuhi syarat.

Mengautentikasi Komputer Linux atau macOS dengan Direktori Aktif

Untuk mengonfigurasi Kerberos, masukkan data ke krb5.conf dalam file. krb5.conf berada di /etc/ tetapi Anda dapat merujuk ke file lain menggunakan sintaks misalnya export KRB5_CONFIG=/home/dbapp/etc/krb5.conf. Berikut ini adalah contoh krb5.conf file:

[libdefaults]  
default_realm = YYYY.CORP.CONTOSO.COM  
dns_lookup_realm = false  
dns_lookup_kdc = true  
ticket_lifetime = 24h  
forwardable = yes  
  
[domain_realm]  
.yyyy.corp.contoso.com = YYYY.CORP.CONTOSO.COM  
.zzzz.corp.contoso.com = ZZZZ.CORP.CONTOSO.COM  

Jika komputer Linux atau macOS Anda dikonfigurasi untuk menggunakan Dynamic Host Configuration Protocol (DHCP) dengan server DHCP Windows yang menyediakan server DNS untuk digunakan, Anda dapat menggunakan dns_lookup_kdc=true. Sekarang, Anda dapat menggunakan Kerberos untuk masuk ke domain Anda dengan mengeluarkan perintah kinit alias@YYYY.CORP.CONTOSO.COM. Parameter yang diteruskan ke kinit peka terhadap huruf besar/kecil, dan komputer SQL Server yang dikonfigurasi agar berada dalam domain harus menambahkan pengguna alias@YYYY.CORP.CONTOSO.COM tersebut sebagai login. Sekarang, Anda dapat menggunakan koneksi tepercaya (Trusted_Connection=YES dalam string koneksi, bcp -T, atau sqlcmd -E).

Waktu pada komputer Linux atau macOS dan waktu pada Kerberos Key Distribution Center (KDC) tidak boleh berbeda jauh. Pastikan waktu sistem Anda diatur dengan benar, misalnya dengan menggunakan Protokol Waktu Jaringan (NTP).

Jika autentikasi Kerberos gagal, driver ODBC di Linux atau macOS tidak menggunakan autentikasi NTLM.

Untuk informasi selengkapnya tentang mengautentikasi komputer Linux atau macOS dengan Direktori Aktif, lihat Mengautentikasi Klien Linux dengan Direktori Aktif. Untuk informasi selengkapnya tentang mengonfigurasi Kerberos, lihat Dokumentasi MIT Kerberos.

Lihat Juga

Panduan Pemrograman

Catatan Rilis

Menggunakan ID Microsoft Entra