Configuration de l'authentification MLflow

Configuration De L Authentification Mlflow



L'authentification doit être configurée afin de sécuriser l'accès aux expériences, modèles et artefacts sur le serveur MLflow. Une fois activé, chaque utilisateur souhaitant accéder à une ressource hébergée par le serveur MLflow doit se connecter. Étant donné que MLflow n'inclut pas l'authentification intégrée par défaut, il est nécessaire de le configurer pour qu'il fonctionne avec un autre serveur. techniques d'authentification.

Comment activer l'authentification MLflow sur le serveur

Lancez l'interface utilisateur MLflow à l'aide de la commande suivante pour activer l'authentification MLflow :

serveur mlflow --nom-app authentification de base

En redémarrant le serveur sans l'option app-name, l'administrateur du serveur MLflow peut choisir de désactiver cette fonctionnalité à tout moment. Voici une capture d'écran de la commande telle qu'elle s'affiche sur le terminal de ligne de commande du système d'exploitation Windows (ignorez l'avertissement) :









Le serveur MLflow nécessite désormais un nom d'utilisateur et un mot de passe pour accéder aux expériences et aux artefacts du serveur lors d'un accès via un navigateur en saisissant le http://127.0.0.1:5000 comme URL.







Comment configurer l'authentification sur MLflow

Avec quelques modifications mineures dans les instructions, les commandes et les noms des fichiers de configuration, la configuration de l'authentification MLflow sous Windows est très similaire à sa configuration sous Linux.

Voici un tutoriel pour configurer l'authentification MLflow sur Windows en utilisant « htpasswd » et Nginx comme proxy inverse. N'oubliez pas que cette configuration permet une authentification simple et qu'il est crucial de protéger adéquatement l'ordinateur qui exécute MLflow et Nginx pour éviter un accès non autorisé. Envisagez d'utiliser OAuth ou de connecter MLflow à des fournisseurs d'identité externes pour les environnements de production ou des exigences de sécurité plus strictes.



Dans ce tutoriel, nous passerons en revue la configuration de l'authentification de base en utilisant « htpasswd » pour la gestion des utilisateurs/mots de passe et Nginx comme proxy inverse.

Étape 1 : Installer Htpasswd

Bien que « htpasswd » ne soit pas une application Windows native, nous utilisons ici un outil tiers connu sous le nom d’utilitaire htpasswd d’Apache Lounge. Téléchargez-le depuis le site officiel d’Apache Lounge. Voici une capture d'écran démontrant que nous avons « htpasswd.exe » dans le répertoire bin d'Apache après avoir téléchargé le fichier zip et l'avoir extrait dans notre répertoire de travail :

Pour utiliser « htpasswd.exe » à partir de n’importe quelle invite de commande, copiez-le maintenant dans un emplacement du PATH de votre système dans la variable d’environnement.

Étape 2 : Créer un fichier de mots de passe

Pour générer le fichier de mots de passe, ouvrez une invite de commande et accédez à l'emplacement approprié. Utilisez « htpasswd » pour créer ou définir un nouveau fichier de mots de passe ou pour ajouter les utilisateurs à un fichier existant. Chaque ligne du fichier doit avoir un nom d'utilisateur et un mot de passe cryptés. Utilisez la commande suivante pour ajouter de nouvelles informations d'identification pour l'utilisateur ou mettre à jour le mot de passe d'un utilisateur existant :

htpasswd -c /path/to/PASSWORD_FILE_NAME NOM D'UTILISATEUR

Accédez au dossier Python (dans ce cas, le répertoire de travail) et tapez la commande susmentionnée dans le terminal ou la fenêtre d'invite, comme indiqué dans l'extrait suivant. Le fichier de mots de passe, mlflow-authfile, est créé.

Après avoir ajouté le nom d'utilisateur « admin » et appuyé sur la touche « Entrée », le système demande le mot de passe. Après avoir retapé le même mot de passe à l'invite, l'utilisateur est créé avec succès et il apparaît que l'utilisateur a été ajouté avec le mot de passe requis :

Voici une capture d'écran montrant le répertoire dans lequel le fichier de mot de passe nécessaire est créé :

Un nom d'utilisateur et un mot de passe crypté au format « nom d'utilisateur : mot de passe » doivent apparaître sur chaque ligne du fichier.

Étape 3 : Installer et configurer Nginx

Obtenez les binaires Windows de Nginx sur le site officiel. Extrayez le fichier téléchargé dans le répertoire de travail du dossier Nginx :

Créez un nouveau bloc de serveur MLFlow dans Nginx. Créez le répertoire « mlflow-site » en ouvrant une invite de commande dans le répertoire Nginx :

Il est temps de créer dès maintenant un nouveau fichier pour la configuration MLflow. Remplacez le nom de domaine ou l'adresse IP du serveur par l'hôte local. De plus, en utilisant des barres obliques dans le chemin, remplacez D:/Work/Python/mlflow-auth avec le chemin exact du fichier de mots de passe précédemment créé. Remplacez la valeur de proxy_pass par l'URI du serveur MLflow. Les ports sont réglables selon les numéros de port nécessaires.

Voici l'extrait du code à modifier :

Entrez la commande « ipconfig » sur l'invite de commande pour trouver l'adresse IP :

Étape 4 : Activer le blocage du serveur Nginx

Afin d'activer le blocage du serveur Nginx, créez un lien symbolique à l'aide de la commande suivante sur l'invite de commande :

CD D:\Work\nginx\conf\mlflow- site

mklink mlflow D:\Work\nginx\conf\mlflow- site \mlflux

Étape 5 : démarrez Nginx

Entrez la commande « nginx.exe » et accédez au répertoire Nginx pour lancer Nginx à partir d’une invite de commande :

Étape 6 : démarrer le serveur MLflow

À l'aide de la commande suivante, qui inclut le chemin de stockage principal du serveur MLflow, vous pouvez démarrer ou redémarrer le serveur MLflow dans une nouvelle fenêtre de terminal ou une nouvelle invite de commande. Les résultats des expériences, recherches et autres opérations sont stockés sur ce chemin :

Commande pour démarrer le serveur MLflow :

serveur mlflow --hôte 127.0.0.1 --port 5000 --backend-store-uri D:/Work/Python/Stockage

Si, après avoir exécuté la commande susmentionnée, vous voyez l’erreur suivante, ne vous inquiétez pas ; exécutez simplement la commande suivante pour résoudre le problème :

Modifiez le schéma d'URI pour stocker les données du registre de modèles sur le système de fichiers local afin de résoudre l'erreur :

serveur mlflow --hôte 127.0.0.1 --port 5000 --backend-store-uri déposer ///D:/Travail/Python/Stockage

Étape 7 : Accédez à MLflow avec authentification

Désormais, Nginx demandera un nom d'utilisateur et un mot de passe avant d'accorder l'accès au serveur MLflow et à ses artefacts lorsque quelqu'un accède à MLflow via le domaine ou l'adresse IP. Désormais, pour accéder à l'interface utilisateur et à l'API de MLflow, vous devez d'abord fournir un nom d'utilisateur et un mot de passe de connexion lorsque vous utilisez un navigateur Web pour accéder à MLflow.

Conclusion

L'authentification MLflow sous Windows nécessite que MLflow soit effectué derrière un proxy inverse avec l'authentification activée. Dans ce cas, Nginx sert de proxy inverse, agissant comme intermédiaire entre le navigateur de l'utilisateur et le serveur MLflow. Les utilisateurs sont invités à saisir un nom d'utilisateur et un mot de passe avant d'accéder à l'interface utilisateur et à l'API de MLflow en configurant Nginx pour appliquer l'authentification de base.

Dernier point mais non le moindre, pour vous assurer que vous adhérez aux pratiques les plus récentes et sécurisées, il est toujours crucial de consulter la documentation et les ressources les plus récentes pour MLflow et Nginx.