> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/tr/yapilandirma/overleaf-toolkit/authentication/oidc-authentication.md).

# OIDC Kimlik Doğrulama

Bu özellik tarafından geliştirilmiştir [yu-i-i/overleaf-cep](https://github.com/yu-i-i/overleaf-cep). Burada yapılandırmanız için bazı belgeler sunuyoruz.

### Yapılandırma

Dahili olarak, Overleaf OIDC modülü şunu kullanır: [passport-openidconnect](https://github.com/jaredhanson/passport-openidconnect) kütüphane. OpenID Connect yapılandırırken sorun yaşıyorsanız, bunun README dosyasını okumaya değer `passport-openidconnect` beklediği yapılandırma hakkında fikir edinmek için.

Çevre değişkeni `EXTERNAL_AUTH` OIDC kimlik doğrulama modülünü etkinleştirmek için gereklidir. Bu ortam değişkeni, hangi harici kimlik doğrulama yöntemlerinin etkinleştirildiğini belirtir. Bu değişkenin değeri bir listedir. Liste şunu içeriyorsa: `oidc` o zaman 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ısı (IdP) kimlik doğrulama sitesine yönlendirilir. IdP kullanıcıyı başarıyla doğrularsa, Overleaf kullanıcı veritabanında şu değeri içeren bir kayıt aranır: `thirdPartyIdentifiers` alanı aşağıdaki gibi yapılandırılmıştır:

```
thirdPartyIdentifiers: [
  {
    externalUserId: "...",
    externalData: null,
    providerId: "..."
  }
]
```

Bu `externalUserId` IdP sunucusu tarafından döndürülen profildeki kullanıcı kimliğiyle eşleşmelidir (bkz.  `OVERLEAF_OIDC_USER_ID_FIELD` ortam değişkeni) ve `providerId` OIDC sağlayıcısının kimliğiyle eşleşmelidir (bkz.  `OVERLEAF_OIDC_PROVIDER_ID`).

Eşleşen bir kayıt bulunamazsa, veritabanında birincil e-posta adresi IdP kullanıcı profilindeki e-posta ile eşleşen bir kullanıcı aranır:

* Böyle bir kullanıcı bulunursa, `thirdPartyIdentifiers` alanı güncellenir.
* Eşleşen kullanıcı bulunamazsa ve JIT hesap oluşturma devre dışı değilse, e-posta adresi ve `thirdPartyIdentifiers` IdP profilinden alınan. ile yeni bir kullanıcı oluşturulur.

Her iki durumda da kullanıcının harici OIDC kullanıcısına 'bağlı' olduğu söylenir. Kullanıcının OIDC sağlayıcısıyla bağlantısı şu sayfada kaldırılabilir: `/user/settings` sayfasına bakın.

#### Çevre Değişkenleri

Aşağıdaki beş zorunlu değişkenin değerleri, şunu kullanarak bulunabilir: `.well-known/openid-configuration` OpenID Sağlayıcınızın (OP) uç noktasında.

* `OVERLEAF_OIDC_ISSUER` **(gerekli)**
* `OVERLEAF_OIDC_AUTHORIZATION_URL` **(gerekli)**
* `OVERLEAF_OIDC_TOKEN_URL` **(gerekli)**
* `OVERLEAF_OIDC_USER_INFO_URL` **(gerekli)**
* `OVERLEAF_OIDC_LOGOUT_URL` **(gerekli)**

Aşağıdaki iki zorunlu değişkenin değerleri OP yöneticiniz tarafından sağlanacaktır

* `OVERLEAF_OIDC_CLIENT_ID` **(gerekli)**
* `OVERLEAF_OIDC_CLIENT_SECRET` **(gerekli)**
* `OVERLEAF_OIDC_SCOPE`
  * Varsayılan: `openid profile email`
* `OVERLEAF_OIDC_PROVIDER_ID`
  * OP'nin keyfi kimliği, varsayılan olarak `oidc`.
* `OVERLEAF_OIDC_PROVIDER_NAME`
  * OP'nin adı, şu yerde kullanılır: `Bağlı Hesaplar` bölümüne `/user/settings` sayfasında, varsayılan: `OIDC Sağlayıcısı`.
* `OVERLEAF_OIDC_IDENTITY_SERVICE_NAME`
  * Kimlik hizmeti için görünen ad, giriş sayfasında kullanılır (varsayılan: `$OVERLEAF_OIDC_PROVIDER_NAME ile giriş yapın`).
* `OVERLEAF_OIDC_PROVIDER_DESCRIPTION`
  * OP açıklaması, şu bölümde kullanılır: `Bağlı Hesaplar` bölümünde (varsayılan: `$OVERLEAF_OIDC_PROVIDER_NAME ile giriş yapın`).
* `OVERLEAF_OIDC_PROVIDER_INFO_LINK`
  * `Daha fazla bilgi` OP açıklamasındaki URL, varsayılan: yok `Daha fazla bilgi` açıklamadaki bağlantı.
* `OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED`
  * OP'yi şu sayfada gösterme `/user/settings` sayfada, kullanıcının hesabı OP ile bağlı değilse, varsayılan `false`.
* `OVERLEAF_OIDC_USER_ID_FIELD`
  * Bu özniteliğin değeri Overleaf tarafından harici kullanıcı kimliği olarak kullanılacaktır, varsayılan: `id`. Diğer makul olası değerler `email` ve `kullanıcı adı` (şuna karşılık gelen `preferred_username` OIDC talebi).
* `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ı listesi olarak 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önetici OIDC kullanıcısının e-posta adresini kullanarak kullanıcı hesabını ya güçlü rastgele bir parola ile ya da tercihen şu olmadan elle oluşturmalıdır: `hashedPassword` alanı hiç. Alan adları başında bir `*.` alt alan adlarını eşleştirmek için joker karakter içerebilir.
    * Örnek: Şu gibi e-posta adreslerine sahip kullanıcılar için JIT hesap oluşturulmasına izin vermek için `name@example.com` ve `name@math.example.com`:\
      `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`
  * Şuna ayarlanırsa `true`, kullanıcıyı günceller `first_name` ve `last_name` alanını girişte günceller ve kullanıcı ayrıntıları formunu şu yerde devre dışı bırakır `/user/settings` sayfasına bakın.
* `OVERLEAF_OIDC_IS_ADMIN_FIELD` ve `OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE`
  * Her iki çevre değişkeni de ayarlandığında, giriş süreci şunu günceller: `user.isAdmin = true` eğer OP tarafından döndürülen profil, şununla belirtilen özniteliği içeriyorsa `OVERLEAF_OIDC_IS_ADMIN_FIELD` ve değeri `OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE`, aksi halde `user.isAdmin` şuna ayarlanır `false`. Eğer `OVERLEAF_OIDC_IS_ADMIN_FIELD` gerekli `email` o zaman özniteliğin değeri `emails[0].value` eşleşme kontrolü için kullanılır.

OpenID Sağlayıcınız için yönlendirme URL'si şudur: `https://my-overleaf-instance.com/oidc/login/callback`.

<details>

<summary>Örnek variables.env dosyası</summary>

{% code title="variables.env" overflow="wrap" %}

```dotenv
OVERLEAF_APP_NAME="Our Overleaf Instance"

ENABLED_LINKED_FILE_TYPES=project_file,project_output_file,url

# Thumbnail oluşturmayı ImageMagick kullanarak etkinleştirir
ENABLE_CONVERSIONS=true

# E-posta onayı gereksinimini devre dışı bırakır
EMAIL_CONFIRMATION_DISABLED=true

## Nginx
# NGINX_WORKER_PROCESSES=4
# NGINX_WORKER_CONNECTIONS=768

## nginx-proxy üzerinden TLS için ayarla
# OVERLEAF_BEHIND_PROXY=true
# OVERLEAF_SECURE_COOKIE=true

OVERLEAF_SITE_URL=http://my-overleaf-instance.com
OVERLEAF_NAV_TITLE=Bizim Overleaf Örneğimiz
# OVERLEAF_HEADER_IMAGE_URL=http://somewhere.com/mylogo.png
OVERLEAF_ADMIN_EMAIL=support@example.com

OVERLEAF_LEFT_FOOTER=[{"text": "Destek ekibinizle iletişime geçin", "url": "mailto:support@example.com"}]
OVERLEAF_RIGHT_FOOTER=[{"text":"Merhaba, ben Sağ taraftayım", "url":"https://github.com/yu-i-i/overleaf-cep"}]

OVERLEAF_EMAIL_FROM_ADDRESS=team@example.com
OVERLEAF_EMAIL_SMTP_HOST=smtp.example.com
OVERLEAF_EMAIL_SMTP_PORT=587
OVERLEAF_EMAIL_SMTP_SECURE=false
# OVERLEAF_EMAIL_SMTP_USER=
# OVERLEAF_EMAIL_SMTP_PASS=
# OVERLEAF_EMAIL_SMTP_NAME=
OVERLEAF_EMAIL_SMTP_LOGGER=false
OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH=true
OVERLEAF_EMAIL_SMTP_IGNORE_TLS=false
OVERLEAF_CUSTOM_EMAIL_FOOTER=Bu sistem x departmanı tarafından işletilmektedir

OVERLEAF_PROXY_LEARN=true
NAV_HIDE_POWERED_BY=true

#################
## CE için OIDC ##
#################

EXTERNAL_AUTH=oidc

OVERLEAF_OIDC_PROVIDER_ID=oidc
OVERLEAF_OIDC_ISSUER=https://keycloak.provider.com/realms/example
OVERLEAF_OIDC_AUTHORIZATION_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/auth
OVERLEAF_OIDC_TOKEN_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/token
OVERLEAF_OIDC_USER_INFO_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/userinfo
OVERLEAF_OIDC_LOGOUT_URL=https://keycloak.provider.com/realms/example/protocol/openid-connect/logout
OVERLEAF_OIDC_CLIENT_ID=Overleaf-OIDC
OVERLEAF_OIDC_CLIENT_SECRET=DoNotUseThisATGgaAcTgCcATgGATTACAagGtTCaGcGTAG
OVERLEAF_OIDC_IDENTITY_SERVICE_NAME='Keycloak OIDC Sağlayıcısı ile giriş yapın'
OVERLEAF_OIDC_PROVIDER_NAME=OIDC Keycloak Sağlayıcısı
OVERLEAF_OIDC_PROVIDER_INFO_LINK=https://openid.net
OVERLEAF_OIDC_IS_ADMIN_FIELD=email
OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE=overleaf.admin@example.com
OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN=false
```

{% endcode %}

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/tr/yapilandirma/overleaf-toolkit/authentication/oidc-authentication.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
