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.

Yapılandırma

Overleaf SAML modülü dahili olarak passport-saml kütüphanesini kullanır; aşağıdaki yapılandırma seçeneklerinin çoğu doğrudan passport-saml’e aktarılır. SAML’i yapılandırırken sorun yaşıyorsanız, beklediği yapılandırma hakkında fikir edinmek için passport-saml README dosyasını okumaya değer. SAML 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 saml içeriyorsa SAML kimlik doğrulaması etkinleştirilir. Örneğin: EXTERNAL_AUTH=ldap saml SAML kimlik doğrulama yöntemi kullanıldığında, kullanıcı Kimlik Sağlayıcının (IdP) kimlik doğrulama sitesine yönlendirilir. IdP kullanıcının kimliğini başarıyla doğrularsa, Overleaf kullanıcı veritabanında aşağıdaki yapıda bir samlIdentifiers alanı içeren bir kayıt aranır:
externalUserId, IdP sunucusu tarafından döndürülen kullanıcı profilinde userIdAttribute ile belirtilen özelliğin değeriyle eşleşmelidir. Eşleşen bir kayıt bulunamazsa, veritabanında birincil e-posta adresi IdP kullanıcı profilindeki e-postayla eşleşen bir kullanıcı aranır:
  • Böyle bir kullanıcı bulunursa, yerel kimlik doğrulamayı devre dışı bırakmak için hashedPassword alanı silinir ve samlIdentifiers alanı eklenir.
  • Eşleşen bir kullanıcı bulunamazsa, IdP profilindeki e-posta adresi ve samlIdentifiers ile yeni bir kullanıcı oluşturulur.
Not: Şu anda yalnızca bir SAML IdP desteklenmektedir. samlIdentifiers içindeki providerId alanı '1' olarak sabittir.

Ortam Değişkenleri

  • OVERLEAF_SAML_IDENTITY_SERVICE_NAME
    • Giriş sayfasında kullanılan kimlik hizmetinin görünen adı (varsayılan: Log in with SAML IdP).
  • OVERLEAF_SAML_USER_ID_FIELD
    • Bu özniteliğin değeri Overleaf tarafından harici kullanıcı kimliği olarak kullanılır, varsayılan olarak nameID.
  • OVERLEAF_SAML_EMAIL_FIELD
    • Kullanıcı profilindeki Email alanının adı, varsayılan olarak nameID.
  • OVERLEAF_SAML_FIRST_NAME_FIELD
    • Kullanıcı profilindeki firstName alanının adı, varsayılan olarak givenName.
  • OVERLEAF_SAML_LAST_NAME_FIELD
    • Kullanıcı profilindeki lastName alanının adı, varsayılan olarak lastName
  • OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN
    • true olarak ayarlanırsa, oturum açıldığında kullanıcının first_name ve last_name alanlarını günceller ve /user/settings sayfasındaki kullanıcı bilgileri formunu kapatır.
  • OVERLEAF_SAML_ENTRYPOINT (zorunlu)
    • SAML kimlik hizmeti için giriş noktası URL’si.
      • Örnek: https://idp.example.com/simplesaml/saml2/idp/SSOService.php
      • Azure Örneği: https://login.microsoftonline.com/8b26b46a-6dd3-45c7-a104-f883f4db1f6b/saml2
  • OVERLEAF_SAML_ISSUER (zorunlu)
    • Yayımlayıcı (Issuer) adı.
  • OVERLEAF_SAML_AUDIENCE
    • Beklenen SAML yanıtı Audience değeri, varsayılan olarak OVERLEAF_SAML_ISSUER değeridir.
  • OVERLEAF_SAML_IDP_CERT (zorunlu)
    • Gelen SAML yanıtlarının imzalarını doğrulamak için kullanılan, Kimlik Sağlayıcının genel sertifikasını içeren dosyanın yolu. Kimlik Sağlayıcının birden fazla geçerli imzalama sertifikası varsa, bu değer sertifika yollarından oluşan bir JSON dizisi olabilir.
      • Örnek (tek sertifika): /var/lib/overleaf/certs/idp_cert.pem
      • Örnek (birden fazla sertifika): ["var/lib/overleaf/certs/idp_cert.pem", "/var/lib/overleaf/certs/idp_cert_old.pem"]
  • OVERLEAF_SAML_PUBLIC_CERT
    • IdP’nin gelen SAML İsteğinin imzalarını doğrulayabilmesi için kimlik doğrulama isteklerine gömülen genel imzalama sertifikasını içeren dosyanın yolu. Strateji bir OVERLEAF_SAML_PRIVATE_KEY ile yapılandırıldığında meta veri uç noktası kurulurken gereklidir. Sertifika rotasyonunu desteklemek için sertifika yollarından oluşan bir JSON dizisi sağlanabilir. Bir sertifika dizisi sağlanırken dizideki ilk girdi mevcut OVERLEAF_SAML_PRIVATE_KEY ile eşleşmelidir. Dizideki ek girdiler, OVERLEAF_SAML_PRIVATE_KEY değiştirilmeden önce yaklaşan sertifikaları IdP’lere yayımlamak için kullanılabilir.
  • OVERLEAF_SAML_PRIVATE_KEY
    • passport-saml tarafından gönderilen kimlik doğrulama isteklerini imzalamak için kullanılan OVERLEAF_SAML_PUBLIC_CERT ile eşleşen, PEM biçimli özel anahtarı içeren dosyanın yolu.
  • OVERLEAF_SAML_DECRYPTION_CERT
  • OVERLEAF_SAML_DECRYPTION_PVK
    • Alınan şifrelenmiş onayların (assertion) şifresini çözmeye çalışmak için kullanılacak, OVERLEAF_SAML_DECRYPTION_CERT ile eşleşen özel anahtarı içeren dosyanın yolu.
  • OVERLEAF_SAML_SIGNATURE_ALGORITHM
    • İstekleri imzalamak için isteğe bağlı olarak imza algoritmasını ayarlar; geçerli değerler ‘sha1’ (varsayılan), ‘sha256’ (tercih edilen), ‘sha512’ (en güvenli, IdP’nizin destekleyip desteklemediğini kontrol edin).
  • OVERLEAF_SAML_ADDITIONAL_PARAMS
    • Tüm isteklere eklenecek ek sorgu parametrelerinden oluşan JSON sözlüğü.
  • OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS
    • ‘authorize’ isteklerine eklenecek ek sorgu parametrelerinden oluşan JSON sözlüğü.
      • Örnek: {"some_key": "some_value"}
  • OVERLEAF_SAML_IDENTIFIER_FORMAT
    • Kimlik sağlayıcıdan istenecek ad tanımlayıcı biçimi (varsayılan: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress). urn:oasis:names:tc:SAML:2.0:nameid-format:persistent kullanıyorsanız OVERLEAF_SAML_EMAIL_FIELD ortam değişkeninin tanımlı olduğundan emin olun. urn:oasis:names:tc:SAML:2.0:nameid-format:transient gerekiyorsa, örneğin kullanıcının e-posta adresine ayarlanabilecek OVERLEAF_SAML_USER_ID_FIELD ortam değişkenini de tanımlamanız gerekir.
  • OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS
    • OnBefore ve NotOnOrAfter onay koşulu geçerlilik zaman damgaları kontrol edilirken istemci ile sunucu arasında kabul edilebilir olan saat farkı (milisaniye cinsinden). -1 olarak ayarlamak bu koşulların kontrolünü tamamen devre dışı bırakır. Varsayılan değer 0’dır.
  • OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX
    • IdP’ye yanıta hangi öznitelik kümesini ekleyeceğini bildirmek için AuthnRequest’e eklenecek AttributeConsumingServiceIndex özniteliği (bağlantı).
  • OVERLEAF_SAML_AUTHN_CONTEXT
    • Kimlik doğrulama bağlamı istemek için ad tanımlayıcı biçimi değerlerinden oluşan JSON dizisi. Varsayılan: ["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"].
  • OVERLEAF_SAML_FORCE_AUTHN
    • true ise, hizmet sağlayıcıdan gelen ilk SAML isteği, kullanıcının geçerli bir oturumu olsa bile IdP’nin kullanıcının kimliğini yeniden doğrulamaya zorlaması gerektiğini belirtir.
  • OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT
    • true ise belirli bir kimlik doğrulama bağlamı istenmez. Örneğin, parolasız oturum açma gibi ek bağlamlara (urn:oasis:names:tc:SAML:2.0:ac:classes:X509) izin vermek için bunu true olarak ayarlayabilirsiniz. Ek bağlamların desteklenmesi IdP’nize bağlıdır.
  • OVERLEAF_SAML_AUTHN_REQUEST_BINDING
    • HTTP-POST olarak ayarlanırsa, IdP’den kimlik doğrulama HTTP POST bağlaması üzerinden istenir; aksi takdirde varsayılan olarak HTTP-Redirect kullanılır.
  • OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO
    • always ise, gelen SAML yanıtlarında InResponseTo doğrulanır.
    • never ise, InResponseTo doğrulanmaz (varsayılan).
    • ifPresent ise, InResponseTo yalnızca gelen SAML yanıtında mevcutsa doğrulanır.
  • OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED ve OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED
    • true (varsayılan) olarak ayarlandığında Overleaf, sırasıyla SAML Onaylarının ve SAML Kimlik Doğrulama Yanıtının tamamının IdP tarafından imzalanmasını bekler. Her iki seçenek de false olduğunda, onaylardan veya yanıttan en az birinin imzalanmış olması gerekir.
  • OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS
    • Bir SAML isteği için oluşturulan İstek Kimliğinin, bir SAML yanıtının InResponseTo alanında görüldüğünde artık geçerli sayılmayacağı süre sonunu tanımlar. Varsayılan: 28800000 (8 saat).
  • OVERLEAF_SAML_LOGOUT_URL
    • Oturum kapatma istekleriyle çağrılacak temel adres (varsayılan: entryPoint).
      • Örnek: https://idp.example.com/simplesaml/saml2/idp/SingleLogoutService.php
  • OVERLEAF_SAML_ADDITIONAL_LOGOUT_PARAMS
    • ‘logout’ isteklerine eklenecek ek sorgu parametrelerinden oluşan JSON sözlüğü.
  • OVERLEAF_SAML_IS_ADMIN_FIELD ve OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE
    • Her iki ortam değişkeni de ayarlandığında, SAML IdP tarafından döndürülen profil OVERLEAF_SAML_IS_ADMIN_FIELD ile belirtilen özniteliği içeriyorsa ve değeri OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE ile eşleşiyorsa ya da OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE değerini içeren bir diziyse oturum açma işlemi user.isAdmin = true olarak günceller; aksi takdirde user.isAdmin false olarak ayarlanır. Bu değişkenlerden herhangi biri ayarlanmamışsa, yönetici durumu yalnızca Launchpad’de yönetici kullanıcı oluşturulurken true olarak ayarlanır.
Kimlik Sağlayıcı için Meta Veriler Overleaf CE’nin güncel sürümü, Hizmet Sağlayıcı Meta Verilerini almak için bir uç nokta içerir: http://my-overleaf-instance.com/saml/meta Kimlik Sağlayıcının, Overleaf sunucusunu bir “Hizmet Sağlayıcı” olarak tanıyacak şekilde yapılandırılması gerekir. Bunun nasıl yapılacağına ilişkin talimatlar için SAML sunucunuzun belgelerine başvurun. Aşağıda uygun Hizmet Sağlayıcı meta verilerine bir örnek verilmiştir:
Sertifikaları, AssertionConsumerService.Location, SingleLogoutService.Location ve EntityDescriptor.entityID değerlerini not edin ve IdP yapılandırmanızda uygun şekilde ayarlayın ya da meta veri dosyasını IdP yöneticisine gönderin.

Adım adım: goauthentik

Bu bölüm, goauthentik ile test edilmiş bir kurulumu adım adım anlatır. https://overleaf.example.com adresini kendi OVERLEAF_SITE_URL değerinizle, https://authentik.example.com adresini ise Authentik’inizin adresiyle değiştirin.
1

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

Authentik’te 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, ve Next’e tıklayın:

Authentik: uygulamanın adı ve slug'ı

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

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

3. Sağlayıcı bilgilerini doldurun:
  • Authorization Flow: default-provider-authorization-implicit-consent
  • ACS URL: https://overleaf.example.com/saml/login/callback
  • Audience: Overleaf için bir ad, örneğin overleaf. Overleaf bunu OVERLEAF_SAML_ISSUER olarak gönderir.

Authentik: uygulamanın SAML sağlayıcısı

4. Advanced protocol settings bölümünü açın ve şunları ayarlayın:
  • Signing Certificate: bir sertifika, örneğin authentik Self-signed Certificate
  • Sign assertions ve Sign responses: ikisi de açık
  • Service Provider Binding: Post

Authentik: test edilmiş bir sağlayıcının imzalama ve bağlama ayarları (test örneği)

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

Değerleri sağlayıcı sayfasından kopyalayın

Sağlayıcıyı yeniden açın. Overleaf’in ihtiyaç duyduğu her şey genel bakış sayfasındadır:

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

SAML Configuration altındaki EntityID/Issuer, Authentik’in kendi adıdır. Bunu OVERLEAF_SAML_ISSUER değişkenine yazmayın, Audience değerini kullanın.
3

İmzalama sertifikasını yükleyin

Download signing certificate altındaki Download’a tıklayın ve dosyayı Toolkit dizininizde data/overleaf/certs/idp_cert.pem olarak kaydedin. Container bu dosyayı /var/lib/overleaf/certs/idp_cert.pem olarak görür:
4

Öznitelikleri eşleyin

Authentik özniteliklerini şu adlarla gönderir:
Gruplar, bir liste olarak http://schemas.xmlsoap.org/claims/Group adıyla gelir. Authentik grubu Admins üyelerini Overleaf yöneticisi yapmak için:
Yönetici bayrağı her SAML oturum açma işleminde güncellenir. Yanlış bir alan veya değerle, SAML ü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