Skip to main content
Bu özellik yu-i-i/overleaf-cep tarafından geliştirilmiştir. Burada yapılandırmanız için bazı belgeler sunuyoruz.
Overleaf, görece eski olan passport-ldapauth kütüphanesini kullanır; bu nedenle LDAP uyumluluğu tam olarak garanti edilemez. Bazı LDAP kimlik sağlayıcılarında (örneğin https://goauthentik.io/) oturum açma hataları oluşabilir. Bu nedenle, mümkünse öncelikle OAuth/SAML yönteminin kullanılması önerilir. goauthentik için aşağıdaki test edilmiş Adım adım: goauthentik bölümünü izleyin.

LDAP nedir

LDAP, harici kimlik doğrulaması için kullanılan bir kimlik doğrulama protokolüdür. Overleaf Server Pro, web arayüzünde standart kimlik doğrulama yönteminden ayrı, özel bir LDAP oturum açma formu sunar. Bir kullanıcı LDAP kullanıcı adını ve parolasını gönderdiğinde, Overleaf arka ucu kimlik bilgilerini yapılandırılmış LDAP sunucusuna (örneğin ldap://ldap:10389) karşı doğrular.

LDAP için bir Server Pro örneği

Yapılandırma

Overleaf LDAP, dahili olarak passport-ldapauth kütüphanesini kullanır. Bu yapılandırma seçeneklerinin çoğu, passport-ldapauth’u yapılandırmak için kullanılan server yapılandırma nesnesine aktarılır. LDAP’ı yapılandırırken sorun yaşıyorsanız, beklenen yapılandırma hakkında fikir edinmek için passport-ldapauth README dosyasını okumanızda fayda vardır. LDAP kimlik doğrulama modülünü etkinleştirmek için EXTERNAL_AUTH ortam değişkeni gereklidir. Bu ortam değişkeni hangi harici kimlik doğrulama yöntemlerinin etkinleştirileceğini belirtir. Bu değişkenin değeri bir listedir. Liste ldap içeriyorsa LDAP kimlik doğrulaması etkinleştirilir. Örneğin: EXTERNAL_AUTH=ldap saml Overleaf CEP’ten farklı olarak, ayaka-notes sürümümüzde LDAP kimlik doğrulamasını salt bir kimlik doğrulama yöntemiyle sınırlıyoruz; bu yöntem http://your-overleaf.com/ldap/login adresinde kullanılabilir. LDAP kimlik doğrulama yöntemleri kullanılırken, kullanıcı oturum açma formuna bir username ve password girdiğinde şu adımlar denenir:
  1. OVERLEAF_LDAP_SEARCH_FILTER ile tanımlanan filtre kullanılarak LDAP dizininde bir LDAP kullanıcısı aranır ve kimliği doğrulanır.
  2. Kimlik doğrulama başarılı olursa, Overleaf kullanıcı veritabanında birincil e-posta adresi, kimliği doğrulanan LDAP kullanıcısının e-posta adresiyle eşleşen bir kullanıcı aranır:
    • Eşleşen bir kullanıcı bulunursa, bu kullanıcının hashedPassword alanı (varsa) silinir. Bu, kullanıcının bundan sonra yalnızca LDAP kimlik doğrulaması ile oturum açabilmesini sağlar.
    • Eşleşen bir kullanıcı bulunamazsa, LDAP sunucusundan alınan e-posta, ad ve soyad kullanılarak yeni bir Overleaf kullanıcısı oluşturulur.
LDAP üzerinden oturum açan kullanıcılar için Overleaf mongo veritabanında hash’lenmiş parola saklamayız (mevcut olanları da kaldırırız).

Ortam Değişkenleri

  • OVERLEAF_LDAP_URL (zorunlu)
    • LDAP sunucusunun URL’si.
      • Örnek: ldaps://ldap.example.com:636 (SSL üzerinden LDAP)
      • Örnek: ldap://ldap.example.com:389 (şifrelenmemiş veya yapılandırılmışsa STARTTLS).
  • OVERLEAF_LDAP_IDENTITY_SERVICE_NAME
    • LDAP kimlik hizmeti için oturum açma sayfasında kullanılan görünen ad.
    • Varsayılan olarak Log in with LDAP Provider.
  • OVERLEAF_LDAP_EMAIL_ATT
    • LDAP sunucusu tarafından döndürülen e-posta özniteliği, varsayılan mail. Her LDAP kullanıcısının en az bir e-posta adresi olmalıdır. Birden fazla adres sağlanırsa yalnızca ilki kullanılır.
  • OVERLEAF_LDAP_FIRST_NAME_ATT
    • Uygulamada kullanılan, kullanıcının adını tutan özellik adı; genellikle givenName.
  • OVERLEAF_LDAP_LAST_NAME_ATT
    • Uygulamada kullanılan, kullanıcının soyadını tutan özellik adı; genellikle sn.
  • OVERLEAF_LDAP_NAME_ATT
    • Kullanıcının tam adını tutan özellik adı; genellikle cn. Önceki iki değişkenden biri tanımlanmamışsa kullanıcının adı ve/veya soyadı bu değişkenden çıkarılır. Aksi halde kullanılmaz.
  • OVERLEAF_LDAP_PLACEHOLDER
    • Oturum açma formu için yer tutucu metin; varsayılan Username.
  • OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN
    • true olarak ayarlanırsa, oturum açıldığında LDAP kullanıcısının first_name ve last_name alanlarını günceller ve LDAP kullanıcıları için /user/settings sayfasındaki kullanıcı bilgileri formunu devre dışı bırakır. Aksi halde bilgiler yalnızca ilk oturum açışta alınır.
  • OVERLEAF_LDAP_BIND_DN
    • LDAP bağlantısı için kullanılması gereken LDAP kullanıcısının ayırt edici adı (bu kullanıcı LDAP sunucusunda hesapları arayabilmeli/listeleyebilmelidir), örneğin cn=ldap_reader,dc=example,dc=com. Tanımlanmamışsa anonim bağlama kullanılır.
  • OVERLEAF_LDAP_BIND_CREDENTIALS
    • OVERLEAF_LDAP_BIND_DN için parola.
  • OVERLEAF_LDAP_BIND_PROPERTY
    • İstemciye karşı bağlama yapılacak kullanıcı özelliği; varsayılan dn.
  • OVERLEAF_LDAP_SEARCH_BASE (zorunlu)
    • Kullanıcıların aranacağı temel DN. Örneğin ou=people,dc=example,dc=com.
  • OVERLEAF_LDAP_SEARCH_FILTER
    • Bir kullanıcıyı bulmak için kullanılan LDAP arama filtresi. Verilen kullanıcı adının LDAP aramasına yerleştirilmesi için ‘{{username}}’ ifadesini olduğu gibi kullanın.
      • Örnek: (|(uid={{username}})(mail={{username}})) (kullanıcı e-posta veya oturum açma adıyla giriş yapabilir).
      • Örnek: (sAMAccountName={{username}}) (Active Directory).
  • OVERLEAF_LDAP_SEARCH_SCOPE
    • Aramanın kapsamı base, one veya sub (varsayılan) olabilir.
  • OVERLEAF_LDAP_SEARCH_ATTRIBUTES
    • LDAP sunucusundan alınacak özniteliklerin JSON dizisi, örneğin ["uid", "mail", "givenName", "sn"]. Varsayılan olarak tüm öznitelikler alınır.
  • OVERLEAF_LDAP_STARTTLS
    • true ise TLS üzerinden LDAP kullanılır.
  • OVERLEAF_LDAP_TLS_OPTS_CA_PATH
    • LDAP sunucusunun SSL/TLS sertifikasını doğrulamak için kullanılan CA sertifikasını içeren dosyanın yolu. Birden fazla sertifika varsa sertifika yollarından oluşan bir JSON dizisi olabilir. Dosyalar Docker konteyneri tarafından erişilebilir olmalıdır.
      • Örnek (tek sertifika): /var/lib/overleaf/certs/ldap_ca_cert.pem
      • Örnek (birden fazla sertifika): ["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"]
  • OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH
    • true ise sunucu sertifikası sağlanan CA listesine karşı doğrulanır.
  • OVERLEAF_LDAP_CACHE
    • true ise aynı anda en fazla 100 kimlik bilgisi 5 dakika boyunca önbelleğe alınır.
  • OVERLEAF_LDAP_TIMEOUT
    • İstemcinin işlemlerin zaman aşımına uğramadan önce ne kadar süre devam etmesine izin vereceği, ms (Varsayılan: Infinity).
  • OVERLEAF_LDAP_CONNECT_TIMEOUT
    • İstemcinin TCP bağlantılarında zaman aşımına uğramadan önce ne kadar bekleyeceği, ms (Varsayılan: işletim sistemi varsayılanı).
  • OVERLEAF_LDAP_IS_ADMIN_ATT ve OVERLEAF_LDAP_IS_ADMIN_ATT_VALUE
    • Her iki ortam değişkeni de ayarlandığında, LDAP profili OVERLEAF_LDAP_IS_ADMIN_ATT ile belirtilen özniteliği içeriyorsa ve bu özniteliğin değeri OVERLEAF_LDAP_IS_ADMIN_ATT_VALUE ile eşleşiyorsa veya OVERLEAF_LDAP_IS_ADMIN_ATT_VALUE içeren bir diziyse, oturum açma işlemi user.isAdmin = true olarak günceller; aksi halde user.isAdmin değeri false olarak ayarlanır. Bu değişkenlerden biri ayarlanmamışsa yönetici durumu yalnızca Launchpad’de yönetici kullanıcı oluşturulurken true olarak ayarlanır.
Aşağıdaki beş değişken, kullanıcı kişilerinin LDAP sunucusundan nasıl alınacağını yapılandırmak için kullanılır.
  • OVERLEAF_LDAP_CONTACTS_FILTER
    • Kişilere yüklenecek kullanıcıları LDAP sunucusunda aramak için kullanılan filtre. Filtre içindeki ‘{{userProperty}}’ yer tutucusu, aramayı başlatan LDAP kullanıcısının OVERLEAF_LDAP_CONTACTS_PROPERTY ile belirtilen özelliğinin değeriyle değiştirilir. Tanımlanmamışsa LDAP sunucusundan kişilere hiçbir kullanıcı alınmaz.
  • OVERLEAF_LDAP_CONTACTS_SEARCH_BASE
    • Kişiler için aramaya başlanacak temel DN’yi belirtir. Varsayılan olarak OVERLEAF_LDAP_SEARCH_BASE.
  • OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE
    • Aramanın kapsamı base, one veya sub (varsayılan) olabilir.
  • OVERLEAF_LDAP_CONTACTS_PROPERTY
    • OVERLEAF_LDAP_CONTACTS_FILTER içindeki ‘{{userProperty}}’ yer tutucusunun yerini alacak kullanıcı nesnesi özelliğini belirtir.
  • OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE
    • Arama LDAP olmayan bir kullanıcı tarafından başlatılırsa OVERLEAF_LDAP_CONTACTS_PROPERTY değerini belirtir. Bu değişken tanımlanmamışsa ortaya çıkan filtre hiçbir şeyle eşleşmez. * değeri joker karakter olarak kullanılabilir.
Yukarıdaki örnek, geçerli LDAP kullanıcısının kişilerine aynı UNIX gid değerine sahip tüm LDAP kullanıcılarının yüklenmesiyle sonuçlanır. LDAP olmayan kullanıcıların kişilerinde ise UNIX gid=1000 değerine sahip tüm LDAP kullanıcıları bulunur.

Adım adım: goauthentik

Bu bölüm, goauthentik ile test edilmiş bir kurulumu adım adım anlatır. Örneklerde Base DN olarak dc=example,dc=com kullanılmıştır; bunu kendi değerinizle değiştirin.
1

Bir bind hesabı oluşturun

Overleaf, kullanıcıyı bulmak için önce kendine ait bir hesapla dizine oturum açar. Authentik’te Directory > Users sayfasını açın, New User’a tıklayın, Internal User’ı seçin ve Next’e tıklayın. Bir kullanıcı adı girin, örneğin ldapservice, ve Create’e tıklayın:

Authentik: bind hesabını oluşturma

Yeni kullanıcıyı açın ve Set password’e tıklayın. Bu parola OVERLEAF_LDAP_BIND_CREDENTIALS değişkenine yazılır:

Authentik: bind hesabının parolasını ayarlama (test örneği)

Adres çubuğundaki kullanıcı numarasını not edin, örneğin …/#/identity/users/19 içindeki 19. Buna 3. adımda ihtiyacınız olacak.
2

Sağlayıcıyı ve uygulamayı oluşturun

Applications > Applications sayfasını açın ve New Application’a tıklayın. Sihirbaz, uygulamayı ve sağlayıcısını birlikte oluşturur.1. Uygulamaya bir ad ve bir slug verin, örneğin overleaf-ldap, ve Next’e tıklayın:

Authentik: uygulamanın adı ve slug'ı

2. LDAP Provider’ı seçin ve Next’e tıklayın:

Authentik: LDAP sağlayıcısını seçme

3. Bind Mode’u Direct binding ve Search Mode’u Direct querying olarak ayarlayın:

Authentik: LDAP sağlayıcısının bind ve arama modu

4. Daha aşağıda Bind Flow’u default-authentication-flow ve Base DN’i kendi Base DN’iniz olarak ayarlayın, örneğin dc=example,dc=com:

Authentik: LDAP sağlayıcısının bind akışı ve Base DN'i

5. Son sayfaya kadar Next’e tıklayın ve uygulamayı gönderin.
3

Bind hesabının dizinde arama yapmasına izin verin

Bu izin olmadan bind hesabı yalnızca kendisini görür, arama hiçbir kullanıcı bulamaz ve her LDAP oturum açma işlemi başarısız olur.Sağlayıcıyı açın, Permissions sekmesine gidin ve Assign Role Object Permission’a tıklayın. Role alanına 1. adımdaki numarayı yazın ve ak-managed-role--user-<number> öğesini seçin, ardından Search full LDAP directory’yi etkinleştirin:

Authentik: bind hesabına arama izni verme (test örneği)

Rol bundan sonra Search full LDAP directory altında bir onay işareti gösterir:

Authentik: bir LDAP sağlayıcısının izinleri (test örneği)

4

LDAP outpost'unu çalıştırın

Authentik, LDAP isteklerini ayrı bir container olan bir outpost aracılığıyla yanıtlar. Applications > Outposts sayfasını açın, sağlayıcınızla LDAP türünde bir outpost oluşturun ve Authentik’in anlattığı şekilde dağıtın. Outpost, çalıştığı ana makinenin 389 numaralı portunu dinler. Bağlandığında yeşil bir onay işareti gösterir:

Authentik: çalışan bir LDAP outpost'u (test örneği)

5

DN'leri doldurun

Sağlayıcı sayfası, How to connect altında Base DN’i ve bir örneği gösterir:

Authentik: bir LDAP sağlayıcısına genel bakış (test örneği)

Örnek değerleri olduğu gibi kopyalamayın:
  • Bind DN, oturum açtığınız hesabı gösterir. Bunun yerine 1. adımdaki bind hesabını kullanın: cn=ldapservice,ou=users,<Base DN>.
  • Search base, Base DN’i gösterir. ou=users,<Base DN> kullanın.
Authentik, ou=virtual-groups altında her kullanıcının adını taşıyan bir grup tutar. Tüm Base DN içinde (cn=alice) araması hem cn=alice,ou=users,… hem de cn=alice,ou=virtual-groups,… kaydını bulur ve Overleaf birden fazla kayıtla eşleşen bir oturum açma işlemini reddeder. Arama tabanını ou=users,<Base DN> olarak bırakın.
6

Aramayı kontrol edin

Overleaf’i başlatmadan önce, Overleaf’in yapacağı aramayı çalıştırın. Çıktıda tam olarak bir dn: bulunmalıdır:
Hiç dn: olmaması genellikle 3. adımdaki iznin eksik olduğu anlamına gelir.
7

Yöneticileri eşleyin (isteğe bağlı)

Bir kullanıcının grupları, ou=groups altındaki DN’ler olarak memberOf içinde bulunur. Authentik grubu Admins üyelerini Overleaf yöneticisi yapmak için:
Yönetici bayrağı her LDAP oturum açma işleminde güncellenir. Yanlış bir öznitelik veya değerle, LDAP üzerinden oturum açan her yönetici yönetici haklarını kaybeder. Eşlemeyi önce ikinci bir yönetici hesabıyla test edin.
variables.env
Son değiştirilme tarihi 6 Ekim 2026