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

<Info>
  Den här funktionen har utvecklats av [yu-i-i/overleaf-cep](https://github.com/yu-i-i/overleaf-cep). Här tillhandahåller vi viss dokumentation för din konfiguration.
</Info>

### Konfiguration

Internt använder Overleafs SAML-modul biblioteket [passport-saml](https://github.com/node-saml/passport-saml), och de flesta av följande konfigurationsalternativ skickas vidare till `passport-saml`. Om du har problem med att konfigurera SAML är det värt att läsa README-filen för `passport-saml` för att få en känsla för vilken konfiguration den förväntar sig.

Miljövariabeln `EXTERNAL_AUTH` krävs för att aktivera SAML-autentiseringsmodulen. Den här miljövariabeln anger vilka externa autentiseringsmetoder som aktiveras. Variabelns värde är en lista. Om listan innehåller `saml` aktiveras SAML-autentisering.

Till exempel: `EXTERNAL_AUTH=ldap saml`

När SAML-autentiseringsmetoden används omdirigeras användaren till identitetsleverantörens (IdP) autentiseringssida. Om IdP:n autentiserar användaren kontrolleras Overleafs användardatabas efter en post som innehåller ett `samlIdentifiers`-fält med följande struktur:

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

`externalUserId` måste matcha värdet på den egenskap som anges av `userIdAttribute` i användarprofilen som returneras av IdP-servern.

Om ingen matchande post hittas söks databasen igenom efter en användare vars primära e-postadress matchar e-postadressen i IdP:ns användarprofil:

* Om en sådan användare hittas tas fältet `hashedPassword` bort för att inaktivera lokal autentisering, och fältet `samlIdentifiers` läggs till.
* Om ingen matchande användare hittas skapas en ny användare med e-postadressen och `samlIdentifiers` från IdP-profilen.

<strong>Obs:</strong> För närvarande stöds endast en SAML-IdP. Fältet `providerId` i `samlIdentifiers` är låst till `'1'`.

#### Miljövariabler

* `OVERLEAF_SAML_IDENTITY_SERVICE_NAME`
  * Visningsnamn för identitetstjänsten, som används på inloggningssidan (standard: `Log in with SAML IdP`).
* `OVERLEAF_SAML_USER_ID_FIELD`
  * Värdet på det här attributet används av Overleaf som externt användar-ID, standardvärdet är `nameID`.
* `OVERLEAF_SAML_EMAIL_FIELD`
  * Namnet på e-postfältet i användarprofilen, standardvärdet är `nameID`.
* `OVERLEAF_SAML_FIRST_NAME_FIELD`
  * Namnet på firstName-fältet i användarprofilen, standardvärdet är `givenName`.
* `OVERLEAF_SAML_LAST_NAME_FIELD`
  * Namnet på lastName-fältet i användarprofilen, standardvärdet är `lastName`
* `OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN`
  * Om den sätts till `true` uppdateras användarens fält `first_name` och `last_name` vid inloggning, och formuläret för användaruppgifter på sidan `/user/settings` stängs av.
* `OVERLEAF_SAML_ENTRYPOINT` <strong>(obligatorisk)</strong>
  * Ingångs-URL för SAML-identitetstjänsten.
    * Exempel: `https://idp.example.com/simplesaml/saml2/idp/SSOService.php`
    * Exempel för Azure: `https://login.microsoftonline.com/8b26b46a-6dd3-45c7-a104-f883f4db1f6b/saml2`
* `OVERLEAF_SAML_ISSUER` <strong>(obligatorisk)</strong>
  * Utfärdarens namn (Issuer).
* `OVERLEAF_SAML_AUDIENCE`
  * Förväntad Audience i SAML-svaret, standardvärdet är värdet av `OVERLEAF_SAML_ISSUER`.
* `OVERLEAF_SAML_IDP_CERT` <strong>(obligatorisk)</strong>
  * Sökväg till en fil som innehåller identitetsleverantörens publika certifikat, som används för att validera signaturerna på inkommande SAML-svar. Om identitetsleverantören har flera giltiga signeringscertifikat kan värdet vara en JSON-array med sökvägar till certifikaten.
    * Exempel (ett certifikat): `/var/lib/overleaf/certs/idp_cert.pem`
    * Exempel (flera certifikat): `["var/lib/overleaf/certs/idp_cert.pem", "/var/lib/overleaf/certs/idp_cert_old.pem"]`
* `OVERLEAF_SAML_PUBLIC_CERT`
  * Sökväg till en fil som innehåller det publika signeringscertifikat som bäddas in i autentiseringsförfrågningar så att IdP:n kan validera signaturerna på den inkommande SAML-förfrågan. Den krävs när [metadata-endpointen](https://github.com/yu-i-i/overleaf-cep/wiki/Extended-CE:-SAML-Authentication#metadata-for-the-identity-provider) konfigureras och strategin är konfigurerad med en `OVERLEAF_SAML_PRIVATE_KEY`. En JSON-array med sökvägar till certifikat kan anges för att stödja certifikatrotation. När en array med certifikat anges ska den första posten i arrayen matcha den aktuella `OVERLEAF_SAML_PRIVATE_KEY`. Ytterligare poster i arrayen kan användas för att publicera kommande certifikat till IdP:er innan `OVERLEAF_SAML_PRIVATE_KEY` ändras.
* `OVERLEAF_SAML_PRIVATE_KEY`
  * Sökväg till en fil som innehåller en PEM-formaterad privat nyckel som matchar `OVERLEAF_SAML_PUBLIC_CERT` och som används för att signera autentiseringsförfrågningar som skickas av passport-saml.
* `OVERLEAF_SAML_DECRYPTION_CERT`
  * Sökväg till en fil som innehåller ett publikt certifikat, som används för [metadata-endpointen](https://github.com/yu-i-i/overleaf-cep/wiki/Extended-CE:-SAML-Authentication#metadata-for-the-identity-provider).
* `OVERLEAF_SAML_DECRYPTION_PVK`
  * Sökväg till en fil som innehåller en privat nyckel som matchar `OVERLEAF_SAML_DECRYPTION_CERT` och som används för att försöka dekryptera eventuella krypterade intyg (assertions) som tas emot.
* `OVERLEAF_SAML_SIGNATURE_ALGORITHM`
  * Anger valfritt signaturalgoritmen för signering av förfrågningar; giltiga värden är 'sha1' (standard), 'sha256' (rekommenderas), 'sha512' (säkrast, kontrollera att din IdP stöder det).
* `OVERLEAF_SAML_ADDITIONAL_PARAMS`
  * JSON-ordbok med ytterligare frågeparametrar som läggs till i alla förfrågningar.
* `OVERLEAF_SAML_ADDITIONAL_AUTHORIZE_PARAMS`
  * JSON-ordbok med ytterligare frågeparametrar som läggs till i 'authorize'-förfrågningar.
    * Exempel: `{"some_key": "some_value"}`
* `OVERLEAF_SAML_IDENTIFIER_FORMAT`
  * Format för namnidentifierare som begärs från identitetsleverantören (standard: `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`). Om du använder `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` måste du se till att miljövariabeln `OVERLEAF_SAML_EMAIL_FIELD` är definierad. Om `urn:oasis:names:tc:SAML:2.0:nameid-format:transient` krävs måste du också definiera miljövariabeln `OVERLEAF_SAML_USER_ID_FIELD`, som till exempel kan sättas till användarens e-postadress.
* `OVERLEAF_SAML_ACCEPTED_CLOCK_SKEW_MS`
  * Tillåten tidsavvikelse i millisekunder mellan klient och server vid kontroll av giltighetstidsstämplarna i intygsvillkoren OnBefore och NotOnOrAfter. Om värdet sätts till -1 inaktiveras kontrollen av dessa villkor helt. Standardvärdet är 0.
* `OVERLEAF_SAML_ATTRIBUTE_CONSUMING_SERVICE_INDEX`
  * Attributet `AttributeConsumingServiceIndex` som läggs till i AuthnRequest för att instruera IdP:n vilken attributuppsättning som ska bifogas svaret ([länk](http://blog.aniljohn.com/2014/01/data-minimization-front-channel-saml-attribute-requests.html)).
* `OVERLEAF_SAML_AUTHN_CONTEXT`
  * JSON-array med värden för namnidentifierarformat för att begära autentiseringskontext. Standard: `["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"]`.
* `OVERLEAF_SAML_FORCE_AUTHN`
  * Om `true` anger den initiala SAML-förfrågan från tjänsteleverantören att IdP:n ska tvinga fram en ny autentisering av användaren, även om hen har en giltig session.
* `OVERLEAF_SAML_DISABLE_REQUESTED_AUTHN_CONTEXT`
  * Om `true` begärs ingen specifik autentiseringskontext. Du kan till exempel sätta detta till `true` för att tillåta ytterligare kontexter, såsom lösenordslösa inloggningar (`urn:oasis:names:tc:SAML:2.0:ac:classes:X509`). Stödet för ytterligare kontexter beror på din IdP.
* `OVERLEAF_SAML_AUTHN_REQUEST_BINDING`
  * Om den sätts till `HTTP-POST` begärs autentisering från IdP:n via HTTP POST-bindning; annars används HTTP-Redirect som standard.
* `OVERLEAF_SAML_VALIDATE_IN_RESPONSE_TO`
  * Om `always` valideras InResponseTo i inkommande SAML-svar.
  * Om `never` valideras InResponseTo inte (standard).
  * Om `ifPresent` valideras InResponseTo endast om det finns i det inkommande SAML-svaret.
* `OVERLEAF_SAML_WANT_ASSERTIONS_SIGNED` och `OVERLEAF_SAML_WANT_AUTHN_RESPONSE_SIGNED`
  * När de är satta till `true` (standard) förväntar sig Overleaf att SAML-intygen, respektive hela SAML-autentiseringssvaret, är signerade av IdP:n. När båda alternativen är `false` måste åtminstone antingen intygen eller svaret vara signerade.
* `OVERLEAF_SAML_REQUEST_ID_EXPIRATION_PERIOD_MS`
  * Anger efter hur lång tid ett förfrågnings-ID som genererats för en SAML-förfrågan inte längre är giltigt om det förekommer i fältet `InResponseTo` i ett SAML-svar. Standard: 28800000 (8 timmar).
* `OVERLEAF_SAML_LOGOUT_URL`
  * basadress som anropas med utloggningsförfrågningar (standard: `entryPoint`).
    * Exempel: `https://idp.example.com/simplesaml/saml2/idp/SingleLogoutService.php`
* `OVERLEAF_SAML_ADDITIONAL_LOGOUT_PARAMS`
  * JSON-ordbok med ytterligare frågeparametrar som läggs till i 'logout'-förfrågningar.
* `OVERLEAF_SAML_IS_ADMIN_FIELD` och `OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE`
  * När båda miljövariablerna är satta uppdaterar inloggningsprocessen `user.isAdmin = true` om profilen som returneras av SAML-IdP:n innehåller attributet som anges av `OVERLEAF_SAML_IS_ADMIN_FIELD` och dess värde antingen matchar `OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE` eller är en array som innehåller `OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE`; annars sätts `user.isAdmin` till `false`. Om någon av dessa variabler inte är satt sätts administratörsstatusen till `true` endast när administratörsanvändaren skapas i Launchpad.

**Metadata för identitetsleverantören**

Den aktuella versionen av Overleaf CE innehåller en endpoint för att hämta metadata för tjänsteleverantören: `http://my-overleaf-instance.com/saml/meta`

Identitetsleverantören måste konfigureras så att den känner igen Overleaf-servern som en ”Service Provider” (tjänsteleverantör). Se dokumentationen för din SAML-server för instruktioner om hur du gör detta.

Nedan följer ett exempel på lämplig metadata för tjänsteleverantören:

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

Notera certifikaten, `AssertionConsumerService.Location`, `SingleLogoutService.Location` och `EntityDescriptor.entityID` och ange dem på lämpligt sätt i din IdP-konfiguration, eller skicka metadatafilen till IdP-administratören.

<Accordion title="Exempel på variables.env-fil (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>

## Steg för steg: goauthentik

Här går vi igenom en konfiguration som har testats mot [goauthentik](https://goauthentik.io/). Ersätt `https://overleaf.example.com` med din `OVERLEAF_SITE_URL` och `https://authentik.example.com` med adressen till din Authentik.

<Steps>
  <Step title="Skapa leverantören och applikationen">
    Öppna **Applications > Applications** i Authentik och klicka på **New Application**. Guiden skapar applikationen och dess leverantör samtidigt.

    1\. Ge applikationen ett namn och en slug, till exempel `overleaf`, och klicka på **Next**:

    <Frame caption="Authentik: applikationens namn och 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\. Välj **SAML Provider** och klicka på **Next**:

    <Frame caption="Authentik: välj SAML-leverantören">
      <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\. Fyll i leverantören:

    * **Authorization Flow**: `default-provider-authorization-implicit-consent`
    * **ACS URL**: `https://overleaf.example.com/saml/login/callback`
    * **Audience**: ett namn för Overleaf, till exempel `overleaf`. Overleaf skickar det som `OVERLEAF_SAML_ISSUER`.

    <Frame caption="Authentik: applikationens SAML-leverantör">
      <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\. Öppna **Advanced protocol settings** och ange:

    * **Signing Certificate**: ett certifikat, till exempel `authentik Self-signed Certificate`
    * **Sign assertions** och **Sign responses**: båda aktiverade
    * **Service Provider Binding**: `Post`

    <Frame caption="Authentik: signering och bindning för en testad leverantör (testinstans)">
      <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\. Klicka på **Next** fram till sista sidan och skicka in applikationen.
  </Step>

  <Step title="Kopiera värdena från leverantörssidan">
    Öppna leverantören igen. Allt som Overleaf behöver finns i dess översikt:

    <Frame caption="Authentik: översikt över en SAML-leverantör (testinstans)">
      <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>

    | På leverantörssidan | Miljövariabel |
    | - | - |
    | **SAML Endpoint** | `OVERLEAF_SAML_ENTRYPOINT` och `OVERLEAF_SAML_LOGOUT_URL` |
    | **Audience** | `OVERLEAF_SAML_ISSUER` |
    | **Download signing certificate** (en fil) | `OVERLEAF_SAML_IDP_CERT`, se nästa steg |

    <Warning>
      **EntityID/Issuer** under **SAML Configuration** är namnet på Authentik självt. Ange det inte i `OVERLEAF_SAML_ISSUER`, utan använd **Audience**.
    </Warning>
  </Step>

  <Step title="Installera signeringscertifikatet">
    Klicka på **Download** under **Download signing certificate** och spara filen som `data/overleaf/certs/idp_cert.pem` i din Toolkit-katalog. Containern ser den som `/var/lib/overleaf/certs/idp_cert.pem`:

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

  <Step title="Mappa attributen">
    Authentik skickar sina attribut under dessa namn:

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

    Grupperna skickas som `http://schemas.xmlsoap.org/claims/Group`, en lista. Så här gör du medlemmarna i Authentik-gruppen `Admins` till administratörer i Overleaf:

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

    <Warning>
      Administratörsflaggan uppdateras vid varje SAML-inloggning. Med fel fält eller värde förlorar varje administratör som loggar in via SAML sina administratörsrättigheter. Testa mappningen med ett andra administratörskonto först.
    </Warning>
  </Step>
</Steps>

<Accordion title="Testad variables.env för 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.