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ğinldap://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:
OVERLEAF_LDAP_SEARCH_FILTERile tanımlanan filtre kullanılarak LDAP dizininde bir LDAP kullanıcısı aranır ve kimliği doğrulanır.- 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
hashedPasswordalanı (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.
- Eşleşen bir kullanıcı bulunursa, bu kullanıcının
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).
- Örnek:
- LDAP sunucusunun URL’si.
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.
- LDAP sunucusu tarafından döndürülen e-posta özniteliği, varsayılan
OVERLEAF_LDAP_FIRST_NAME_ATT- Uygulamada kullanılan, kullanıcının adını tutan özellik adı; genellikle
givenName.
- Uygulamada kullanılan, kullanıcının adını tutan özellik adı; genellikle
OVERLEAF_LDAP_LAST_NAME_ATT- Uygulamada kullanılan, kullanıcının soyadını tutan özellik adı; genellikle
sn.
- Uygulamada kullanılan, kullanıcının soyadını tutan özellik adı; genellikle
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.
- Kullanıcının tam adını tutan özellik adı; genellikle
OVERLEAF_LDAP_PLACEHOLDER- Oturum açma formu için yer tutucu metin; varsayılan
Username.
- Oturum açma formu için yer tutucu metin; varsayılan
OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGINtrueolarak ayarlanırsa, oturum açıldığında LDAP kullanıcısınınfirst_namevelast_namealanlarını günceller ve LDAP kullanıcıları için/user/settingssayfası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.
- 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
OVERLEAF_LDAP_BIND_CREDENTIALSOVERLEAF_LDAP_BIND_DNiçin parola.
OVERLEAF_LDAP_BIND_PROPERTY- İstemciye karşı bağlama yapılacak kullanıcı özelliği; varsayılan
dn.
- İstemciye karşı bağlama yapılacak kullanıcı özelliği; varsayılan
OVERLEAF_LDAP_SEARCH_BASE(zorunlu)- Kullanıcıların aranacağı temel DN. Örneğin
ou=people,dc=example,dc=com.
- Kullanıcıların aranacağı temel DN. Örneğin
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).
- Örnek:
- 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.
OVERLEAF_LDAP_SEARCH_SCOPE- Aramanın kapsamı
base,oneveyasub(varsayılan) olabilir.
- Aramanın kapsamı
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.
- LDAP sunucusundan alınacak özniteliklerin JSON dizisi, örneğin
OVERLEAF_LDAP_STARTTLStrueise 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"]
- Örnek (tek sertifika):
- 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.
OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTHtrueise sunucu sertifikası sağlanan CA listesine karşı doğrulanır.
OVERLEAF_LDAP_CACHEtrueise 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_ATTveOVERLEAF_LDAP_IS_ADMIN_ATT_VALUE- Her iki ortam değişkeni de ayarlandığında, LDAP profili
OVERLEAF_LDAP_IS_ADMIN_ATTile belirtilen özniteliği içeriyorsa ve bu özniteliğin değeriOVERLEAF_LDAP_IS_ADMIN_ATT_VALUEile eşleşiyorsa veyaOVERLEAF_LDAP_IS_ADMIN_ATT_VALUEiçeren bir diziyse, oturum açma işlemiuser.isAdmin = trueolarak günceller; aksi haldeuser.isAdmindeğerifalseolarak ayarlanır. Bu değişkenlerden biri ayarlanmamışsa yönetici durumu yalnızca Launchpad’de yönetici kullanıcı oluşturulurkentrueolarak ayarlanır.
- Her iki ortam değişkeni de ayarlandığında, LDAP profili
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_PROPERTYile belirtilen özelliğinin değeriyle değiştirilir. Tanımlanmamışsa LDAP sunucusundan kişilere hiçbir kullanıcı alınmaz.
- 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_SEARCH_BASE- Kişiler için aramaya başlanacak temel DN’yi belirtir. Varsayılan olarak
OVERLEAF_LDAP_SEARCH_BASE.
- Kişiler için aramaya başlanacak temel DN’yi belirtir. Varsayılan olarak
OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE- Aramanın kapsamı
base,oneveyasub(varsayılan) olabilir.
- Aramanın kapsamı
OVERLEAF_LDAP_CONTACTS_PROPERTYOVERLEAF_LDAP_CONTACTS_FILTERiç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_PROPERTYdeğ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.
- Arama LDAP olmayan bir kullanıcı tarafından başlatılırsa
Örnek
Örnek
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.Örnek variables.env dosyası
Örnek variables.env dosyası
Adım adım: goauthentik
Bu bölüm, goauthentik ile test edilmiş bir kurulumu adım adım anlatır. Örneklerde Base DN olarakdc=example,dc=com kullanılmıştır; bunu kendi değerinizle değiştirin.
Bir bind hesabı oluşturun
ldapservice, ve Create’e tıklayın:
Authentik: bind hesabını oluşturma
OVERLEAF_LDAP_BIND_CREDENTIALS değişkenine yazılır:
Authentik: bind hesabının parolasını ayarlama (test örneği)
…/#/identity/users/19 içindeki 19. Buna 3. adımda ihtiyacınız olacak.Sağlayıcıyı ve uygulamayı oluşturun
overleaf-ldap, ve Next’e tıklayın:
Authentik: uygulamanın adı ve slug'ı

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

Authentik: LDAP sağlayıcısının bind ve arama modu
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
Bind hesabının dizinde arama yapmasına izin verin
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)

Authentik: bir LDAP sağlayıcısının izinleri (test örneği)
LDAP outpost'unu çalıştırın

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

Authentik: bir LDAP sağlayıcısına genel bakış (test örneği)
- 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.
Aramayı kontrol edin
dn: bulunmalıdır:dn: olmaması genellikle 3. adımdaki iznin eksik olduğu anlamına gelir.Yöneticileri eşleyin (isteğe bağlı)
ou=groups altındaki DN’ler olarak memberOf içinde bulunur. Authentik grubu Admins üyelerini Overleaf yöneticisi yapmak için:goauthentik için test edilmiş variables.env
goauthentik için test edilmiş variables.env

