Mengautentikasi lewat SASL: kerangka pluggable dengan GSSAPI berbasis Kerberos dan EXTERNAL memakai sertifikat klien, pemetaan identitas ke DN, serta integrasi PAM, NSS, SSSD, sudo, dan aplikasi.

Di episode 16 kalian memasang TLS dan berjanji akan memanfaatkannya lebih jauh. Episode 17 ini menepati janji itu: SASL. Kerangka SASL memungkinkan autentikasi tanpa mengirim password lewat jaringan — dengan ticket Kerberos lewat GSSAPI, atau dengan sertifikat klien lewat EXTERNAL. Di akhir episode, kalian melihat bagaimana autentikasi ini terhubung ke sistem Linux lewat PAM, NSS, dan SSSD.
SASL (Simple Authentication and Security Layer) adalah lapisan abstraksi autentikasi yang dipasang di atas protokol seperti LDAP. Daripada menulis logika autentikasi, aplikasi memilih mekanisme SASL yang tersedia di sistem:
Di OpenLDAP, mekanisme yang tersedia tergantung paket libsasl2 dan module yang dimuat. Dua yang paling relevan untuk produksi adalah GSSAPI dan EXTERNAL.
GSSAPI menjembatani LDAP dengan Kerberos — realm dan ticket yang kalian kenal dari series Kerberos. Alurnya: user mendapat TGT dengan kinit, lalu bind LDAP memakai service ticket tanpa menyentuh password.
Yang harus disiapkan:
ldap/ldap.example.com di KDC, dengan password yang diekspor ke keytab./etc/krb5.keytab dan dibaca oleh slapd.cn=config:dn: cn=config
changetype: modify
replace: olcSaslHost
olcSaslHost: ldap.example.com
-
replace: olcSaslRealm
olcSaslRealm: EXAMPLE.COM
-
add: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=56Klien lalu melakukan autentikasi dengan mekanisme GSSAPI:
kinit budi
ldapwhoami -x -H ldap://ldap.example.com -Y GSSAPIManfaat utamanya adalah SSO: begitu user punya TGT, setiap layanan yang memakai Kerberos tidak pernah meminta password lagi. Kredensial juga tidak pernah mengalir di jaringan — yang dikirim adalah ticket.
SASL EXTERNAL mengambil identitas dari lapisan bawah — sertifikat klien pada koneksi TLS, atau identitas proses pada soket Unix. Inilah yang membuat ldapmodify -Y EXTERNAL -H ldapi:/// bekerja sebagai admin cn=config tanpa password.
Saat mutual TLS diaktifkan (dengan olcTLSVerifyClient: demand dari episode 16), server membaca DN subjek dari sertifikat klien dan memetakannya ke entry direktori. Pemetaan ini dikonfigurasi dengan olcAuthzRegexp:
dn: cn=config
changetype: modify
add: olcAuthzRegexp
olcAuthzRegexp: "uid=([^,]+),.*" "uid=$1,ou=people,dc=example,dc=com"Dengan pemetaan ini, sertifikat atas nama uid=budi otomatis mengautentikasi sebagai uid=budi,ou=people,dc=example,dc=com:
ldapwhoami -Y EXTERNAL -H ldaps://ldap.example.comKarena identitas diambil dari sertifikat yang diverifikasi oleh CA, SASL EXTERNAL adalah autentikasi yang sangat kuat — tidak ada kata sandi yang bisa dicuri. Di sisi lain, setiap user harus memegang sertifikat klien, yang butuh manajemen distribusi dan rotasi sertifikat.
Autentikasi LDAP masuk ke sistem Linux melalui dua saluran:
libpam-ldapd) yang memvalidasi login di konsol, SSH, dan aplikasi PAM lain.libnss-ldapd membuat user dan group dari LDAP terlihat oleh sistem: getent passwd dan ls -l menampilkan akun direktori seolah-olah akun lokal.Keduanya di Debian dijalankan oleh daemon nslcd yang mengomunikasikan LDAP ke NSS dan PAM:
uid nslcd
gid nslcd
uri ldap://ldap.example.com
base dc=example,dc=com
ssl starttls
tls_cacertfile /etc/ssl/certs/ca.crt/etc/sssd/sssd.conf. Untuk deployment enterprise, SSSD umumnya lebih disarankan daripada pam_ldap karena cache dan dukungan Kerberos-nya.Dari saluran dasar itu, LDAP dipakai untuk banyak tujuan:
AuthorizedKeysCommand.sudo-ldap; tambahkan sudoers: files ldap di /etc/nsswitch.conf dan tentukan base pencarian sudoers di konfigurasi sudo.Note
Mulailah integrasi sistem kecil: uji dengan getent passwd dan ldapwhoami -Y GSSAPI sebelum menghubungkan login SSH atau sudo. Kesalahan konfigurasi di langkah besar jauh lebih sulit ditelusuri daripada yang dimulai dari langkah kecil.
Pada episode 17 ini kalian memahami SASL sebagai kerangka pluggable: pemilihan mekanisme dan security layers; integrasi GSSAPI dengan Kerberos mulai dari service principal, keytab, hingga SSO tanpa password; SASL EXTERNAL yang memakai sertifikat klien dan pemetaan identitas lewat olcAuthzRegexp; lalu integrasi ke sistem dengan pam_ldap, NSS, dan SSSD; serta penerapan untuk login Linux, SSH, sudo, dan aplikasi.
Inti yang harus dibawa pulang:
olcAuthzRegexp menjembatani identitas ke DN.Di episode 18 berikutnya, kita menutup fase keamanan dengan audit logging & monitoring — level log slapd, rotasi log, dan analisis untuk mendeteksi anomali. Infrastruktur autentikasi yang kalian bangun sejak episode 12 sekarang siap dipantau dengan benar.