Migration depuis CNTLM
Cette section explique comment migrer d’un proxy CNTLM vers IziProxy.
Qu’est-ce que CNTLM ?
CNTLM (Cntlm Authentication Proxy) est un proxy d’authentification populaire qui agit comme un intermédiaire entre vos applications et un proxy d’entreprise, en particulier ceux qui nécessitent une authentification NTLM.
Bien que CNTLM soit efficace, il présente plusieurs inconvénients :
Nécessite une installation et une configuration séparées
Exécute un processus distinct sur votre machine
Configuration complexe dans certains environnements
Gestion des mots de passe moins sécurisée
Nécessite des droits administrateur pour l’installation
Avantages d’IziProxy par rapport à CNTLM
IziProxy offre plusieurs avantages par rapport à CNTLM :
Intégration native en Python - Aucun processus ou service externe à exécuter
Configuration automatique - Détection automatique de l’environnement et du proxy
Gestion sécurisée des identifiants - Utilisation de keyring pour stocker les mots de passe
Portable - Fonctionne sur toutes les plateformes sans installation système
Facile à utiliser - API simple et intuitive
Compatible avec requests - Intégration transparente avec la bibliothèque requests
Guide de migration étape par étape
Voici comment migrer de CNTLM vers IziProxy :
Étape 1 : Installer IziProxy
Commencez par installer IziProxy avec le support NTLM :
pip install iziproxy[ntlm]
Étape 2 : Récupérer les informations de CNTLM
Récupérez les informations de votre configuration CNTLM actuelle, généralement dans /etc/cntlm.conf (Linux/macOS) ou C:\\Program Files\\Cntlm\\cntlm.ini (Windows) :
Nom d’utilisateur et domaine
URL du proxy d’entreprise
Port local utilisé par CNTLM
Étape 3 : Configurer IziProxy
Créez un fichier iziproxy.yml dans votre projet ou dans ~/.config/ :
environments:
# Reprenez la configuration de votre CNTLM
dev:
proxy_url: "http://proxy.entreprise.com:8080" # URL du proxy d'entreprise
requires_auth: true
auth_type: "ntlm"
credentials:
store_method: "keyring"
username: "DOMAIN\\utilisateur" # Comme dans cntlm.conf
domain: "DOMAIN" # Si utilisé dans CNTLM
prompt_on_missing: true
Étape 4 : Adapter votre code
Remplacez les références au proxy CNTLM local par IziProxy :
Avant (avec CNTLM) :
import requests
# Configuration pour utiliser CNTLM en local
proxies = {
'http': 'http://localhost:3128',
'https': 'http://localhost:3128'
}
# Utilisation avec requests
response = requests.get('https://example.com', proxies=proxies)
Après (avec IziProxy) :
from iziproxy import IziProxy
# Détection et configuration automatiques
proxy = IziProxy()
# Méthode 1 : Utiliser une session
session = proxy.create_session()
response = session.get('https://example.com')
# Méthode 2 : Utiliser un dictionnaire de proxy
proxies = proxy.get_proxy_dict()
response = requests.get('https://example.com', proxies=proxies)
Étape 5 : Arrêter CNTLM (optionnel)
Une fois que vous avez vérifié qu’IziProxy fonctionne correctement, vous pouvez arrêter et désinstaller CNTLM :
Sur Linux :
sudo service cntlm stop
sudo systemctl disable cntlm
Sur Windows :
Ouvrez les Services (services.msc)
Trouvez le service CNTLM
Arrêtez-le et définissez son démarrage sur « Manuel » ou « Désactivé »
Différences d’utilisation
Voici quelques différences clés à prendre en compte lors de la migration :
Proxy local vs proxy distant - CNTLM crée un proxy local, tandis qu’IziProxy communique directement avec le proxy d’entreprise
Configuration globale vs par application - CNTLM affecte toutes les applications, tandis qu’IziProxy est spécifique à votre application Python
Variables d’environnement - Si vous avez d’autres applications qui utilisent les variables d’environnement, utilisez proxy.set_environment_variables()
Compatibilité avec les applications existantes
Pour les applications qui ne peuvent pas être modifiées pour utiliser IziProxy directement, vous pouvez :
Utiliser
proxy.set_environment_variables()pour configurer les variables d’environnement HTTP_PROXY, etc.Développer un petit script qui démarre votre application avec les variables d’environnement correctement configurées