NPM derrière NTLM proxy
8 réponses
Je l'ai résolu de cette façon (OS: Windows XP SP3):
1. télécharger CNTLM installer et exécuter.
2. Trouver et remplir ces champs dans cntlm.ini. ne remplissez pas le champ Password
, ce n'est jamais une bonne idée de stocker des mots de passe non chiffrés dans des fichiers texte.
Username YOUR_USERNAME
Domain YOUR_DOMAIN
Proxy YOUR_PROXY_IP:PORT
Listen 53128
3. Ouvrez la console et tapez ces commandes pour générer des mots de passe.
> cd c:\the_install_directory_of_cntlm
> cntlm -H
Password: ...type proxy password here...
PassLM D6888AC8AE0EEE294D954420463215AE
PassNT 0E1FAED265D32EBBFB15F410D27994B2
PassNTLMv2 91E810C86B3FD1BD14342F945ED42CD6
4. Copier les trois lignes ci-dessus dans cntlm.ini, sous la ligne du champ Domain
. une fois de plus, ne remplissez pas le champ Password
. Enregistrer cntlm.ini.
5. ouvrir le Gestionnaire de Service (de la ligne de commande: services.msc), et démarrer le service appelé "Cntlm Authentication Proxy".
6. dans la console, tapez ces lignes:
> npm config set proxy http://localhost:53128
> npm config set https-proxy http://localhost:53128
> npm config set registry http://registry.npmjs.org
7. Maintenant npm view
, npm install
etc. devrait fonctionner. Exemple:
> npm view qunit
...nice answer, no errors :)
CNTLM réponse a été de travailler pour moi, mais avec des erreurs de connexion à faire mnp inutilisable. Je les ai corrigés en ajoutant cet en-tête dans CNTML.
Header Connection: close
vous pouvez passer les paramètres comme paramètres:
npm --proxy=http://username:password@proxyserver:port --proxy-https=http://username:password@proxyserver:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall
plutôt que D'exécuter CNTLM, vous pouvez essayer d'exécuter Fiddler quand vous avez besoin d'utiliser npm. J'ai trouvé cela fonctionne assez verrouillé environnements (par exemple, les banques d'investissement). C'est aussi un outil qui est assez facile à faire une analyse de rentabilisation pour (si vous en avez besoin) puisqu'il est inestimable pour vérifier/créer/modifier le trafic HTTP.
j'ai dû emprunter cette voie auparavant en raison de l'utilisation de l'authentification smartpass - c.-à-d. que nous n'avions pas réellement les mots de passe. À ces endroits, la mise en place de CNTLM aurait été impossible.
une autre alternative est d'utiliser Px for Windows qui parle NTLM en votre nom comme Cntlm et NTLMAps sans avoir à fournir vos justificatifs d'identité. Il utilise les informations d'identification de l'utilisateur via SSPI.
CNTLM n'a pas fonctionné pour moi. J'ai essayé toutes les combinaisons possibles. NPM donnait une erreur D'authentification. Fiddler est venu me sauver et m'a fait gagner du temps. Il est facile à installer et à configurer. Définir la règle Fiddler pour L'authentifier automatiquement.In .npmrrc set these
registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false
Il a travaillé pour moi :)
Une Autre Option Fiddler:
une seconde façon de faire agir Fiddler comme mandataire HTTP pour NTLM et autres les protocoles doivent laisser les options d'authentification automatique / règles par défaut en place et aller à ce paramètre à partir de la barre de menu:
Outils > Telerik Fiddler Options > onglet Connexions
cliquez sur le pour permettre aux ordinateurs distants de se connecter à la case à cocher . Vous verrez un dialogue expliquant les conséquences de l'activation de cette option. Redémarrez Fiddler et mettez à jour le .npmrc fichier comme indiqué ci-dessus. Chaque fois que vous avez besoin de mnp à accédez au site d'enregistrement juste run Fiddler. Ce paramètre n'affectera pas la façon dont Fiddler exécute les autres captures.
- ouvrir votre fichier
.npmrc
C:\users\username \ folder using notepad - Ajouter les lignes ci-dessous..
- remplacer domaine, nom d'utilisateur, pwd, servername avec vos valeurs correctes
- Essayez d'installer ou d'obtenir des paquets maintenant
-
Si vous essayez de Vs2017, de fermer et de rouvrir VS IDE, alors seulement il fonctionne
proxy=http://DOMAIN%5CUSERNAME:PWD@proxy.servername.com:6050 https-proxy=http://DOMAIN%5CUSERNAME:PWD@proxy.servername.com:6050 http-proxy=http://DOMAIN%5CUSERNAME:PWD@proxy.servername.com:6050 strict-ssl=false
CNTLM a fonctionné pour moi comme suggéré par KOL. Merci KOL pour ça. Je voulais juste ajouter qu'il y a quelques bizarreries dans les procurations individuelles à cause desquelles le mot de passe peut ne pas être acceptable en utilisant le simple cntlm -H
.
utilisez cntlm -I -M http://test.com
et copiez la configuration ci-dessous après avoir effacé les anciennes configurations et vous devriez être à travers.
la sortie est comme
---------------------------------------------------
Auth NTLM
PassNT 8EE9B595A89F7D8774C2146FB302CBCF
PassLM 78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------