NPM derrière NTLM proxy

est-il possible d'exécuter npm install derrière un proxy HTTP, qui utilise NTLM authentification? Si oui, comment définir l'adresse et le port du serveur, le nom d'utilisateur et le mot de passe?

62
demandé sur kol 2013-09-02 12:49:14

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 :)
118
répondu kol 2014-08-26 15:23:47

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
8
répondu Toilal 2015-05-07 09:14:07

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
7
répondu Dunken 2014-01-31 10:05:21

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.

7
répondu adhocgeek 2014-08-29 15:10:04

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.

6
répondu genotrance 2016-08-19 20:05:26

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.

4
répondu Rakesh Sharma 2017-04-25 18:06:37
  1. ouvrir votre fichier .npmrc C:\users\username \ folder using notepad
  2. Ajouter les lignes ci-dessous..
  3. remplacer domaine, nom d'utilisateur, pwd, servername avec vos valeurs correctes
  4. Essayez d'installer ou d'obtenir des paquets maintenant
  5. 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
    
3
répondu Sundara Prabu 2018-06-14 03:48:44

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
----------------------------------------------------
0
répondu kausik sen 2018-06-14 03:52:26