Comme expliqué dans le titre, j’ai un problème a SSOwat (je pense) dans le cadre du packaging et de l’installation d’une API perso.
En effet j’ai développé une API REST perso en PHP basé sur le framework SLIM que je tente d’installer sur yunohost. J’ai d’abord tenté avec une customweb app mais les problèmes liés à la configuration de nginx m’ont poussé à packager moi même l’API.
Je fais donc ça dans un virtualbox sous Yuno 4.0.8.3 où rien d’autre n’est installé.
Je viens donc de réussir à finir l’installation du package (je suis sur que l’appli ne fonctionne pas parce qu’il manque quelques conf de la BDD nottament). Mais j’ai déjà un premier problème : quand je tente d’accéder à mon API avec Postman on me demande de me connecter. Hors l’application à bien les autorisations visiteurs comme expliqué dans la doc.
Voici ce que me retourne Yuno :
C’est précisément pour ce genre de chose qu’on conseille de passer par la custom webapp qui gère aussi la partie config de ssowat pour toi
Ceci dit il est possible de bricoler la conf soi-même, soit en passant par la commande que tu as trouvé, soit en ajoutant à la main des règles dans /etc/ssowat/conf.json.persistent pour dire à ssowat que ton app est publique (genre 'skipped_urls': ['tondomaine.tld/ton_app']) .
Je me doute mais comme j’ai dis je n’ai jamais réussi à la faire fonctionner, même avec l’aide précieuse de tituspijean et bien qu’on y ai passé bcp d’heures…
J’ai tenté toutes les déclinaisons possibles de la commande et ça ne fonctionne pas. Et j’ai aussi ajouter les skipped_urls comme tu m’as proposé mais ça n’y fait rien. J’ai pourtant bien fait un sudo yunohost app ssowatconf pour régénérer SSOwat. J’ai même tenté des unprotected urls mais ça ne fonctionne pas plus…
Dans ce cas tu peux tenter de rajouter "logging": "debug" dans /etc/ssowat/conf.json.persistent, restart nginx et regarder ce que raconte /var/log/nginx/ssowat.log lorsque tu accèdes à ta page
[DEBUG Sat Dec 5 23:25:19 2020] unprotected_url match current uri : pvapptestpackage.local/pvapptest
[DEBUG Sat Dec 5 23:25:19 2020] unprotected_url match current uri : pvapptestpackage.local/pvapptest
[DEBUG Sat Dec 5 23:25:19 2020] Longest skipped :
[DEBUG Sat Dec 5 23:25:19 2020] Longest unprotected : pvapptestpackage.local/pvapptest
[DEBUG Sat Dec 5 23:25:19 2020] Longest protected :
[DEBUG Sat Dec 5 23:25:19 2020] /pvapptest/user is in unprotected_urls
[DEBUG Sat Dec 5 23:25:19 2020] Allowing to pass through /pvapptest/user
[DEBUG Sat Dec 5 23:25:19 2020] Longest skipped :
[DEBUG Sat Dec 5 23:25:19 2020] Longest unprotected :
[DEBUG Sat Dec 5 23:25:19 2020] Longest protected :
[DEBUG Sat Dec 5 23:25:19 2020] No rule found for /index.php. By default, redirecting to portal
[DEBUG Sat Dec 5 23:25:19 2020] Redirecting to https://pvapptestpackage.local/yunohost/sso/?r=aHR0cHM6Ly9wdmFwcHRlc3RwYWNrYWdlLmxvY2FsL2luZGV4LnBocA==
[DEBUG Sat Dec 5 23:25:19 2020] Serving portal uri /yunohost/sso/ (if the corresponding file exists)
J’ai beau essayer d’autres configs sur les URL rien ne fonctionne, je ne dois pas faire ce qu’il faut…
Je comprend pas trop pourquoi elle passe pas. Et même je comprend pas trop c’est que ce index.php vu que le chemin est étrange. S’agit-il de mon pvapptest/public/index.php ? Ou s’agit-il de pvapptest/index.php ? Parce que lui il n’existe pas, il est bien dans public.
J’ai désactivé SSOwat pour voir ce que ça donne et j’ai un 405. Donc y’a effectivement un problème avec nginx qui ne trouve pas ce index.php dans public. Est ce que le problème de SSO pourrait venir de là ? Parce que sinon je vois pas bien ce qu’il bloque puisque nginx ne trouve pas le index.php. Sinon je comprend pas ou est ce qu’il trouve son index.php qui le dérange.
J’ai essayé d’ajouter urls avec index.php dans le conf.json.persistent mais ça ne change rien. J’ai d’ailleurs fini par tout supprimé et j’ai bizarrement exactement les même résultats.