> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SAML Kimlik Doğrulama

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

### Yapılandırma

Overleaf SAML modülü dahili olarak [passport-saml](https://github.com/node-saml/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:

```json theme={null}
samlIdentifiers: [
  {
    externalUserId: "...",
    providerId: "1",
    userIdAttribute: "..."
  }
]
```

`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.

<strong>Not:</strong> Ş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` <strong>(zorunlu)</strong>
  * 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` <strong>(zorunlu)</strong>
  * 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` <strong>(zorunlu)</strong>
  * 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ı](https://github.com/yu-i-i/overleaf-cep/wiki/Extended-CE:-SAML-Authentication#metadata-for-the-identity-provider) 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`
  * [Meta veri uç noktası](https://github.com/yu-i-i/overleaf-cep/wiki/Extended-CE:-SAML-Authentication#metadata-for-the-identity-provider) için kullanılan genel sertifikayı içeren dosyanın yolu.
* `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ı](http://blog.aniljohn.com/2014/01/data-minimization-front-channel-saml-attribute-requests.html)).
* `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:

<Accordion title="ol-meta.xml">
  ```text theme={null}
  <?xml version="1.0"?>
  <EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
                    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
                    entityID="MyOverleaf"
                    ID="_b508c83b7dda452f5b269383fb391107116f8f57">
    <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" AuthnRequestsSigned="true" WantAssertionsSigned="true">
      <KeyDescriptor use="signing">
        <ds:KeyInfo>
          <ds:X509Data>
            <ds:X509Certificate>MII...
  [skipped]
  </ds:X509Certificate>
          </ds:X509Data>
        </ds:KeyInfo>
      </KeyDescriptor>
      <KeyDescriptor use="encryption">
        <ds:KeyInfo>
          <ds:X509Data>
            <ds:X509Certificate>MII...
  [skipped]
  </ds:X509Certificate>
          </ds:X509Data>
        </ds:KeyInfo>
        <EncryptionMethod Algorithm="http://www.w3.org/2009/xmlenc11#aes256-gcm"/>
        <EncryptionMethod Algorithm="http://www.w3.org/2009/xmlenc11#aes128-gcm"/>
        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
      </KeyDescriptor>
      <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                           Location="https://my-overleaf-instance.com/saml/logout/callback"/>
      <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
      <AssertionConsumerService index="1"
                                isDefault="true"
                                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                                Location="https://my-overleaf-instance.com/saml/login/callback"/>
    </SPSSODescriptor>
  </EntityDescriptor>

  ```
</Accordion>

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.

<Accordion title="Örnek variables.env dosyası (minimum)">
  ```text theme={null}
  OVERLEAF_APP_NAME="Our Overleaf Instance"

  ENABLED_LINKED_FILE_TYPES=project_file,project_output_file,url

  # Enables Thumbnail generation using ImageMagick
  ENABLE_CONVERSIONS=true

  # Disables email confirmation requirement
  EMAIL_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=true

  OVERLEAF_SITE_URL=http://my-overleaf-instance.com
  OVERLEAF_NAV_TITLE=Our Overleaf Instance
  # OVERLEAF_HEADER_IMAGE_URL=http://somewhere.com/mylogo.png
  OVERLEAF_ADMIN_EMAIL=support@example.com

  OVERLEAF_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.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=This system is run by department x

  OVERLEAF_PROXY_LEARN=true
  NAV_HIDE_POWERED_BY=true

  #################
  ##     SAML    ##
  #################

  EXTERNAL_AUTH=saml
  OVERLEAF_SAML_ISSUER=MyOverleaf
  OVERLEAF_SAML_IDENTITY_SERVICE_NAME='Log in with SAML Provider'
  OVERLEAF_SAML_EMAIL_FIELD=Email
  OVERLEAF_SAML_FIRST_NAME_FIELD=DisplayName
  OVERLEAF_SAML_LAST_NAME_FIELD=DisplayName
  OVERLEAF_SAML_ENTRYPOINT=http://localhost:18000/login/saml/authorize/admin/SAML_Overleaf
  OVERLEAF_SAML_IDP_CERT=/var/lib/overleaf/certs/idp_cert.pem
  OVERLEAF_SAML_SIGNATURE_ALGORITHM=
  ```
</Accordion>

## Adım adım: goauthentik

Bu bölüm, [goauthentik](https://goauthentik.io/) 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.

<Steps>
  <Step title="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:

    <Frame caption="Authentik: uygulamanın adı ve slug'ı">
      <img src="https://mintcdn.com/ayakaleaf-pro/TjqwH4XzxYAkHStq/images/on-premises/saml-authentik-app.png?fit=max&auto=format&n=TjqwH4XzxYAkHStq&q=85&s=e2405f63578ab00991ad5046665eab32" alt="" width="1120" height="810" data-path="images/on-premises/saml-authentik-app.png" />
    </Frame>

    2\. **SAML Provider**'ı seçin ve **Next**'e tıklayın:

    <Frame caption="Authentik: SAML sağlayıcısını seçme">
      <img src="https://mintcdn.com/ayakaleaf-pro/TjqwH4XzxYAkHStq/images/on-premises/saml-authentik-type.png?fit=max&auto=format&n=TjqwH4XzxYAkHStq&q=85&s=537780362698d5088132048754ac6481" alt="" width="1120" height="810" data-path="images/on-premises/saml-authentik-type.png" />
    </Frame>

    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.

    <Frame caption="Authentik: uygulamanın SAML sağlayıcısı">
      <img src="https://mintcdn.com/ayakaleaf-pro/TjqwH4XzxYAkHStq/images/on-premises/saml-authentik-create.png?fit=max&auto=format&n=TjqwH4XzxYAkHStq&q=85&s=4f15b87b90b355e13831b95c07abe427" alt="" width="1120" height="810" data-path="images/on-premises/saml-authentik-create.png" />
    </Frame>

    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`

    <Frame caption="Authentik: test edilmiş bir sağlayıcının imzalama ve bağlama ayarları (test örneği)">
      <img src="https://mintcdn.com/ayakaleaf-pro/TjqwH4XzxYAkHStq/images/on-premises/saml-authentik-advanced.png?fit=max&auto=format&n=TjqwH4XzxYAkHStq&q=85&s=39b136a219fb192ed42d337de0058166" alt="" width="1089" height="417" data-path="images/on-premises/saml-authentik-advanced.png" />
    </Frame>

    5\. Son sayfaya kadar **Next**'e tıklayın ve uygulamayı gönderin.
  </Step>

  <Step title="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:

    <Frame caption="Authentik: bir SAML sağlayıcısına genel bakış (test örneği)">
      <img src="https://mintcdn.com/ayakaleaf-pro/TjqwH4XzxYAkHStq/images/on-premises/saml-authentik-provider.png?fit=max&auto=format&n=TjqwH4XzxYAkHStq&q=85&s=b73f3aa817b7a18286db6d810ab3b2e9" alt="" width="990" height="963" data-path="images/on-premises/saml-authentik-provider.png" />
    </Frame>

    | Sağlayıcı sayfasında | Ortam değişkeni |
    | - | - |
    | **SAML Endpoint** | `OVERLEAF_SAML_ENTRYPOINT` ve `OVERLEAF_SAML_LOGOUT_URL` |
    | **Audience** | `OVERLEAF_SAML_ISSUER` |
    | **Download signing certificate** (bir dosya) | `OVERLEAF_SAML_IDP_CERT`, sonraki adıma bakın |

    <Warning>
      **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.
    </Warning>
  </Step>

  <Step title="İ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:

    ```dotenv theme={null}
    OVERLEAF_SAML_IDP_CERT=/var/lib/overleaf/certs/idp_cert.pem
    ```
  </Step>

  <Step title="Öznitelikleri eşleyin">
    Authentik özniteliklerini şu adlarla gönderir:

    ```dotenv theme={null}
    OVERLEAF_SAML_USER_ID_FIELD=http://schemas.goauthentik.io/2021/02/saml/username
    OVERLEAF_SAML_EMAIL_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    OVERLEAF_SAML_FIRST_NAME_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
    OVERLEAF_SAML_LAST_NAME_FIELD=http://schemas.goauthentik.io/2021/02/saml/username
    ```

    Gruplar, bir liste olarak `http://schemas.xmlsoap.org/claims/Group` adıyla gelir. Authentik grubu `Admins` üyelerini Overleaf yöneticisi yapmak için:

    ```dotenv theme={null}
    OVERLEAF_SAML_IS_ADMIN_FIELD=http://schemas.xmlsoap.org/claims/Group
    OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE=Admins
    ```

    <Warning>
      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.
    </Warning>
  </Step>
</Steps>

<Accordion title="goauthentik için test edilmiş variables.env">
  ```dotenv title="variables.env" wrap theme={null}
  EXTERNAL_AUTH=saml
  OVERLEAF_SAML_IDENTITY_SERVICE_NAME=Log in with Authentik
  OVERLEAF_SAML_ENTRYPOINT=https://authentik.example.com/application/saml/overleaf/
  OVERLEAF_SAML_LOGOUT_URL=https://authentik.example.com/application/saml/overleaf/
  OVERLEAF_SAML_ISSUER=overleaf
  OVERLEAF_SAML_IDP_CERT=/var/lib/overleaf/certs/idp_cert.pem
  OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED=true
  OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED=true
  OVERLEAF_SAML_USER_ID_FIELD=http://schemas.goauthentik.io/2021/02/saml/username
  OVERLEAF_SAML_EMAIL_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  OVERLEAF_SAML_FIRST_NAME_FIELD=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
  OVERLEAF_SAML_LAST_NAME_FIELD=http://schemas.goauthentik.io/2021/02/saml/username
  OVERLEAF_SAML_IS_ADMIN_FIELD=http://schemas.xmlsoap.org/claims/Group
  OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE=Admins
  OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN=true
  ```
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.