Menavigasi Autentikasi Identitas: Dari LDAP ke Protokol Modern

March 28, 2024

Technology

Ketika membangun mekanisme autentikasi identitas untuk aplikasi jaringan, para insinyur dihadapkan pada berbagai pilihan. Salah satu pendekatan adalah merancang mekanisme autentikasi kustom, yang mungkin cocok untuk aplikasi yang baru dikembangkan. Pendekatan lainnya adalah mengadopsi standar populer yang diakui secara luas, yang tidak hanya membantu dalam kompatibilitas dengan aplikasi lama tetapi juga memastikan interoperabilitas dengan layanan lain, sehingga menyederhanakan proses integrasi. Oleh karena itu, pemahaman mendalam tentang teknologi autentikasi identitas yang umum sangat penting untuk membangun layanan autentikasi identitas yang kuat dan interoperable.

LDAP / Active Directory

LDAP (Lightweight Directory Access Protocol) adalah protokol berbasis IP yang dirancang khusus untuk mengakses layanan direktori. Perlu disebutkan bahwa Active Directory milik Microsoft juga mendukung protokol ini.

Layanan direktori adalah bentuk khusus dari basis data yang mengorganisir berbagai sumber daya (seperti pengguna, organisasi, perangkat, dll.) menggunakan pengidentifikasi unik. Penyimpanan data terstruktur ini memungkinkan klien untuk mengkueri sumber daya yang diperlukan dalam basis data menggunakan sintaks pencarian tertentu. Untuk sumber daya yang disimpan dalam layanan direktori, mereka dapat mengandung informasi atribut yang kaya, seperti nama pengguna, email, nomor telepon, dll. Untuk server LDAP tertentu, biasanya ada beberapa templat bawaan untuk menentukan persyaratan untuk kunci dan nilai atribut, memastikan keakuratan data.

Di lingkungan perusahaan, aplikasi LDAP/Active Directory sangat luas. Perusahaan dapat menyimpan informasi karyawan dalam struktur hierarkis berdasarkan departemen mereka, dan setiap sumber daya "pengguna" dapat menyimpan informasi dasar dan kredensial karyawan.

Integrasi LDAP dalam Aplikasi

Untuk banyak aplikasi yang sudah ada, integrasi protokol LDAP telah menjadi fitur penting, baik yang sudah terpasang atau diimplementasikan berdasarkan mekanisme ekstensi. Mengambil Apache APISIX sebagai contoh, ia telah berhasil mengimplementasikan integrasi LDAP melalui mekanisme plugin yang fleksibel. Integrasi ini memungkinkan klien untuk mengirim nama pengguna dan kata sandi dalam format basic auth, kemudian mengkueri dan memvalidasi kredensial pengguna di server LDAP, secara efektif mengamankan permintaan API.

Dalam aplikasi dan layanan yang dikembangkan oleh insinyur, protokol LDAP juga dapat digunakan untuk mengimplementasikan fungsi manajemen pengguna dan autentikasi. Dengan menggunakan pustaka klien LDAP yang disediakan oleh bahasa pemrograman tertentu, mudah untuk terhubung ke layanan LDAP. Setelah koneksi terbentuk, API Pencarian dapat digunakan untuk mengkueri sumber daya di direktori dan mengambil atribut pengguna yang diperlukan.

LDAP

Kelebihan dan Kekurangan LDAP

Kelebihan

  • Penyimpanan terpusat dan pengkuerian yang efisien: Data disimpan secara terpusat dalam layanan direktori, dan struktur organisasinya sangat meningkatkan kecepatan pengkuerian, membuatnya mudah untuk menangani volume besar permintaan baca.

  • Struktur pohon yang intuitif: Struktur pohon dari layanan direktori sangat mirip dengan struktur organisasi dunia nyata, membuat sumber daya mudah diindeks pada node daun, sesuai dengan intuisi pengguna.

  • Integrasi aplikasi yang luas: Karena kematangan dan stabilitasnya, protokol LDAP menyediakan dukungan integrasi bawaan di banyak perangkat lunak.

Kekurangan

  • Protokol yang sudah ketinggalan zaman: Protokol LDAP dirancang pada masa lalu, menggunakan pengkodean ASN.1, yang sangat berbeda dengan format JSON yang populer saat ini, membuat integrasi agak menantang.

  • Fungsionalitas terbatas dan masalah kompatibilitas: Protokol itu sendiri memiliki fungsionalitas yang terbatas, menyebabkan beberapa perangkat lunak server LDAP harus memperluas melalui cara non-standar, yang dapat memengaruhi kompatibilitas di berbagai server LDAP.

  • Konfigurasi yang kompleks dan tantangan keamanan: Konfigurasi server LDAP melibatkan banyak faktor keamanan, seperti TLS dan kontrol akses data, membutuhkan pengalaman yang kaya untuk memastikan konfigurasi yang benar, jika tidak, berisiko kebocoran data.

  • Kesulitan implementasi aplikasi: Dari perspektif aplikasi, mengakses server LDAP mirip dengan mengakses basis data, memerlukan penggunaan API tingkat rendah seperti Pencarian untuk mengakses data, menuntut kemampuan tinggi dari pengembang aplikasi.

Modernisasi LDAP

Meskipun protokol LDAP mungkin terlihat agak ketinggalan zaman dalam lingkungan teknologi saat ini, ia masih didukung secara luas oleh banyak perangkat lunak mainstream sebagai standar klasik. Banyak perusahaan masih mengandalkan LDAP untuk mengelola berbagai sumber daya dalam organisasi, dan stabilitas serta keandalannya telah teruji dalam aplikasi praktis.

Untuk mengatasi beberapa keterbatasan protokol LDAP dalam aplikasi modern, beberapa produk middleware telah muncul. Middleware ini mengemas protokol LDAP secara internal dan menyediakan antarmuka protokol yang lebih modern dan ramah pengguna, seperti OpenID Connect:

Mereka menangani konversi dan adaptasi protokol, menyediakan protokol modern untuk mengurangi beban kerja integrasi bagi pengembang aplikasi.

Produk middleware ini bertanggung jawab atas konversi dan adaptasi protokol, menyediakan metode integrasi yang lebih modern dan efisien bagi pengembang aplikasi, secara efektif mengurangi beban kerja yang diperlukan untuk mengintegrasikan LDAP.

Mekanisme Autentikasi Identitas Berbasis HTTP

Dalam bidang autentikasi identitas, protokol berbasis HTTP memainkan peran penting. OpenID Connect (OIDC), SAML, dan CAS adalah beberapa perwakilannya.

OpenID Connect

OpenID Connect adalah ekstensi dari OAuth 2, yang tidak hanya menyediakan kemampuan otorisasi tetapi juga meningkatkan kemampuan autentikasi identitas. Dibandingkan dengan fungsionalitas terbatas OAuth 2, OIDC menawarkan fitur yang lebih kaya, seperti fungsionalitas inti id_token dan standar penemuan OIDC.

Kelebihan OIDC terletak pada aplikasinya yang luas dan ekosistem yang kaya. Implementasi server dan klien yang matang tersedia dalam berbagai bahasa pemrograman, memudahkan integrasi dan penyebaran. Selain itu, OIDC dapat dikombinasikan dengan teknologi lain, seperti menggunakan JSON Web Tokens (JWT) sebagai token, memanfaatkan sifatnya yang stateless untuk mengurangi beban pada layanan autentikasi identitas.

CAS

CAS (Central Authentication Service) adalah protokol autentikasi identitas yang banyak digunakan dalam skenario web, digunakan untuk mengimplementasikan fungsionalitas single sign-on. Protokol CAS relatif sederhana dalam desain dan mudah diintegrasikan ke berbagai aplikasi. Selain itu, itu dapat digunakan dalam produksi. Perlu dicatat bahwa platform manajemen autentikasi identitas seperti Keycloak juga mendukung protokol CAS, lebih memperluas cakupan aplikasinya.

SAML

SAML (Security Assertion Markup Language) adalah protokol autentikasi identitas yang sudah lama ada, dengan versi saat ini SAML 2.0 dirilis pada tahun 2005. Protokol ini menggunakan XML sebagai metode pengkodean untuk komunikasi antar-layanan dan mendefinisikan struktur data yang unik. Namun, karena implementasi SAML yang relatif kompleks dan penggunaannya yang kurang intuitif dan langsung, kelebihannya tidak begitu terlihat jika dibandingkan dengan protokol autentikasi identitas modern seperti OIDC dan CAS.

Namun, solusi manajemen identitas dan akses seperti Keycloak masih menyediakan implementasi server SAML untuk memenuhi kebutuhan autentikasi identitas dalam skenario tertentu.

Cyber Security

Sinkronisasi dan Manajemen Identitas Pengguna

Pertimbangkan skenario umum: sebuah perusahaan menyediakan beberapa sistem aplikasi internal untuk karyawannya dan mengadopsi single sign-on untuk meningkatkan pengalaman pengguna. Namun, setiap kali ada karyawan baru yang bergabung atau karyawan lama yang keluar, administrator TI perlu membuat atau menghapus akun secara manual di berbagai sistem, proses yang tidak hanya merepotkan tetapi juga disertai dengan risiko keamanan potensial.

Untuk mengatasi masalah ini, administrator TI sangat membutuhkan alat manajemen akun pengguna yang terstandarisasi dan otomatis. Dalam konteks inilah standar SCIM (System for Cross-domain Identity Management) muncul.

Standar SCIM mendefinisikan serangkaian API REST khusus yang dirancang untuk mencapai interoperabilitas yang mulus antara IDP (penyedia identitas) dan sistem aplikasi atau layanan SaaS. Melalui API ini, pengguna dapat mengonfigurasi akun secara otomatis, sangat menyederhanakan proses pembuatan, pembaruan, dan penghapusan akun.

Sejak diperkenalkan, protokol SCIM telah diadopsi dan diterapkan secara luas. Misalnya, solusi manajemen identitas terkenal seperti Microsoft Entra ID (sebelumnya Azure Active Directory) dan Okta mendukung protokol SCIM. Selain itu, platform manajemen identitas dan akses open-source seperti Keycloak juga menyediakan ekstensi server/klien SCIM, lebih memperkaya skenario aplikasinya.

Kesimpulan

Artikel ini secara singkat menguraikan teknologi utama yang banyak digunakan dalam skenario autentikasi identitas. Dalam proses membangun layanan autentikasi identitas yang efisien dan aman, solusi teknis yang matang ini memainkan peran penting. Mereka tidak hanya sangat menyederhanakan pekerjaan integrasi dan meningkatkan efisiensi kerja, tetapi juga secara efektif mengurangi risiko keamanan, memastikan keamanan data perusahaan dan informasi pengguna. Dengan memanfaatkan solusi teknologi ini, kita dapat lebih baik memenuhi tuntutan autentikasi identitas modern, memberikan pengalaman yang lebih nyaman dan aman bagi perusahaan dan pengguna.

Tags: