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

# Ověřování SAML

<Info>
  Tuto funkci vyvíjí [yu-i-i/overleaf-cep](https://github.com/yu-i-i/overleaf-cep). Zde nabízíme dokumentaci pro vaši konfiguraci.
</Info>

### Konfigurace

Modul SAML v Overleaf interně používá knihovnu [passport-saml](https://github.com/node-saml/passport-saml) a většina následujících konfiguračních voleb se předává přímo do `passport-saml`. Pokud máte potíže s konfigurací SAML, vyplatí se přečíst si README knihovny `passport-saml`, abyste získali představu o konfiguraci, kterou očekává.

K zapnutí ověřovacího modulu SAML je vyžadována proměnná prostředí `EXTERNAL_AUTH`. Tato proměnná prostředí určuje, které externí metody ověřování jsou aktivovány. Hodnotou této proměnné je seznam. Pokud seznam obsahuje `saml`, bude aktivováno ověřování SAML.

Například: `EXTERNAL_AUTH=ldap saml`

Při použití metody ověřování SAML je uživatel přesměrován na ověřovací stránku poskytovatele identity (IdP). Pokud IdP uživatele úspěšně ověří, v databázi uživatelů Overleaf se vyhledá záznam obsahující pole `samlIdentifiers` s následující strukturou:

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

`externalUserId` se musí shodovat s hodnotou vlastnosti určené atributem `userIdAttribute` v uživatelském profilu vráceném serverem IdP.

Pokud není nalezen žádný odpovídající záznam, v databázi se vyhledá uživatel, jehož primární e-mailová adresa odpovídá e-mailu v uživatelském profilu IdP:

* Pokud je takový uživatel nalezen, pole `hashedPassword` se smaže, aby se vypnulo místní ověřování, a přidá se pole `samlIdentifiers`.
* Pokud není nalezen žádný odpovídající uživatel, vytvoří se nový uživatel s e-mailovou adresou a `samlIdentifiers` z profilu IdP.

<strong>Poznámka:</strong> V současnosti je podporován pouze jeden SAML IdP. Pole `providerId` v `samlIdentifiers` má pevnou hodnotu `'1'`.

#### Proměnné prostředí

* `OVERLEAF_SAML_IDENTITY_SERVICE_NAME`
  * Zobrazovaný název služby identity, používaný na přihlašovací stránce (výchozí: `Log in with SAML IdP`).
* `OVERLEAF_SAML_USER_ID_FIELD`
  * Hodnotu tohoto atributu použije Overleaf jako externí ID uživatele; výchozí hodnota je `nameID`.
* `OVERLEAF_SAML_EMAIL_FIELD`
  * Název pole s e-mailem v uživatelském profilu; výchozí hodnota je `nameID`.
* `OVERLEAF_SAML_FIRST_NAME_FIELD`
  * Název pole firstName v uživatelském profilu; výchozí hodnota je `givenName`.
* `OVERLEAF_SAML_LAST_NAME_FIELD`
  * Název pole lastName v uživatelském profilu; výchozí hodnota je `lastName`
* `OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN`
  * Pokud je nastaveno na `true`, při přihlášení se aktualizují pole uživatele `first_name` a `last_name` a formulář s údaji o uživateli na stránce `/user/settings` se vypne.
* `OVERLEAF_SAML_ENTRYPOINT` <strong>(povinné)</strong>
  * URL vstupního bodu služby identity SAML.
    * Příklad: `https://idp.example.com/simplesaml/saml2/idp/SSOService.php`
    * Příklad pro Azure: `https://login.microsoftonline.com/8b26b46a-6dd3-45c7-a104-f883f4db1f6b/saml2`
* `OVERLEAF_SAML_ISSUER` <strong>(povinné)</strong>
  * Název vydavatele (Issuer).
* `OVERLEAF_SAML_AUDIENCE`
  * Očekávaná hodnota Audience v odpovědi SAML; výchozí hodnota je hodnota `OVERLEAF_SAML_ISSUER`.
* `OVERLEAF_SAML_IDP_CERT` <strong>(povinné)</strong>
  * Cesta k souboru s veřejným certifikátem poskytovatele identity, který se používá k ověření podpisů příchozích odpovědí SAML. Pokud má poskytovatel identity více platných podpisových certifikátů, může jít o pole JSON s cestami k certifikátům.
    * Příklad (jeden certifikát): `/var/lib/overleaf/certs/idp_cert.pem`
    * Příklad (více certifikátů): `["var/lib/overleaf/certs/idp_cert.pem", "/var/lib/overleaf/certs/idp_cert_old.pem"]`
* `OVERLEAF_SAML_PUBLIC_CERT`
  * Cesta k souboru s veřejným podpisovým certifikátem, který se vkládá do požadavků na ověření, aby IdP mohl ověřit podpisy příchozího požadavku SAML. Je vyžadován při nastavování [endpointu metadat](https://github.com/yu-i-i/overleaf-cep/wiki/Extended-CE:-SAML-Authentication#metadata-for-the-identity-provider), pokud je strategie nakonfigurována s `OVERLEAF_SAML_PRIVATE_KEY`. Pro podporu rotace certifikátů lze zadat pole JSON s cestami k certifikátům. Při zadání pole certifikátů by první položka pole měla odpovídat aktuálnímu `OVERLEAF_SAML_PRIVATE_KEY`. Další položky pole lze použít ke zveřejnění připravovaných certifikátů poskytovatelům IdP před změnou `OVERLEAF_SAML_PRIVATE_KEY`.
* `OVERLEAF_SAML_PRIVATE_KEY`
  * Cesta k souboru se soukromým klíčem ve formátu PEM, který odpovídá `OVERLEAF_SAML_PUBLIC_CERT` a slouží k podepisování požadavků na ověření odesílaných knihovnou passport-saml.
* `OVERLEAF_SAML_DECRYPTION_CERT`
  * Cesta k souboru s veřejným certifikátem, který se používá pro [endpoint metadat](https://github.com/yu-i-i/overleaf-cep/wiki/Extended-CE:-SAML-Authentication#metadata-for-the-identity-provider).
* `OVERLEAF_SAML_DECRYPTION_PVK`
  * Cesta k souboru se soukromým klíčem odpovídajícím `OVERLEAF_SAML_DECRYPTION_CERT`, který se použije k pokusu o dešifrování všech přijatých šifrovaných tvrzení (assertions).
* `OVERLEAF_SAML_SIGNATURE_ALGORITHM`
  * Volitelně nastavuje algoritmus podpisu pro podepisování požadavků; platné hodnoty jsou 'sha1' (výchozí), 'sha256' (preferovaná) a 'sha512' (nejbezpečnější, ověřte, zda ji váš IdP podporuje).
* `OVERLEAF_SAML_ADDITIONAL_PARAMS`
  * Slovník JSON s dalšími parametry dotazu, které se přidají ke všem požadavkům.
* `OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS`
  * Slovník JSON s dalšími parametry dotazu, které se přidají k požadavkům 'authorize'.
    * Příklad: `{"some_key": "some_value"}`
* `OVERLEAF_SAML_IDENTIFIER_FORMAT`
  * Formát identifikátoru jména, který se má vyžádat od poskytovatele identity (výchozí: `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`). Pokud používáte `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`, ujistěte se, že je definována proměnná prostředí `OVERLEAF_SAML_EMAIL_FIELD`. Pokud je vyžadován `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`, musíte také definovat proměnnou prostředí `OVERLEAF_SAML_USER_ID_FIELD`, kterou lze například nastavit na e-mailovou adresu uživatele.
* `OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS`
  * Přijatelná odchylka hodin mezi klientem a serverem v milisekundách při kontrole platnosti časových razítek podmínek tvrzení OnBefore a NotOnOrAfter. Nastavení na -1 kontrolu těchto podmínek zcela vypne. Výchozí hodnota je 0.
* `OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX`
  * Atribut `AttributeConsumingServiceIndex`, který se přidá do AuthnRequest a určí IdP, kterou sadu atributů má připojit k odpovědi ([odkaz](http://blog.aniljohn.com/2014/01/data-minimization-front-channel-saml-attribute-requests.html)).
* `OVERLEAF_SAML_AUTHN_CONTEXT`
  * Pole JSON s hodnotami formátu identifikátoru jména pro vyžádání kontextu ověření. Výchozí: `["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"]`.
* `OVERLEAF_SAML_FORCE_AUTHN`
  * Pokud je `true`, počáteční požadavek SAML od poskytovatele služby určí, že IdP má vynutit opětovné ověření uživatele, i když má platnou relaci.
* `OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT`
  * Pokud je `true`, nevyžaduje se konkrétní kontext ověření. Můžete to například nastavit na `true`, abyste povolili další kontexty, jako je přihlašování bez hesla (`urn:oasis:names:tc:SAML:2.0:ac:classes:X509`). Podpora dalších kontextů závisí na vašem IdP.
* `OVERLEAF_SAML_AUTHN_REQUEST_BINDING`
  * Pokud je nastaveno na `HTTP-POST`, ověření se od IdP vyžádá prostřednictvím vazby HTTP POST; jinak se ve výchozím nastavení použije HTTP-Redirect.
* `OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO`
  * Pokud je `always`, InResponseTo se u příchozích odpovědí SAML ověřuje vždy.
  * Pokud je `never`, InResponseTo se neověřuje (výchozí).
  * Pokud je `ifPresent`, InResponseTo se ověřuje pouze tehdy, je-li v příchozí odpovědi SAML přítomno.
* `OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED` a `OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED`
  * Pokud jsou nastaveny na `true` (výchozí), Overleaf očekává, že tvrzení SAML, respektive celá ověřovací odpověď SAML, budou podepsány IdP. Pokud jsou obě volby `false`, musí být podepsáno alespoň jedno z tvrzení nebo odpověď.
* `OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS`
  * Určuje dobu platnosti, po jejímž uplynutí ID požadavku vygenerované pro požadavek SAML již nebude platné, pokud se objeví v odpovědi SAML v poli `InResponseTo`. Výchozí: 28800000 (8 hodin).
* `OVERLEAF_SAML_LOGOUT_URL`
  * základní adresa, která se volá s požadavky na odhlášení (výchozí: `entryPoint`).
    * Příklad: `https://idp.example.com/simplesaml/saml2/idp/SingleLogoutService.php`
* `OVERLEAF_SAML_ADDITIONAL_LOGOUT_PARAMS`
  * Slovník JSON s dalšími parametry dotazu, které se přidají k požadavkům 'logout'.
* `OVERLEAF_SAML_IS_ADMIN_FIELD` a `OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE`
  * Pokud jsou nastaveny obě proměnné prostředí, proces přihlášení nastaví `user.isAdmin = true`, pokud profil vrácený SAML IdP obsahuje atribut určený proměnnou `OVERLEAF_SAML_IS_ADMIN_FIELD` a jeho hodnota buď odpovídá `OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE`, nebo je to pole obsahující `OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE`; v opačném případě se `user.isAdmin` nastaví na `false`. Pokud některá z těchto proměnných není nastavena, stav administrátora se nastaví na `true` pouze při vytváření administrátorského uživatele v Launchpadu.

**Metadata pro poskytovatele identity**

Aktuální verze Overleaf CE obsahuje endpoint pro získání metadat poskytovatele služby: `http://my-overleaf-instance.com/saml/meta`

Poskytovatel identity musí být nakonfigurován tak, aby rozpoznal server Overleaf jako „poskytovatele služby“ (Service Provider). Pokyny, jak to provést, najdete v dokumentaci svého serveru SAML.

Níže je příklad vhodných metadat poskytovatele služby:

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

Poznamenejte si certifikáty, `AssertionConsumerService.Location`, `SingleLogoutService.Location` a `EntityDescriptor.entityID` a odpovídajícím způsobem je nastavte v konfiguraci svého IdP, nebo soubor metadat pošlete administrátorovi IdP.

<Accordion title="Ukázkový soubor variables.env (minimální)">
  ```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>

## Postup krok za krokem: goauthentik

Tento návod popisuje nastavení otestované s [goauthentik](https://goauthentik.io/). Nahraďte `https://overleaf.example.com` svou hodnotou `OVERLEAF_SITE_URL` a `https://authentik.example.com` adresou svého Authentiku.

<Steps>
  <Step title="Vytvořte poskytovatele a aplikaci">
    V Authentiku otevřete **Applications > Applications** a klikněte na **New Application**. Průvodce vytvoří aplikaci a jejího poskytovatele najednou.

    1\. Zadejte název a slug aplikace, například `overleaf`, a klikněte na **Next**:

    <Frame caption="Authentik: název a slug aplikace">
      <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\. Zvolte **SAML Provider** a klikněte na **Next**:

    <Frame caption="Authentik: výběr poskytovatele SAML">
      <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\. Vyplňte poskytovatele:

    * **Authorization Flow**: `default-provider-authorization-implicit-consent`
    * **ACS URL**: `https://overleaf.example.com/saml/login/callback`
    * **Audience**: název pro Overleaf, například `overleaf`. Overleaf jej odesílá jako `OVERLEAF_SAML_ISSUER`.

    <Frame caption="Authentik: poskytovatel SAML aplikace">
      <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\. Otevřete **Advanced protocol settings** a nastavte:

    * **Signing Certificate**: certifikát, například `authentik Self-signed Certificate`
    * **Sign assertions** a **Sign responses**: obojí zapnuto
    * **Service Provider Binding**: `Post`

    <Frame caption="Authentik: podepisování a binding otestovaného poskytovatele (testovací instance)">
      <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\. Klikejte na **Next** až na poslední stránku a aplikaci odešlete.
  </Step>

  <Step title="Zkopírujte hodnoty ze stránky poskytovatele">
    Znovu otevřete poskytovatele. Vše, co Overleaf potřebuje, najdete v jeho přehledu:

    <Frame caption="Authentik: přehled poskytovatele SAML (testovací instance)">
      <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>

    | Na stránce poskytovatele | Proměnná prostředí |
    | - | - |
    | **SAML Endpoint** | `OVERLEAF_SAML_ENTRYPOINT` a `OVERLEAF_SAML_LOGOUT_URL` |
    | **Audience** | `OVERLEAF_SAML_ISSUER` |
    | **Download signing certificate** (soubor) | `OVERLEAF_SAML_IDP_CERT`, viz další krok |

    <Warning>
      **EntityID/Issuer** v části **SAML Configuration** je název samotného Authentiku. Nevkládejte jej do `OVERLEAF_SAML_ISSUER`, použijte **Audience**.
    </Warning>
  </Step>

  <Step title="Nainstalujte podpisový certifikát">
    Klikněte na **Download** pod **Download signing certificate** a uložte soubor jako `data/overleaf/certs/idp_cert.pem` v adresáři Toolkitu. Kontejner jej vidí jako `/var/lib/overleaf/certs/idp_cert.pem`:

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

  <Step title="Namapujte atributy">
    Authentik posílá své atributy pod těmito názvy:

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

    Skupiny přicházejí jako `http://schemas.xmlsoap.org/claims/Group`, tedy seznam. Chcete-li, aby se členové skupiny Authentiku `Admins` stali administrátory Overleafu:

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

    <Warning>
      Příznak administrátora se aktualizuje při každém přihlášení přes SAML. Při chybném poli nebo hodnotě přijde každý administrátor, který se přihlásí přes SAML, o administrátorská práva. Mapování nejprve otestujte s druhým administrátorským účtem.
    </Warning>
  </Step>
</Steps>

<Accordion title="Otestovaný soubor variables.env pro goauthentik">
  ```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.