SSO ne marche pas avec des apps à la racine d'un domaine

Configuration de mon YunoHost

Matériel: Raspberry
Accès Internet: ethernet à la maison
YunoHost version:
yunohost: 3.3.3
yunohost-admin: 3.3.1
moulinette: 3.3.1
ssowat: 3.3.1
As tu modifié ton yunohost avec des configuration spécifiques ou bien utilise tu uniquement la web administration et/ou la ligne de commande yunohost ? basique

Description de mon problème

Sur mon serveur j’ai une demi douzaine d’applications, toutes installées sur des domaines ou sous-domaines dédiés. Les applications des sous-domaines ont le SSO qui fonctionne, mais pas celles des domaines principaux.

J’ai deux exemples : un WordPress et un Nextcloud pour lesquels le SSO ne fonctionnent pas (et ce sont les deux seules applications à la racine d’un domaine).
Mon autre WordPress a le SSO qui fonctionne, ainsi que les autres apps (PHPMyAdmin, Dokuwiki…).

Le seul message d’erreur qui me semble pertinent pour Nextcloud est le suivant :

2018/12/10 23:47:30 [error] 5463#5463: *13272 open() "/var/www/nextcloud/ynhpanel.js" failed (2: No such file or directory), client: 192.168.0.254, server: mon-domaine.con, request: "GET /ynhpanel.js HTTP/1.1", host: "mon-domaine.com"

Pour Wordpress, la mire de connexion me renvoie :

ERROR: No user found in server variables.

Une idée d’où pourrait venir le (ou les…) problème ?

Bonjour, est-ce que tu aurais les logs d’installations de Wordpress et Nextcloud ? Ou si tu ne les as pas, pourrais-tu si tu n’as pas encore trop de données dans ces apps, les réinstaller et nous fournir les logs ?
En web, tu vas dans l’interface Admin, Outils, Logs, Installation de {nom de l’app}, puis “Partager avec yunopaste”

Merci pour ton retour.

Les logs d’install ne sont pas hyper bavards.

Pour Nextcloud:

2018-12-02 13:59:26,037: WARNING - debconf: Impossible d'initialiser l'interface : Dialog
2018-12-02 13:59:26,042: WARNING - debconf: (L'interface dialog ne fonctionnera pas avec un terminal rustique (« dumb »), un tampon shell d'Emacs ou sans terminal de contrôle.)
2018-12-02 13:59:26,044: WARNING - debconf: Utilisation de l'interface Readline en remplacement
2018-12-02 13:59:26,046: WARNING - debconf: Impossible d'initialiser l'interface : Readline
2018-12-02 13:59:26,048: WARNING - debconf: (Cette interface a besoin d'un terminal de contrôle.)
2018-12-02 13:59:26,059: WARNING - debconf: Utilisation de l'interface Teletype en remplacement
2018-12-02 13:59:26,060: WARNING - dpkg-preconfigure: impossible de réouvrir stdin :
2018-12-02 14:01:45,524: WARNING - 2018-12-02 14:01:45 URL:https://codeload.github.com/YunoHost-Apps/yunohost.multimedia/tar.gz/v1.0 [15907] -> "v1.0.tar.gz" [1]
2018-12-02 14:02:02,555: SUCCESS - La configuration de SSOwat a été générée
2018-12-02 14:02:02,557: SUCCESS - Installation terminée

Pour Wordpress

2018-12-09 21:21:59,728: WARNING - Please wait during Wordpress installation
2018-12-09 21:22:00,735: WARNING - 2018-12-09 21:22:00 URL:https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar [5366981/5366981] -> "/var/www/wordpress__3/wp-cli.phar" [1]
2018-12-09 21:22:21,598: WARNING - Warning: This command is deprecated. use wp site switch-language instead
2018-12-09 21:22:58,038: SUCCESS - La configuration de SSOwat a été générée
2018-12-09 21:22:58,040: SUCCESS - Installation terminée

Mes autres Wordpress ont le même log d’install.

J’ai testé dans une VM et je n’arrive pas à reproduire le problème. Je n’ai par contre aucune idée de comment débugger mon problème du coup !

J’ai trouvé l’opération destructive !

Portail sur portail.example.com
Nextcloud sur otherexample.com

Si j’installe nextcloud sur otherexample.com j’ai le SSO.
Si je définis otherexample.com comme domaine par défaut puis que je remets portail.example.com en domaine par défaut, le SSO est pété.

Bigre, j’ai trouvé !

Lorsqu’on modifie de domaine principal pour basculer sur un domaine ayant une appli à la racine, la ligne unprotected_uris: / apparaît dans la configuration de l’application (/etc/yunohost/apps/nextcloud/settings.yml par exemple pour Nextcloud).

Solution : supprimer cette ligne puis lancer.

sudo yunohost app ssowatconf

Pour gérer ce problème faut-il mettre à jour le script de changement de domaine principal ou mettre à jour chacune des apps gérant “mal” ce changement de domaine ?

Je pense que j’ai malheureusement conclu un peu vite.
Il y a bien un problème à l’installation d’une app à la racine d’un domaine. Le SSO fonctionne immédiatement après l’install puis arrête de fonctionner :confounded:

Sur nextcloud, il se trouve que le fichier ynhpanel.js n’est pas accessible lorsque nextcloud est installé à la racine du serveur. Dans les logs réseau le fichier retourne un 404.

J’ai joué avec la conf ssowat mais je n’ai pas trouvé moyen de rendre l’url accessible. Des idées ?

Pour info, j’ai remonté une anomalie sur GitHub.

Merci @djib. J’ai eu exactement le même cas que toi en mettant wordpress à la racine de mon site.

Après la configuration de wordpress à la racine tout était OK, puis quand j’ai eu besoin de me reconnecter au SSO, j’ai eu un message d’erreur.

Vu que le SSO et Wordpress se retrouve tous les deux à la racine du domaine, je pense que ça fait des chocapics. Il faudrait pouvoir mettre le SSO sur une autre URL.

J’ai remis ensuite wordpress sur https://wordpress.domaine.tld. Mais j’avais toujours la page web SSO en KO.

Solution :

sudo yunohost app ssowatconf`