Ga naar hoofdinhoud

SSO & OAuth Configuratie

GovChat-NL ondersteunt Single Sign-On (SSO) via OAuth/OIDC. Dit maakt het mogelijk om gebruikers te laten inloggen met hun bestaande organisatie-account (bijv. Microsoft Entra ID).

Microsoft Entra ID (Azure AD)​

Dit is de meest gebruikte configuratie voor Nederlandse overheidsorganisaties.

Stap 1: App-registratie in Azure​

  1. Ga naar Azure Portal > Microsoft Entra ID > App-registraties
  2. Klik op Nieuwe registratie
  3. Vul in:
    • Naam: GovChat-NL (of je organisatienaam)
    • Ondersteunde accounttypen: Accounts in deze organisatiedirectory
    • Omleidings-URI: https://govchat.jouw-domein.nl/oauth/oidc/callback
  4. Klik op Registreren
  5. Noteer de Application (client) ID en Directory (tenant) ID
  6. Ga naar Certificaten & geheimen > Nieuw clientgeheim > Kopieer de waarde

Stap 2: Omgevingsvariabelen instellen​

# OAuth / Microsoft Entra ID
ENABLE_OAUTH_SIGNUP=true
OAUTH_PROVIDER_NAME=Microsoft
OAUTH_CLIENT_ID=<jouw-client-id>
OAUTH_CLIENT_SECRET=<jouw-client-secret>
OPENID_PROVIDER_URL=https://login.microsoftonline.com/<jouw-tenant-id>/v2.0/.well-known/openid-configuration

# Belangrijk: stel je domein in VOOR de eerste OAuth login
WEBUI_URL=https://jouw-domein.nl

Stap 3: Optionele e-mail claim​

Microsoft Entra ID levert niet altijd automatisch een e-mail claim. Configureer dit via:

  1. Azure Portal > App-registratie > Tokenconfiguratie
  2. Klik op Optionele claim toevoegen
  3. Selecteer ID-token > vink email aan
  4. Sla op
waarschuwing

De redirect URI moet exact overeenkomen in zowel de Azure App-registratie als de WEBUI_URL instelling. Let op https:// vs http:// en trailing slashes.

Alle OAuth/OIDC variabelen​

Verplichte variabelen​

VariabeleBeschrijving
OPENID_PROVIDER_URLURL naar de .well-known/openid-configuration van je provider
OAUTH_CLIENT_IDOAuth client ID
OAUTH_CLIENT_SECRETOAuth client secret
ENABLE_OAUTH_SIGNUPtrue om accountaanmaak via OAuth toe te staan
WEBUI_URLPublieke URL van je GovChat-NL installatie

Optionele variabelen​

VariabeleStandaardBeschrijving
OAUTH_PROVIDER_NAME"SSO"Naam op de login-knop (bijv. "Microsoft")
OAUTH_SCOPES"openid email profile"Scopes die worden aangevraagd
OPENID_REDIRECT_URIAutomatischOverride voor de redirect URI
OAUTH_AUTHORIZE_PARAMS—Extra autorisatieparameters als JSON

Rolbeheer via OAuth​

VariabeleStandaardBeschrijving
ENABLE_OAUTH_ROLE_MANAGEMENTfalseRolbeheer via OAuth claims
OAUTH_ROLES_CLAIM"roles"Claim met gebruikersrollen
OAUTH_ALLOWED_ROLES—Komma-gescheiden rollen die mogen inloggen
OAUTH_ADMIN_ROLES—Rollen met beheerderstoegang

Groepssynchronisatie​

VariabeleStandaardBeschrijving
ENABLE_OAUTH_GROUP_MANAGEMENTfalseGroepssynchronisatie vanuit OAuth
OAUTH_GROUP_CLAIM"groups"Claim met groepslidmaatschappen
ENABLE_OAUTH_GROUP_CREATIONfalseAutomatisch groepen aanmaken
waarschuwing

Zorg dat je reverse proxy de trusted headers altijd strip van inkomende requests voordat eigen waarden worden geïnjecteerd. Anders kan elke gebruiker deze headers vervalsen.

Beveiligingsaanbevelingen​

  1. WEBUI_SECRET_KEY — Stel een vaste secret key in voor productie. Bij multi-instance deployments moet deze identiek zijn op alle nodes.
  2. JWT_EXPIRES_IN — Standaard 4 weken. Stel een passende waarde in (bijv. "7d"). Gebruik nooit -1.
  3. Secrets beheer — Gebruik OAUTH_CLIENT_SECRET_FILE om secrets uit een bestand te laden in plaats van hardcoded in config.
  4. HTTPS — OAuth vereist HTTPS in productie. Zorg voor een geldig SSL-certificaat.