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) : 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 Clique Save application . GitLab affiche alors : Application ID → OIDC_CLIENT_ID Secret → OIDC_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 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_mismatch côté GitLab Redirect URI non identique au caractère près Recopier exactement https://outline.improvize.eu/auth/oidc.callback dans 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