Configuaration nginx de SSOwat

Bonjour, en gros j’essaie d’exécuter un script php depuis le SSO, avec un requête post, seulement la configuration nginx du SSO m’en empêche.

En ne touchant à rien je suis redirigé sur le portail sans executer le script. J’ai essayé de modifier access.lua : 7. Specific files (used in YunoHost) avait l’air parfait pour moi. J’ai donc rajouter ici le code suivant:

if string.match(ngx.var.uri, "^/fichier.php$") then
    hlp.serve("/yunohost/sso/fichier.php")
end 

Là le fichier m’est affiché mais sans faire passer la requête. Si je remplace par return hlp.pass() c’est 404 et juste hlp.pass() me renvoi 302 Not found.

J’ai ensuite essayé d’ajouter manuellement l’adresse dans /etc/ssowat/conf.json en mettant “domain.com/fichier.php” dans les skipped / unprotected urls ce qui renvoi immédiatement 500 Internal Server Error.

Donc là je suis à court d’idée, si des pro de nginx pouvaient me donner un coup de main… :wink:
Des idées @Moul, @opi, @kload, @jerome ? :slight_smile:

Merci d’avance!

Si c’est pour un installation par remplissage automatique des champs tu peux regarder :

Merci Moul, mais non justement c’est indépendant d’une app, plutôt un tweak du SSO. Mais mon remplacement manuel dans conf.json devrait être équivalent non ? J’ai l’impression qu’il n’accepte pas les urls renvoyant à un fichier.

On est au moins trois à avoir essayé et echoué à se connecter au SSO avec curl.
J’ai ouvert un ticket à ce sujet.

1 Like

Ok cool, c’est vrai que c’est chaud d’avancer avec le sso en lua, même s’il est super bien fait. Mais mon problème n’est pas avec une authentification: à chaque fois que je pointe vers mon fichier php qui est dans /usr/share/ssowat/portal/ la requête est redirigée vers le portail, à cause des règles qui sont dans access.lua. Si mon fichier est autre part, comme dans une custom webapp par exemple là c’est nickel.

J’essaye donc de créer une exception pour qu’il me laisse accéder à mon fichier, même si dans l’url il y a /yunohost/sso/. Peut-être qu’a un moment ça va marcher mais pour l’instant j’ai essayé

if hlp.string.ends(“file.php”) then return hlp.edit_user()

ce qui ne marche même pas… Aussi essayé avec redirect et l’adresse directe du fichier mais je crois que la condition dans le if n’est pas vérifiée.

Je suis toujours redirigé sur le portail, donc si quelqu’un aurait une piste pour faire l’exception… Et faut-il s’occuper du corps de la requête ?

Merci :slight_smile: