Configuration
IziProxy offre plusieurs façons de le configurer pour répondre à vos besoins spécifiques.
Configuration par code
Le moyen le plus direct de configurer IziProxy est via les paramètres du constructeur :
from iziproxy import IziProxy
proxy = IziProxy(
proxy_url="http://proxy.example.com:8080", # URL du proxy (prioritaire)
pac_url="http://internal.example.com/proxy.pac", # URL du fichier PAC
environment="prod", # Forcer un environnement spécifique
username="user", # Nom d'utilisateur pour l'authentification
password="pass", # Mot de passe pour l'authentification
domain="DOMAIN", # Domaine pour l'authentification NTLM
debug=True # Activer les logs détaillés
)
Tous les paramètres sont optionnels. Si vous ne spécifiez pas de proxy_url, IziProxy tentera de détecter automatiquement la configuration de proxy appropriée.
Configuration par fichier YAML
Pour une configuration plus flexible et réutilisable, vous pouvez utiliser un fichier YAML :
proxy = IziProxy(config_path="/chemin/vers/config.yml")
Le fichier de configuration YAML doit être structuré comme suit :
# Configuration des environnements
environments:
local:
proxy_url: null # Pas de proxy pour l'environnement local
requires_auth: false
dev:
proxy_url: "http://dev-proxy.example.com:8080"
requires_auth: true
auth_type: "basic" # Authentification basique
prod:
proxy_url: "http://prod-proxy.example.com:8080"
requires_auth: true
auth_type: "ntlm" # Authentification NTLM
# Configuration de la détection d'environnement
environment_detection:
method: "auto" # auto, env_var, hostname, ip, ask
# Patterns pour la détection par nom d'hôte
hostname_patterns:
local: ["local", "laptop", "desktop", "dev-pc"]
dev: ["dev", "staging", "test", "preprod"]
prod: ["prod", "production"]
# Expressions régulières pour la détection par nom d'hôte
hostname_regex:
local: ["^laptop-\\w+$", "^pc-\\w+$", "^desktop-\\w+$"]
dev: ["^dev\\d*-", "^staging\\d*-", "^test\\d*-"]
prod: ["^prod\\d*-", "^production\\d*-"]
# Plages IP pour la détection par adresse IP
ip_ranges:
local: ["192.168.0.0/24", "127.0.0.1-127.0.0.255"]
dev: ["10.0.0.0/16"]
prod: ["172.16.0.0/16"]
# Configuration de la détection de proxy système
system_proxy:
use_system_proxy: true # Utiliser le proxy système si pas de proxy explicite
detect_pac: true # Détecter et utiliser les fichiers PAC
Emplacement du fichier de configuration
Si vous ne spécifiez pas de chemin de configuration, IziProxy recherchera automatiquement un fichier iziproxy.yml ou iziproxy.yaml dans les emplacements suivants (dans cet ordre) :
Le répertoire courant :
./iziproxy.ymlLe répertoire de configuration utilisateur :
~/.config/iziproxy.ymlLe répertoire personnel de l’utilisateur :
~/.iziproxy.yml
Configuration via variables d’environnement et fichier .env
Pour des raisons de sécurité, les identifiants (nom d’utilisateur, mot de passe, domaine) doivent être configurés via des variables d’environnement ou un fichier .env plutôt que dans le fichier de configuration YAML.
1. Variables d’environnement
IziProxy recherche les variables d’environnement suivantes (en majuscules et minuscules) :
Format recommandé : *
IZI_USERNAME- Nom d’utilisateur pour l’authentification proxy *IZI_PASSWORD- Mot de passe pour l’authentification proxy *IZI_DOMAIN- Domaine pour l’authentification NTLMFormat alternatif (rétrocompatibilité) : *
PROXY_USERNAME- Nom d’utilisateur pour l’authentification proxy *PROXY_PASSWORD- Mot de passe pour l’authentification proxy *PROXY_DOMAIN- Domaine pour l’authentification NTLM
Autres variables d’environnement supportées :
IZIPROXY_ENVouENV- Pour forcer un environnement spécifique (local,dev,prod)Les variables standard de proxy :
HTTP_PROXY,HTTPS_PROXY,NO_PROXY
2. Fichier .env
Vous pouvez également définir ces variables dans un fichier .env :
# Identifiants pour l'authentification proxy
IZI_USERNAME=mon_utilisateur
IZI_PASSWORD=mon_mot_de_passe
IZI_DOMAIN=mon_domaine
Le fichier .env est recherché dans les emplacements suivants (dans cet ordre) :
Dans le répertoire courant (
./.env)Dans le répertoire de configuration utilisateur (
~/.config/.env)Dans le répertoire personnel de l’utilisateur (
~/.env)
Options de configuration détaillées
Environnements
IziProxy supporte différents environnements d’exécution, chacun pouvant avoir sa propre configuration de proxy :
local- Environnement de développement local (souvent sans proxy)dev- Environnement de développement/testprod- Environnement de production
Détection d’environnement
IziProxy peut détecter automatiquement l’environnement actuel en utilisant différentes méthodes :
auto- Utilise toutes les méthodes dans l’ordre (par défaut)env_var- Utilise les variables d’environnementhostname- Détecte en fonction du nom d’hôte de la machineip- Détecte en fonction de l’adresse IPask- Demande interactivement à l’utilisateur
Authentification
IziProxy supporte deux types d’authentification proxy :
basic- Authentification HTTP basiquentlm- Authentification NTLM (Windows)
Stockage des identifiants
Les identifiants sont gérés selon l’ordre de priorité suivant :
Variables d’environnement - Définies dans le système ou via processus parent
Fichier .env - Stockés dans un fichier séparé non inclus dans le contrôle de version
Trousseau système (keyring) - Stockage sécurisé intégré au système d’exploitation
Demande interactive - Si aucune des méthodes ci-dessus n’a fourni les identifiants
Lorsque vous fournissez un mot de passe via une demande interactive ou des variables d’environnement, il est automatiquement enregistré dans le trousseau de clés du système pour les utilisations futures, évitant ainsi d’avoir à le spécifier à chaque fois.