Comment sécuriser les appels API vers son Synology?

Bonjour à tous,

Je souhaite utiliser l’API de Surveillance Station sur mon NAS Synology.
J’ai trouvé les commandes intéressantes pour activer/désactiver les notifications des caméras que j’utilise.
L’idée est de désactiver/activer les notifications en fonction de ma présence à mon domicile, la présence ou l’absence est détectée automatiquement par un Nuts (dongle blueetooth) qui se trouve avec les clés de mon domicile, le nuts est lié à l’application Jeedom.

Ce qui me dérange c’est le fait d’utiliser un compte qui doit être membre du groupe Admin de mon NAS Synology pour faire mes appels API.
Les appels API étant passé en claire par des requêtes HTTP, cela revient à donner le login et le mot de passe de mon NAS puisqu’il s’agit d’une authentification HTTP

Ci-dessous les requêtes API :

**Login** : https://MY_IP:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=login&version=1&account=MY_ACCOUNT&passwd=MY_PASSWORD&session=SurveillanceStation
**Active les notifications** : https://MY_IP:5000/webapi/entry.cgi?5=3&api=SYNO.SurveillanceStation.Notification.Filter&version=1&method=Set&eventGroupType=2&eventType=5&filter=1
**Desactive les notifications** : https://MY_IP:5000/webapi/entry.cgi?5=0&api=SYNO.SurveillanceStation.Notification.Filter&version=1&method=Set&eventGroupType=2&eventType=5&filter=1
**Logout** : https://MY_IP:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=logout&version=1&session=SurveillanceStation

Est-il possible de créer un compte avec le moins de privilège possible de manière à modifier des paramètres de Surveillance station, sans avoir à remettre la sécurité du NAS en cause ?

Merci pour vos conseils.

Pourquoi tu passes pas en HTTPS vers ton nas. Après, le risque est faible surtout si tu es en câblé. Change p-e ton Fw devant pour mieux sécurisé ton installation

Il faut payer un certificat pour le passer en HTTPS ?
Comment faire les appels API si il est en HTTPS ?

Au lieu de http, tu mes HTTPS et au lieu du port 5000, tu mets 5001

Ca à l’air gratuit.
Une fois le certificat installé sur le serveur, comment Jeedom fera la requête de login vers le Syno ?
C’est ce point la que je n’arrive pas à comprendre.

Bonjour

Tu mets un certificat autosigné
Ensuite tu as donné dans ton 1er post les requêtes api en https avec les identifiants dedans.
Donc le user password sera visible en clair sur ton jeedom mais sera crypté lors du transfert vers le syno.

Il suffira de mettre https au lieu de http dans ma requete ?
Sinon j’avais pensé peux être faire de l’oauth2 pour solutionner le problème mais c’est peut être overkill ?!

Alors j’ai pas tout compris…

Déjà je comprends pas ton histoire de compte administrateur, chez moi ca fonctionne très bien avec un compte utilisateur dédié. Il faut juste lui donner les droits dans surveillance station. C’est expliqué dans la documentation.

Ensuite dans le plugin tu as l’option de choisir une connection sécurisée, donc si tu as configuré en https, rien ne sera en clair.

J’ai bien fait attention et je te confirme qu’un compte dans Surveillance Station n’est pas suffisant.
Il te permet de te connecter effectivement mais après tu ne peux pas passer les commande, tu as l’erreur code 105 (privilège insuffisant).
Tu utilises surement le compte que tu as pour faire des actions qui ne nécessite pas de droit élevé, mais dans le cas des commandes que j’ai indiqué, il n’y a pas le choix.
C’est pour cela que je ne peux pas requêter en http avec un log/pass d’un compte Admin, c’est n’importe quoi :wink:

D’où mes questions précédentes :

Il suffira de mettre https au lieu de http dans ma requete ?
Sinon j’avais pensé peux être faire de l’oauth2 pour solutionner le problème mais c’est peut être overkill ?!

Suffit de lire :

J’obtiens un code erreur 105 :

l’identifiant n’a pas les droits pour utiliser l’application Surveillance Station (panneau de config / Utilisateur / modifier l’utilisateur / onglet Application / cocher Surveillance Station)

Cette manip à trés bien fonctionné chez moi, j’utilise un compte utilisateur et je lance des requêtes complexes, comme pour stopper ou activer la détection de mouvement…

J’avais déja lu cela et j’ai déja ajouté les droits sur le compte en question :

Mais au final, cela ne fonctionne pas… comme je l’indique, je suis obligé d’ajouter le groupe Admin sur le compte en question pour passer ma requête, sinon c’est erreur 105

Ton compte ne serait pas membre d’autre groupe ? est-ce que tu peux copier/coller les droits que tu lui as donné ? il y a peut être quelque chose qui m’a échappé ?

Alors fait cette manip :

J’obtiens un code erreur 401 :

l’identifiant est sûrement désactivé dans Surveillance Station. Je vous conseil d’utiliser un identifiant unique avec les droits : dossier “surveillance” dans “permissions”, “Surveillance Station” dans “Applications” et un privilège directeur dans Surveillance Station

J’ai fait les deux de paire, c’est peu-être celle là qui m’a débloqué.

Il est bien actif dans Surveillance Station, j’ai ajouté les permission mais cela n’a rien changé, j’ai toujours l’erreur en question.
Tu peux me montré l’ensemble des propriété stp ?







Tu peux me montrer la liste des utilisateur sous surveillance station? Tu as mis groupe et profil mais pas liste.


Qu’est ce que ca dit dans ce que tu as ?

J’ai l’impression que tu as créé des groupes dans surveillance station. Peut être que le problème vient de là. Je n’ai qu’un seul utilisateur et je lui ai donné le privilège directeur. Du coup sur la page profil, il est en « gestionnaire tout objet », alors que toi tu as 0.



je vais le mettre dans le group Gestionnaire tout objet et supprimer le groupe que j’ai créé mais de mémoire cela changer rien, je te dis ca dans 10 minutes le temps de faire l’opéraiton.

Ca change rien…
Question : Est-ce que tu arrives à te connecter avec le compte que tu as créés sur DSM ?
Juste pour être sur que ton compte n’a pas les privilèges DSM.

Dans avancé, tu as çà aussi ?

Quand je me logue avec le compte « API », j’ai pas tous les icones/options alors qu’il a pourtant les privilèges « Directeur »
Si je le mets le compte membre du groupe admin de DSM, je me relogue et j’ai tous les icones/options.
De toute évidence, il faut être dans ce groupe pour avoir les autres options et modifier les options que j’évoque… je vois pas comment tu as pu faire autrement :wink:

Alors oui je peux me connecté à DSM avec ce compte, en tant qu’utilisateur. Pour les screen j’ai la même chose que toi.

Donc si tu te connecte à DSM c’est que ton compte dois être membre du groupe admin.
Tu peux regarder dans la gestion des droits dans DSM pour voir les autorisations du compte et me faire une copie d’écran pour confirmer qu’il est bien membre du groupe admin ?