Aller au contenu

Python et synology API, avec double authentification par code OTP

Featured Replies

Posté(e)

Bonjour,

J'ai un problème en utilisant des API python avec la double authentification.
Ça fonctionne très bien sans, mais ça ouvre une grosse faille de vulnérabilité que j'aimerais éviter.

Du coup je me demandais :

    - si il y a un moyen de récupérer le code OTP pour le renseigner automatiquement dans le code python,

    - ou si c'est possible de désactiver la double authentification le temps de lancer le script, et de la réactiver ensuite.

Merci d'avance si quelqu'un a une solution

Modifié par ayam

  • ayam a modifié le titre en Python et synology API, avec double authentification par code OTP
Posté(e)

Je ne sais pas si ça peut t'aider : https://duo.com/docs/authapi-guide

Ne peux-tu pas juste créer un utilisateur dédié pour ton script, avec des credentials robustes et des permissions limitées au strict minimum ?

Posté(e)
  • Auteur
Le 27/09/2023 à 23:31, .Shad. a dit :

Ne peux-tu pas juste créer un utilisateur dédié pour ton script, avec des credentials robustes et des permissions limitées au strict minimum ?

C'est ce que j'ai fais mais ça me pose deux problèmes :

- C'est un utilisateur admin, donc il peut modifier ses permissions

- Bizarrement, bien qu'administrateur, je n'arrivais pas à lui faire exécuter des scripts python en mode root dans le planificateur de tâches.

 

Le 27/09/2023 à 23:31, .Shad. a dit :

Je ne sais pas si ça peut t'aider : https://duo.com/docs/authapi-guide

Je vais regarder, c'est bien possible que ce soit ce qu'il me faut !

Merci .Shad.

Posté(e)
  • Auteur

En fait il y a une solution beaucoup plus simple :

Il suffit d'installer le paquet pyotp.

pip install pyotp

Et ensuite, on l'importe dans le script qui a besoin du code otp, et on le génère dans une variable, à réutiliser pour l'authentification.

(Pour connaitre la clé secrète, c'est au moment d'activer la double authentification, on a le choix entre scanner le QR code, ou enregistrer manuellement avec la clé.)
 

import pyotp

# Clé secrète
secret_key = "XXXXXXX"

# Générer un code OTP
otp = pyotp.TOTP(secret_key)
otp_code = otp.now()

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.