Authentification Synology via script php

Authentification Synology via script php - PHP - Programmation

Marsh Posté le 28-06-2019 à 15:59:01    

Bonjour,
Je galère depuis des heures pour faire un truc qui me paraît tout bête. Sur un NAS Synology, j'ai une appli file station. File station est accessible depuis internet via un reverse proxy en https://file.nomdedomaine.fr, le NAS se trouvant une Livebox (je précise car ça a son importance, la livebox v3 ne gérant pas le loopback même si apparemment, y'aurait une solution que j'ai pas encore testée décrite ici : https://forum.ubuntu-fr.org/viewtopic.php?id=2012531 )
 
Sur mon NAS, dans le web station, j'ai une petite appli web qui est accessible via des comptes utilisateurs (stockés dans une BD Mysql). File station est accessible par des comptes mais locaux au NAS et qui n'ont rien à voir avec mes comptes de l'appli web.
Voulant donner accès au file station de manière transparente à mes utilisateur de l'appli web, je me suis dit : facile, je vais créer un compte générique sur le NAS qui aura accès au file station et sur l'appli web, je vais mettre un lien vers un script php qui se chargera de faire l'authentification (de manière plus ou moins cachée à l'utilisateur) vers file station en utilisant le compte générique.
 
J'ai trouvé l'API de Synology mais quand je veux faire, depuis un script php situé sur le NAS, un appel à l'url https://file.nomdedomaine.fr/webapi [...] format=sid, ça marche pas. Si je remplace https://file.nomdedomaine.fr par https://192.168.1.xx:7001, ça marche. Le problème, c'est qu'après, quand je faire la redirection vers https://file.nomdedomaine.fr, la session n'existe pas puisqu'elle a été créée pour https://192.168.1.xx:7001 :(
 
Connaissez vous une façon de se connecter au file station via un script php et permettre l'affichage de son IHM à l'utilisateur ensuite ?
Merci :)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-06-2019 à 15:59:01   

Reply

Marsh Posté le 28-06-2019 à 22:55:07    

Oui, c'est ça.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-06-2019 à 19:21:42    

Je ne pensais pas que ça serait si compliqué. Je sens venir les ennuis car l'IHM du file station est beaucoup basé sur du javascript :/
Je sens que je vais devoir filer le login/mdp du compte générique à mes users qui se chargeront de se connecter eux-mêmes.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 29-06-2019 à 22:34:41    

J'ai tenté un truc du genre avec une requête ajax en exploitant l'API d'authentification du Synology. Mais le navigateur a détecté une tentative de CSRF et a bloqué la requête sauf si j'arrive à mettre une instruction Access-Control-Allow-Origin: mon_appli.fr sur le file station.
Sauf que je ne vois pas comment faire ça et je doute que modifier à la main le code source du file station soit une bonne idée.
 
Synology fiat des applis relativement bien sécurisées : ce ne sont pas des débutants.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 30-06-2019 à 19:10:07    

En php, j'avais trouvé, mais c'est côté serveur qu'il faut le mettre, pas dans mon script php (j'ai essayé).
Merci pour ton aide, je vais voir si je trouve comment faire ça sur le Synology.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 03-07-2019 à 17:27:39    

C'est bon, j'ai fini par trouver une solution full JS :
1) via window.open() je charge l'url de mon API d'authentification Synology
 
2) avec un settimeout, j'attends x secondes pour laisser le temps à l'API de renvoyer le résultat de l'authentification. Là, je pars du principe que ça a fonctionné. A priori, pas de raison que ça plante vu que c'est moi qui aie fixé le login/mdp. Le settimeout appelle une fonction Login()
 
3) Ma fonction Login() ferme la fenêtre ouverte précédemment puis redirige l'utilisateur sur l'url de mon file station.
 
Et ça marche :) Bon, le seul truc, c'est que l'utilisateur doit valider la première fois l'autorisation des popups.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed