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 OIDC modülü dahili olarak passport-openidconnect kütüphanesini kullanır. OpenID Connect’i yapılandırırken sorun yaşıyorsanız, beklediği yapılandırma hakkında fikir edinmek için passport-openidconnect README dosyasını okumaya değer. OIDC 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 oidc içeriyorsa OIDC kimlik doğrulaması etkinleştirilir. Örneğin: EXTERNAL_AUTH=ldap oidc OIDC 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 thirdPartyIdentifiers alanı içeren bir kayıt aranır:
externalUserId, IdP sunucusu tarafından döndürülen profildeki kullanıcı kimliğiyle (OVERLEAF_OIDC_USER_ID_FIELD ortam değişkenine bakın), providerId ise OIDC sağlayıcısının kimliğiyle (OVERLEAF_OIDC_PROVIDER_ID değişkenine bakın) 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 thirdPartyIdentifiers alanı güncellenir.
  • Eşleşen bir kullanıcı bulunamazsa ve JIT hesap oluşturma devre dışı bırakılmamışsa, IdP profilindeki e-posta adresi ve thirdPartyIdentifiers ile yeni bir kullanıcı oluşturulur.
Her iki durumda da kullanıcının harici OIDC kullanıcısına ‘bağlandığı’ söylenir. Kullanıcının OIDC sağlayıcısıyla bağlantısı /user/settings sayfasından kaldırılabilir.

Değerleri keşif belgesiyle bulma

Her OpenID Sağlayıcısı (OP), <issuer>/.well-known/openid-configuration adresinde bir keşif (discovery) belgesi yayımlar. Değerleri elle yazmak yerine bu belgeden kopyalayın; tek bir yanlış karakter bile oturum açmayı bozmaya yeter.
1

Keşif URL'sini bulun

OP’niz bunu, Overleaf için oluşturduğunuz istemcinin (sağlayıcının) sayfasında gösterir. Authentik’te Applications > Providers sayfasını açın, sağlayıcıyı seçin ve OpenID Configuration URL ile OpenID Configuration Issuer alanlarını bulun:

Authentik: bir sağlayıcının keşif URL'si ve yayıncısı (test örneği)

URL genellikle şöyle görünür:
  • Keycloak: https://keycloak.example.com/realms/<realm>/.well-known/openid-configuration
  • Authentik: https://authentik.example.com/application/o/<application-slug>/.well-known/openid-configuration
2

Değerleri okuyun

URL’yi bir tarayıcıda açın veya Overleaf sunucusunda şunu çalıştırın:
Authentik’in yanıtı şöyle görünür:
Authentik bu URL’leri sağlayıcı sayfasının daha aşağısında da listeler:

Authentik: bir sağlayıcının uç noktaları (test örneği)

3

Bunları variables.env dosyasına kopyalayın

4

Overleaf'in OP'ye erişebildiğini kontrol edin

Overleaf, token ve userinfo uç noktalarını kendi container’ının içinden çağırır; bu nedenle OP’ye yalnızca tarayıcınızdan değil, oradan da erişilebilmelidir:
Çıktı 200 olmalıdır.
issuer değerini sondaki eğik çizgi dahil olmak üzere tam olarak kopyalayın. Overleaf bunu ID token içindeki yayıncıyla karakter karakter karşılaştırır; herhangi bir fark, her OIDC oturum açma işleminin şu hatayla başarısız olmasına neden olur:{"message":{"message":"ID token not issued by expected OpenID provider."}}Authentik’te yayıncı uygulamaya aittir (.../application/o/<application-slug>/). Authorize, token ve userinfo URL’leri tüm uygulamalar tarafından paylaşılsa da yayıncı, Authentik sunucusunun adresi değildir.

Ortam Değişkenleri

Aşağıdaki beş zorunlu değişkenin değerleri, OpenID Sağlayıcınızın (OP) .well-known/openid-configuration uç noktası kullanılarak bulunabilir, yukarıya bakın.
  • OVERLEAF_OIDC_ISSUER (zorunlu)
  • OVERLEAF_OIDC_AUTHORIZATION_URL (zorunlu)
  • OVERLEAF_OIDC_TOKEN_URL (zorunlu)
  • OVERLEAF_OIDC_USER_INFO_URL (zorunlu)
  • OVERLEAF_OIDC_LOGOUT_URL (zorunlu)
Aşağıdaki iki zorunlu değişkenin değerleri OP’nizin yöneticisi tarafından sağlanacaktır
  • OVERLEAF_OIDC_CLIENT_ID (zorunlu)
  • OVERLEAF_OIDC_CLIENT_SECRET (zorunlu)
  • OVERLEAF_OIDC_SCOPE
    • Varsayılan: openid profile email
  • OVERLEAF_OIDC_PROVIDER_ID
    • OP’nin isteğe bağlı kimliği, varsayılan olarak oidc.
  • OVERLEAF_OIDC_PROVIDER_NAME
    • /user/settings sayfasının Linked Accounts bölümünde kullanılan OP adı, varsayılan olarak OIDC Provider.
  • OVERLEAF_OIDC_IDENTITY_SERVICE_NAME
    • Giriş sayfasında kullanılan kimlik hizmetinin görünen adı (varsayılan: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
  • OVERLEAF_OIDC_PROVIDER_DESCRIPTION
    • Linked Accounts bölümünde kullanılan OP açıklaması (varsayılan: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).
  • OVERLEAF_OIDC_PROVIDER_INFO_LINK
    • OP açıklamasındaki Learn more URL’si; varsayılan: açıklamada Learn more bağlantısı yoktur.
  • OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED
    • Kullanıcının hesabı OP ile bağlı değilse OP’yi /user/settings sayfasında gösterme; varsayılan false.
  • OVERLEAF_OIDC_USER_ID_FIELD
    • Bu özniteliğin değeri Overleaf tarafından harici kullanıcı kimliği olarak kullanılır, varsayılan olarak id. Diğer olası makul değerler email ve username’dir (preferred_username OIDC talebine karşılık gelir).
  • OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS
    • OIDC üzerinden kimlik doğrulayan kullanıcılar için Tam Zamanında (JIT) hesap oluşturmayı kısıtlar. Virgülle ayrılmış bir alan adları listesine ayarlanırsa, yeni bir hesap yalnızca kullanıcının e-posta adresinin alan adı listelenen alan adlarından biriyle eşleşirse oluşturulur. Alan adı eşleşmezse, bir yöneticinin kullanıcı hesabını OIDC kullanıcısının e-posta adresini kullanarak, güçlü ve rastgele bir parolayla ya da tercihen hashedPassword alanı hiç olmadan manuel olarak oluşturması gerekir. Alan adları, alt alan adlarını eşleştirmek için başta bir *. joker karakteri içerebilir.
      • Örnek: name@example.com ve name@math.example.com gibi e-posta adreslerine sahip kullanıcılar için JIT hesap oluşturmaya izin vermek için:
        OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com
      • Örnek: JIT hesap oluşturmayı tamamen devre dışı bırakmak için:
        OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=
  • OVERLEAF_OIDC_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 devre dışı bırakır.
  • OVERLEAF_OIDC_IS_ADMIN_FIELD ve OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE
    • Her iki ortam değişkeni de ayarlandığında, OP tarafından döndürülen profil OVERLEAF_OIDC_IS_ADMIN_FIELD ile belirtilen özniteliği içeriyorsa ve değeri OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE ile eşleşiyorsa ya da OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE değerini içeren bir diziyse (örneğin groups claim’i) oturum açma işlemi user.isAdmin = true olarak günceller; aksi takdirde user.isAdmin false olarak ayarlanır. OVERLEAF_OIDC_IS_ADMIN_FIELD değeri email ise eşleşme kontrolü için emails[0].value özniteliğinin değeri kullanılır.
OpenID Sağlayıcınız için yönlendirme URL’si https://my-overleaf-instance.com/oidc/login/callback şeklindedir.
variables.env

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ı oluşturun

Authentik’te Applications > Providers sayfasını açın, New Provider’a tıklayın, OAuth2/OpenID Provider’ı seçin ve Next’e tıklayın.
  • Client Type: Confidential.
  • Redirect URIs (Protocol settings altında): https://overleaf.example.com/oidc/login/callback adresini Strict eşleşme moduyla ekleyin.
  • Client ID ve Client Secret değerlerini şimdi OVERLEAF_OIDC_CLIENT_ID ve OVERLEAF_OIDC_CLIENT_SECRET değişkenlerine kopyalayın.

Authentik: yeni bir sağlayıcının Client ID ve Client Secret değerleri

Authentik, istemci gizli anahtarını yalnızca sağlayıcıyı oluştururken gösterir. Daha sonra düzenleme formu yalnızca gizli anahtarı yenisiyle değiştiren Modify seçeneğini sunar.
2

Uygulamayı oluşturun

Applications > Applications sayfasını açın, yeni bir uygulama oluşturun, ona bir ad ve bir slug verin, örneğin overleaf, ve sağlayıcıyı seçin. Slug, yayıncının bir parçası olur: https://authentik.example.com/application/o/overleaf/.
3

URL'leri kopyalayın

Beş URL’yi doldurmak için yukarıdaki Değerleri keşif belgesiyle bulma bölümünü izleyin.
4

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

Authentik, kullanıcının gruplarını bir dizi olan groups claim’i olarak gönderir. Authentik grubu Admins üyelerini Overleaf yöneticisi yapmak için:
Yönetici bayrağı her OIDC oturum açma işleminde güncellenir. Yanlış bir alan veya değerle, Launchpad’de oluşturulan yönetici de dahil olmak üzere OIDC ü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