> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/on-premises/on-premises-no/konfigurasjon/overleaf-toolkit/authentication/oidc-authentication.md).

# OIDC-autentisering

Denne funksjonen er utviklet av [yu-i-i/overleaf-cep](https://github.com/yu-i-i/overleaf-cep). Her tilbyr vi noen dokumenter for konfigurasjonen din.

### Konfigurasjon

Internt bruker Overleaf OIDC-modulen [passport-openidconnect](https://github.com/jaredhanson/passport-openidconnect) biblioteket. Hvis du har problemer med å konfigurere OpenID Connect, er det verdt å lese README-filen for `passport-openidconnect` for å få en følelse av konfigurasjonen den forventer.

Miljøvariabelen `EXTERNAL_AUTH` er nødvendig for å aktivere OIDC-autentiseringsmodulen. Denne miljøvariabelen angir hvilke eksterne autentiseringsmetoder som er aktivert. Verdien av denne variabelen er en liste. Hvis listen inkluderer `oidc` vil OIDC-autentisering bli aktivert.

For eksempel: `EXTERNAL_AUTH=ldap oidc`

Når du bruker OIDC-autentiseringsmetoden, blir en bruker omdirigert til autentiseringssiden til identitetsleverandøren (IdP). Hvis IdP-en autentiserer brukeren vellykket, sjekkes Overleafs brukerdatabase for en oppføring som inneholder en `thirdPartyIdentifiers` felt strukturert slik:

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

Den `externalUserId` må samsvare med bruker-ID-en i profilen som returneres av IdP-serveren (se `OVERLEAF_OIDC_USER_ID_FIELD` miljøvariabelen), og `providerId` må samsvare med ID-en til OIDC-leverandøren (se `OVERLEAF_OIDC_PROVIDER_ID`).

Hvis ingen samsvarende oppføring blir funnet, søkes databasen etter en bruker med den primære e-postadressen som samsvarer med e-posten i IdP-brukerprofilen:

* Hvis en slik bruker blir funnet, `thirdPartyIdentifiers` feltet oppdateres.
* Hvis ingen samsvarende bruker blir funnet, og JIT-kontoopprettelse ikke er deaktivert, opprettes en ny bruker med e-postadressen og `thirdPartyIdentifiers` fra IdP-profilen.

I begge tilfeller sies brukeren å være «koblet» til den eksterne OIDC-brukeren. Brukeren kan kobles fra OIDC-leverandøren på `/user/settings` .

#### Miljøvariabler

Verdiene for de følgende fem påkrevde variablene kan finnes ved å bruke `.well-known/openid-configuration` endepunktet til OpenID-leverandøren (OP).

* `OVERLEAF_OIDC_ISSUER` **(påkrevd)**
* `OVERLEAF_OIDC_AUTHORIZATION_URL` **(påkrevd)**
* `OVERLEAF_OIDC_TOKEN_URL` **(påkrevd)**
* `OVERLEAF_OIDC_USER_INFO_URL` **(påkrevd)**
* `OVERLEAF_OIDC_LOGOUT_URL` **(påkrevd)**

Verdiene for de følgende to påkrevde variablene vil bli oppgitt av administratoren for OP-en din

* `OVERLEAF_OIDC_CLIENT_ID` **(påkrevd)**
* `OVERLEAF_OIDC_CLIENT_SECRET` **(påkrevd)**
* `OVERLEAF_OIDC_SCOPE`
  * Standard: `openid profile email`
* `OVERLEAF_OIDC_PROVIDER_ID`
  * Vilkårlig ID for OP-en, standard er `oidc`.
* `OVERLEAF_OIDC_PROVIDER_NAME`
  * Navnet på OP-en, brukt på `Koblede kontoer` seksjonen i `/user/settings` siden, standard er `OIDC-leverandør`.
* `OVERLEAF_OIDC_IDENTITY_SERVICE_NAME`
  * Visningsnavn for identitetstjenesten, brukt på innloggingssiden (standard: `Logg inn med $OVERLEAF_OIDC_PROVIDER_NAME`).
* `OVERLEAF_OIDC_PROVIDER_DESCRIPTION`
  * Beskrivelse av OP-en, brukt i `Koblede kontoer` seksjonen (standard: `Logg inn med $OVERLEAF_OIDC_PROVIDER_NAME`).
* `OVERLEAF_OIDC_PROVIDER_INFO_LINK`
  * `Les mer` URL i OP-beskrivelsen, standard: ingen lenke i beskrivelsen. `Les mer` lenke i beskrivelsen.
* `OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED`
  * Ikke vis OP-en på `/user/settings` siden hvis brukerens konto ikke er koblet til OP-en, standard `false`.
* `OVERLEAF_OIDC_USER_ID_FIELD`
  * Verdien av denne attributten vil bli brukt av Overleaf som den eksterne bruker-ID-en, standard er `id`. Andre mulige rimelige verdier er `email` og `brukernavn` (tilsvarende `preferred_username` OIDC-claim).
* `OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS`
  * Begrenser Just-in-Time (JIT)-opprettelse av kontoer for brukere som autentiserer via OIDC. Hvis den er satt til en kommaseparert liste over domenenavn, vil en ny konto bare bli opprettet hvis domenet i brukerens e-postadresse samsvarer med ett av domenene i listen. Hvis domenet ikke samsvarer, må en administrator opprette brukerkontoen manuelt ved å bruke OIDC-brukerens e-postadresse, med enten et sterkt tilfeldig passord eller, helst, uten feltet i det hele tatt. Domenenavn kan ha et innledende jokertegn for å matche underdomener. `hashedPassword` feltet i det hele tatt. Domenenavn kan ha et innledende `*.` jokertegn for å matche underdomener.
    * Eksempel: For å tillate JIT-kontoopprettelse for brukere med e-postadresser som `name@example.com` og `name@math.example.com`:\
      `OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com`
    * Eksempel: For å deaktivere JIT-kontoopprettelse fullstendig:\
      `OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=`
* `OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN`
  * Hvis satt til `true`, oppdaterer brukerens `first_name` og `last_name` felt ved innlogging, og deaktiverer skjemaet for brukeropplysninger på `/user/settings` .
* `OVERLEAF_OIDC_IS_ADMIN_FIELD` og `OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE`
  * Når begge miljøvariablene er satt, oppdaterer innloggingsprosessen `user.isAdmin = true` hvis profilen som returneres av OP-en inneholder attributtet spesifisert av `OVERLEAF_OIDC_IS_ADMIN_FIELD` og verdien samsvarer med `OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE`, ellers `user.isAdmin` er satt til `false`. Hvis `OVERLEAF_OIDC_IS_ADMIN_FIELD` er `email` da brukes verdien av attributtet `emails[0].value` for samsvarssjekk.

Omdirigeringsadressen for OpenID-leverandøren din er `https://my-overleaf-instance.com/oidc/login/callback`.

<details>

<summary>Eksempel på variables.env-fil</summary>

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

```dotenv
OVERLEAF_APP_NAME="Vår Overleaf-instans"

ENABLED_LINKED_FILE_TYPES=project_file,project_output_file,url

# Aktiverer generering av miniatyrbilder med ImageMagick
ENABLE_CONVERSIONS=true

# Deaktiverer kravet om e-postbekreftelse
EMAIL_CONFIRMATION_DISABLED=true

## Nginx
# NGINX_WORKER_PROCESSES=4
# NGINX_WORKER_CONNECTIONS=768

## Sett 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": "Kontakt supportteamet ditt", "url": "mailto:support@example.com"}]
OVERLEAF_RIGHT_FOOTER=[{"text":"Hallo, jeg er på høyre side", "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=Dette systemet drives av avdeling x

OVERLEAF_PROXY_LEARN=true
NAV_HIDE_POWERED_BY=true

#################
## OIDC for CE ##
#################

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='Logg inn med Keycloak OIDC-leverandør'
OVERLEAF_OIDC_PROVIDER_NAME=OIDC Keycloak-leverandør
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://ayakaleaf-pro.ayaka.space/on-premises/on-premises-no/konfigurasjon/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.
