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.eupar le vrai domaine de ton GitLab, etoutline.improvize.eupar 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) :
- Admin Area → Applications → New application.
- 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
- ✅
- Name :
- Clique Save application.
- GitLab affiche alors :
- Application ID →
OIDC_CLIENT_ID - Secret →
OIDC_CLIENT_SECRET(affiché une seule fois, note-le tout de suite)
- Application ID →
É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
- Ouvre
https://outline.improvize.eu. - Un bouton « Continue with GitLab » doit apparaître.
- Clique → redirection vers GitLab.
- Connecte-toi avec un compte GitLab (email + mot de passe GitLab).
- (Si l'application n'est pas « Trusted ») écran de consentement → Authorize.
- 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 |
No comments to display
No comments to display