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 oidcOIDC 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.
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)
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:
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.
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.isAdminfalse 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.
Örnek variables.env dosyası
variables.env
OVERLEAF_APP_NAME="Our Overleaf Instance"ENABLED_LINKED_FILE_TYPES=project_file,project_output_file,url# Enables Thumbnail generation using ImageMagickENABLE_CONVERSIONS=true# Disables email confirmation requirementEMAIL_CONFIRMATION_DISABLED=true## Nginx# NGINX_WORKER_PROCESSES=4# NGINX_WORKER_CONNECTIONS=768## Set for TLS via nginx-proxy# OVERLEAF_BEHIND_PROXY=true# OVERLEAF_SECURE_COOKIE=trueOVERLEAF_SITE_URL=http://my-overleaf-instance.comOVERLEAF_NAV_TITLE=Our Overleaf Instance# OVERLEAF_HEADER_IMAGE_URL=http://somewhere.com/mylogo.pngOVERLEAF_ADMIN_EMAIL=support@example.comOVERLEAF_LEFT_FOOTER=[{"text": "Contact your support team", "url": "mailto:support@example.com"}]OVERLEAF_RIGHT_FOOTER=[{"text":"Hello, I am on the Right", "url":"https://github.com/yu-i-i/overleaf-cep"}]OVERLEAF_EMAIL_FROM_ADDRESS=team@example.comOVERLEAF_EMAIL_SMTP_HOST=smtp.example.comOVERLEAF_EMAIL_SMTP_PORT=587OVERLEAF_EMAIL_SMTP_SECURE=false# OVERLEAF_EMAIL_SMTP_USER=# OVERLEAF_EMAIL_SMTP_PASS=# OVERLEAF_EMAIL_SMTP_NAME=OVERLEAF_EMAIL_SMTP_LOGGER=falseOVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH=trueOVERLEAF_EMAIL_SMTP_IGNORE_TLS=falseOVERLEAF_CUSTOM_EMAIL_FOOTER=This system is run by department xOVERLEAF_PROXY_LEARN=trueNAV_HIDE_POWERED_BY=true################### OIDC for CE ###################EXTERNAL_AUTH=oidcOVERLEAF_OIDC_PROVIDER_ID=oidcOVERLEAF_OIDC_ISSUER=https://keycloak.provider.com/realms/exampleOVERLEAF_OIDC_AUTHORIZATION_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/authOVERLEAF_OIDC_TOKEN_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/tokenOVERLEAF_OIDC_USER_INFO_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/userinfoOVERLEAF_OIDC_LOGOUT_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/logoutOVERLEAF_OIDC_CLIENT_ID=Overleaf-OIDCOVERLEAF_OIDC_CLIENT_SECRET=DoNotUseThisATGgaAcTgCcATgGATTACAagGtTCaGcGTAGOVERLEAF_OIDC_IDENTITY_SERVICE_NAME='Log in with Keycloak OIDC Provider'OVERLEAF_OIDC_PROVIDER_NAME=OIDC Keycloak ProviderOVERLEAF_OIDC_PROVIDER_INFO_LINK=https://openid.netOVERLEAF_OIDC_IS_ADMIN_FIELD=emailOVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE=overleaf.admin@example.comOVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN=false
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 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/.
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.
goauthentik için test edilmiş variables.env
variables.env
EXTERNAL_AUTH=oidcOVERLEAF_OIDC_PROVIDER_ID=authentikOVERLEAF_OIDC_IDENTITY_SERVICE_NAME=Log in with AuthentikOVERLEAF_OIDC_ISSUER=https://authentik.example.com/application/o/overleaf/OVERLEAF_OIDC_AUTHORIZATION_URL=https://authentik.example.com/application/o/authorize/OVERLEAF_OIDC_TOKEN_URL=https://authentik.example.com/application/o/token/OVERLEAF_OIDC_USER_INFO_URL=https://authentik.example.com/application/o/userinfo/OVERLEAF_OIDC_LOGOUT_URL=https://authentik.example.com/application/o/overleaf/end-session/OVERLEAF_OIDC_CLIENT_ID=<Client ID>OVERLEAF_OIDC_CLIENT_SECRET=<Client Secret>OVERLEAF_OIDC_USER_ID_FIELD=usernameOVERLEAF_OIDC_IS_ADMIN_FIELD=groupsOVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE=AdminsOVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN=true
Son değiştirilme tarihi 6 Ekim 2026
Bu sayfa yararlı mıydı?
Assistant
Responses are generated using AI and may contain mistakes.