Skip to main content

Nouvelle page

Connecter Outline à GitLab auto-hébergé (OIDC)

Objectif

Utiliser le GitLab interne de l'entreprise comme fournisseur d'identité. Les comptes
(email + mot de passe) sont gérés dans GitLab, et Outline délègue la connexion à GitLab.
Aucune dépendance externe — seulement Outline + GitLab.

Remplace partout gitlab.improvize.eu par le vrai domaine de ton GitLab, et
outline.improvize.eu par celui d'Outline.

Pré-requis : HTTPS d'Outline fonctionnel (https://outline.improvize.eu affiche la
page de connexion, sans boucle de redirection).


Étape 1 — Créer l'application OIDC dans GitLab

En tant qu'administrateur GitLab (pour que tous les comptes puissent se connecter) :

  1. Admin AreaApplicationsNew application.
  2. Renseigne :
    • Name : Outline
    • Redirect URI (à copier exactement, en https://, sans slash en trop) :
      https://outline.improvize.eu/auth/oidc.callback
      

    • Confidential : ✅ coché
    • Trusted : ✅ coché (recommandé — évite l'écran de consentement à chaque user)
    • Scopes : cocher uniquement
      • openid
      • profile
      • email
  3. Clique Save application.
  4. GitLab affiche alors :
    • Application IDOIDC_CLIENT_ID
    • SecretOIDC_CLIENT_SECRET (affiché une seule fois, note-le tout de suite)

Étape 2 — Configurer Outline

Édite le fichier .env d'Outline :

sudo -u outline -i
cd /opt/outline/app
nano .env

Ajoute (ou complète) le bloc OIDC :

OIDC_CLIENT_ID=colle_ici_application_id
OIDC_CLIENT_SECRET=colle_ici_le_secret
OIDC_AUTH_URI=https://gitlab.improvize.eu/oauth/authorize
OIDC_TOKEN_URI=https://gitlab.improvize.eu/oauth/token
OIDC_USERINFO_URI=https://gitlab.improvize.eu/oauth/userinfo
OIDC_USERNAME_CLAIM=preferred_username
OIDC_DISPLAY_NAME=GitLab
OIDC_SCOPES=openid profile email

Vérifie que ces lignes sont correctes et qu'aucun ancien bloc Google ne traîne :

URL=https://outline.improvize.eu
FORCE_HTTPS=true

# Repère d'éventuels restes de config Google à supprimer
grep -n GOOGLE .env

Sauvegarde, puis sors de la session :

exit


Étape 3 — Redémarrer Outline

sudo systemctl restart outline
sudo journalctl -u outline -f

Laisse les logs ouverts pour voir les erreurs éventuelles en direct.


Étape 4 — Tester la connexion

  1. Ouvre https://outline.improvize.eu.
  2. Un bouton « Continue with GitLab » doit apparaître.
  3. Clique → redirection vers GitLab.
  4. Connecte-toi avec un compte GitLab (email + mot de passe GitLab).
  5. (Si l'application n'est pas « Trusted ») écran de consentement → Authorize.
  6. Retour automatique sur Outline, connecté. ✅

Le premier utilisateur qui se connecte devient automatiquement administrateur
de l'espace Outline. Connecte-toi en premier avec ton compte.


Gestion des accès au quotidien

  • Donner accès à Outline = la personne a besoin d'un compte sur le GitLab interne.
  • Retirer un accès = désactiver / supprimer le compte côté GitLab.
  • Plus aucun mot de passe à gérer dans Outline : tout passe par GitLab.

Dépannage

Pendant la tentative de connexion, surveille sudo journalctl -u outline -f.

Symptôme Cause probable Correctif
redirect_uri_mismatchcôté GitLab Redirect URI non identique au caractère près Recopier exactement https://outline.improvize.eu/auth/oidc.callbackdans l'app GitLab
Pas de bouton « Continue with GitLab » Bloc OIDC_*mal chargé Vérifier .env puis systemctl restart outline
Erreur de certificat dans les logs GitLab en HTTPS auto-signé GitLab doit avoir un certificat valide (Let's Encrypt)
invalid_scope Scopes manquants dans l'app GitLab Cocher openid, profile, email
Boucle de redirection 301 X-Forwarded-Proto: https non transmis par le reverse proxy Ajouter l'en-tête sur le proxy qui termine le HTTPS

Référence — Endpoints

Élément Valeur
Authorize https://gitlab.improvize.eu/oauth/authorize
Token https://gitlab.improvize.eu/oauth/token
UserInfo https://gitlab.improvize.eu/oauth/userinfo
Callback Outline https://outline.improvize.eu/auth/oidc.callback
Discovery GitLab https://gitlab.improvize.eu/.well-known/openid-configuration