Apa itu LDAP
LDAP adalah protokol autentikasi yang digunakan untuk verifikasi identitas eksternal. Overleaf Server Pro menyediakan formulir login LDAP khusus di antarmuka web, terpisah dari metode autentikasi standar. Saat pengguna mengirimkan nama pengguna dan kata sandi LDAP mereka, backend Overleaf memverifikasi kredensial tersebut terhadap server LDAP yang dikonfigurasi, misalnyaldap://ldap:10389.

Contoh LDAP pada Server Pro
Konfigurasi
Secara internal, LDAP Overleaf menggunakan pustaka passport-ldapauth. Sebagian besar opsi konfigurasi ini diteruskan ke objek konfigurasiserver yang digunakan untuk mengonfigurasi passport-ldapauth. Jika Anda mengalami masalah saat mengonfigurasi LDAP, ada baiknya membaca README passport-ldapauth untuk memahami konfigurasi yang diharapkannya.
Variabel lingkungan EXTERNAL_AUTH diperlukan untuk mengaktifkan modul autentikasi LDAP. Variabel lingkungan ini menentukan metode autentikasi eksternal mana yang diaktifkan. Nilai variabel ini berupa daftar. Jika daftar tersebut mencakup ldap, autentikasi LDAP akan diaktifkan.
Contoh: EXTERNAL_AUTH=ldap saml
Berbeda dengan Overleaf CEP, dalam edisi ayaka-notes kami, autentikasi LDAP dibatasi sebagai metode autentikasi murni, yang tersedia di http://your-overleaf.com/ldap/login.
Saat menggunakan metode autentikasi LDAP, pengguna memasukkan username dan password di formulir login, lalu sistem akan mencoba:
- Mencari pengguna LDAP di direktori LDAP menggunakan filter yang ditentukan oleh
OVERLEAF_LDAP_SEARCH_FILTERlalu mengautentikasinya. - Jika autentikasi berhasil, database pengguna Overleaf diperiksa untuk mencari pengguna dengan alamat email utama yang cocok dengan alamat email pengguna LDAP yang terautentikasi:
- Jika pengguna yang cocok ditemukan, field
hashedPassworduntuk pengguna ini dihapus (jika ada). Hal ini memastikan bahwa pengguna hanya dapat login melalui autentikasi LDAP di masa mendatang. - Jika tidak ada pengguna yang cocok, pengguna Overleaf baru akan dibuat menggunakan email, nama depan, dan nama belakang yang diambil dari server LDAP.
- Jika pengguna yang cocok ditemukan, field
Variabel Lingkungan
OVERLEAF_LDAP_URL(wajib)- URL server LDAP.
- Contoh:
ldaps://ldap.example.com:636(LDAP melalui SSL) - Contoh:
ldap://ldap.example.com:389(tidak terenkripsi atau STARTTLS, jika dikonfigurasi).
- Contoh:
- URL server LDAP.
OVERLEAF_LDAP_IDENTITY_SERVICE_NAME- Nama tampilan untuk layanan identitas LDAP, digunakan di halaman login.
- Default-nya
Log in with LDAP Provider.
OVERLEAF_LDAP_EMAIL_ATT- Atribut email yang dikembalikan oleh server LDAP, default
mail. Setiap pengguna LDAP harus memiliki setidaknya satu alamat email. Jika beberapa alamat diberikan, hanya alamat pertama yang akan digunakan.
- Atribut email yang dikembalikan oleh server LDAP, default
OVERLEAF_LDAP_FIRST_NAME_ATT- Nama properti yang menyimpan nama depan pengguna yang digunakan dalam aplikasi, biasanya
givenName.
- Nama properti yang menyimpan nama depan pengguna yang digunakan dalam aplikasi, biasanya
OVERLEAF_LDAP_LAST_NAME_ATT- Nama properti yang menyimpan nama keluarga pengguna yang digunakan dalam aplikasi, biasanya
sn.
- Nama properti yang menyimpan nama keluarga pengguna yang digunakan dalam aplikasi, biasanya
OVERLEAF_LDAP_NAME_ATT- Nama properti yang menyimpan nama lengkap pengguna, biasanya
cn. Jika salah satu dari dua variabel sebelumnya tidak didefinisikan, nama depan dan/atau nama belakang pengguna diambil dari variabel ini. Jika tidak, variabel ini tidak digunakan.
- Nama properti yang menyimpan nama lengkap pengguna, biasanya
OVERLEAF_LDAP_PLACEHOLDER- Placeholder untuk formulir login, default-nya
Username.
- Placeholder untuk formulir login, default-nya
OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN- Jika diatur ke
true, fieldfirst_namedanlast_namepengguna LDAP akan diperbarui saat login, dan formulir detail pengguna di halaman/user/settingsdinonaktifkan untuk pengguna LDAP. Jika tidak, detail hanya akan diambil saat login pertama.
- Jika diatur ke
OVERLEAF_LDAP_BIND_DN- Distinguished name dari pengguna LDAP yang akan digunakan untuk koneksi LDAP (pengguna ini harus dapat mencari/menampilkan daftar akun di server LDAP), misalnya
cn=ldap_reader,dc=example,dc=com. Jika tidak didefinisikan, binding anonim akan digunakan.
- Distinguished name dari pengguna LDAP yang akan digunakan untuk koneksi LDAP (pengguna ini harus dapat mencari/menampilkan daftar akun di server LDAP), misalnya
OVERLEAF_LDAP_BIND_CREDENTIALS- Kata sandi untuk
OVERLEAF_LDAP_BIND_DN.
- Kata sandi untuk
OVERLEAF_LDAP_BIND_PROPERTY- Properti pengguna yang digunakan untuk bind terhadap klien, default-nya
dn.
- Properti pengguna yang digunakan untuk bind terhadap klien, default-nya
OVERLEAF_LDAP_SEARCH_BASE(wajib)- Base DN tempat memulai pencarian pengguna. Misalnya,
ou=people,dc=example,dc=com.
- Base DN tempat memulai pencarian pengguna. Misalnya,
OVERLEAF_LDAP_SEARCH_FILTER- Filter pencarian LDAP untuk menemukan pengguna. Gunakan literal ‘{{username}}’ agar nama pengguna yang diberikan disisipkan ke dalam pencarian LDAP.
- Contoh:
(|(uid={{username}})(mail={{username}}))(pengguna dapat login dengan email atau nama login). - Contoh:
(sAMAccountName={{username}})(Active Directory).
- Contoh:
- Filter pencarian LDAP untuk menemukan pengguna. Gunakan literal ‘{{username}}’ agar nama pengguna yang diberikan disisipkan ke dalam pencarian LDAP.
OVERLEAF_LDAP_SEARCH_SCOPE- Cakupan pencarian dapat berupa
base,one, atausub(default).
- Cakupan pencarian dapat berupa
OVERLEAF_LDAP_SEARCH_ATTRIBUTES- Array JSON berisi atribut yang akan diambil dari server LDAP, misalnya
["uid", "mail", "givenName", "sn"]. Secara default, semua atribut diambil.
- Array JSON berisi atribut yang akan diambil dari server LDAP, misalnya
OVERLEAF_LDAP_STARTTLS- Jika
true, LDAP melalui TLS akan digunakan.
- Jika
OVERLEAF_LDAP_TLS_OPTS_CA_PATH- Path ke file yang berisi sertifikat CA yang digunakan untuk memverifikasi sertifikat SSL/TLS server LDAP. Jika ada beberapa sertifikat, nilainya dapat berupa array JSON berisi path ke sertifikat-sertifikat tersebut. File harus dapat diakses oleh container docker.
- Contoh (satu sertifikat):
/var/lib/overleaf/certs/ldap_ca_cert.pem - Contoh (beberapa sertifikat):
["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"]
- Contoh (satu sertifikat):
- Path ke file yang berisi sertifikat CA yang digunakan untuk memverifikasi sertifikat SSL/TLS server LDAP. Jika ada beberapa sertifikat, nilainya dapat berupa array JSON berisi path ke sertifikat-sertifikat tersebut. File harus dapat diakses oleh container docker.
OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH- Jika
true, sertifikat server diverifikasi terhadap daftar CA yang diberikan.
- Jika
OVERLEAF_LDAP_CACHE- Jika
true, hingga 100 kredensial sekaligus akan di-cache selama 5 menit.
- Jika
OVERLEAF_LDAP_TIMEOUT- Berapa lama klien membiarkan operasi berjalan sebelum timeout, dalam ms (Default: Infinity).
OVERLEAF_LDAP_CONNECT_TIMEOUT- Berapa lama klien harus menunggu sebelum timeout pada koneksi TCP, dalam ms (Default: default OS).
OVERLEAF_LDAP_IS_ADMIN_ATTdanOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE- Jika kedua variabel lingkungan ini diatur, proses login akan memperbarui
user.isAdmin = truejika profil LDAP berisi atribut yang ditentukan olehOVERLEAF_LDAP_IS_ADMIN_ATTdan nilainya cocok denganOVERLEAF_LDAP_IS_ADMIN_ATT_VALUEatau berupa array yang berisiOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE; jika tidak,user.isAdmindiatur kefalse. Jika salah satu variabel ini tidak diatur, status admin hanya diatur ketruesaat pembuatan pengguna admin di Launchpad.
- Jika kedua variabel lingkungan ini diatur, proses login akan memperbarui
OVERLEAF_LDAP_CONTACTS_FILTER- Filter yang digunakan untuk mencari pengguna di server LDAP yang akan dimuat ke dalam kontak. Placeholder ‘{{userProperty}}’ di dalam filter diganti dengan nilai properti yang ditentukan oleh
OVERLEAF_LDAP_CONTACTS_PROPERTYdari pengguna LDAP yang memulai pencarian. Jika tidak didefinisikan, tidak ada pengguna yang diambil dari server LDAP ke dalam kontak.
- Filter yang digunakan untuk mencari pengguna di server LDAP yang akan dimuat ke dalam kontak. Placeholder ‘{{userProperty}}’ di dalam filter diganti dengan nilai properti yang ditentukan oleh
OVERLEAF_LDAP_CONTACTS_SEARCH_BASE- Menentukan base DN tempat memulai pencarian kontak. Default-nya
OVERLEAF_LDAP_SEARCH_BASE.
- Menentukan base DN tempat memulai pencarian kontak. Default-nya
OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE- Cakupan pencarian dapat berupa
base,one, atausub(default).
- Cakupan pencarian dapat berupa
OVERLEAF_LDAP_CONTACTS_PROPERTY- Menentukan properti objek pengguna yang akan menggantikan placeholder ‘{{userProperty}}’ di
OVERLEAF_LDAP_CONTACTS_FILTER.
- Menentukan properti objek pengguna yang akan menggantikan placeholder ‘{{userProperty}}’ di
OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE- Menentukan nilai
OVERLEAF_LDAP_CONTACTS_PROPERTYjika pencarian dimulai oleh pengguna non-LDAP. Jika variabel ini tidak didefinisikan, filter yang dihasilkan tidak akan cocok dengan apa pun. Nilai*dapat digunakan sebagai wildcard.
- Menentukan nilai
Contoh
Contoh
gid yang sama. Pengguna non-LDAP akan memiliki semua pengguna LDAP dengan UNIX gid=1000 di dalam kontak mereka.Contoh file variables.env
Contoh file variables.env
Langkah demi langkah: goauthentik
Panduan ini menjelaskan penyiapan yang telah diuji dengan goauthentik. Contoh-contoh menggunakan Base DNdc=example,dc=com; ganti dengan milik Anda.
Buat akun bind
ldapservice, lalu klik Create:
Authentik: membuat akun bind
OVERLEAF_LDAP_BIND_CREDENTIALS:
Authentik: mengatur kata sandi akun bind (instans uji)
19 pada …/#/identity/users/19. Anda memerlukannya di langkah 3.Buat provider dan aplikasi
overleaf-ldap, lalu klik Next:
Authentik: nama dan slug aplikasi

Authentik: memilih provider LDAP

Authentik: mode bind dan mode pencarian provider LDAP
default-authentication-flow dan Base DN ke Base DN Anda, misalnya dc=example,dc=com:
Authentik: bind flow dan Base DN provider LDAP
Izinkan akun bind mencari di direktori
ak-managed-role--user-<number>, lalu aktifkan Search full LDAP directory:
Authentik: memberikan izin pencarian kepada akun bind (instans uji)

Authentik: izin pada provider LDAP (instans uji)
Jalankan outpost LDAP

Authentik: outpost LDAP yang sedang berjalan (instans uji)
Isi DN

Authentik: ikhtisar provider LDAP (instans uji)
- Bind DN menampilkan akun yang sedang Anda gunakan untuk login. Gunakan akun bind dari langkah 1 sebagai gantinya:
cn=ldapservice,ou=users,<Base DN>. - Search base menampilkan Base DN. Gunakan
ou=users,<Base DN>.
Periksa pencarian
dn::dn: sama sekali, biasanya izin dari langkah 3 belum diberikan.Petakan admin (opsional)
memberOf, berupa DN di bawah ou=groups. Untuk menjadikan anggota grup Authentik Admins sebagai admin Overleaf:variables.env yang telah diuji untuk goauthentik
variables.env yang telah diuji untuk goauthentik

