it-swarm.com.de

NPM hinter NTLM-Proxy

Ist es möglich, npm install hinter einem HTTP-Proxy auszuführen, der NTLM authentication verwendet? Wenn ja, wie kann ich die Adresse und den Port des Servers, den Benutzernamen und das Passwort festlegen?

64
kol

Ich habe es so gelöst (OS: Windows XP SP3):

1. Laden Sie CNTLM installer herunter und führen Sie es aus. 

2. Suchen und füllen Sie diese Felder in der cntlm.ini. Füllen Sie nicht das Feld Password aus. Es ist nie ratsam, unverschlüsselte Kennwörter in Textdateien zu speichern.

Username    YOUR_USERNAME
Domain      YOUR_DOMAIN
Proxy       YOUR_PROXY_IP:PORT
Listen      53128

3. Öffnen Sie die Konsole und geben Sie diese Befehle ein, um Kennwort-Hashes zu generieren.

> cd c:\the_install_directory_of_cntlm
> cntlm -H
Password: ...type proxy password here...
PassLM          D6888AC8AE0EEE294D954420463215AE
PassNT          0E1FAED265D32EBBFB15F410D27994B2
PassNTLMv2      91E810C86B3FD1BD14342F945ED42CD6

4. Kopieren Sie die obigen drei Zeilen in die cntlm.ini unter der Zeile Domain. Füllen Sie das Feld Password erneut nicht aus. Speichern Sie cntlm.ini.

5. Öffnen Sie den Service Manager (über die Befehlszeile: services.msc) und starten Sie den Dienst "CNTLM Authentication Proxy".

6. Geben Sie in der Konsole folgende Zeilen ein:

> npm config set proxy http://localhost:53128
> npm config set https-proxy http://localhost:53128
> npm config set registry http://registry.npmjs.org

7. Nun sollte npm view, npm install usw. funktionieren. Beispiel:

> npm view qunit
...Nice answer, no errors :)
124
kol

Die CNTLM-Antwort funktionierte für mich, aber bei Verbindungsfehlern ist npm unbrauchbar. Ich habe sie durch Hinzufügen dieses Headers in CNTML behoben.

Header      Connection: close
10
Toilal

Eine andere Alternative ist die Verwendung von Px für Windows , das NTLM in Ihrem Namen wie Cntlm und NTLMAps spricht, ohne Ihre Anmeldeinformationen angeben zu müssen. Es verwendet die Anmeldeinformationen des angemeldeten Benutzers über SSPI.

8
genotrance

Anstatt CNTLM auszuführen, können Sie stattdessen versuchen, Fiddler auszuführen, wenn Sie npm verwenden müssen. Ich habe festgestellt, dass dies in ziemlich abgesperrten Umgebungen funktioniert (z. B. Investmentbanken). Es ist auch ein Tool, das recht einfach ein Business Case zu erstellen ist (falls erforderlich), da es für das Überprüfen/Erstellen/Ändern von HTTP-Verkehr von unschätzbarem Wert ist.

Ich musste diesen Weg zuvor durch die Verwendung der Smartpass-Authentifizierung gehen - d. H. Wir hatten eigentlich keine Passwörter. An diesen Standorten wäre die Einrichtung von CNTLM nicht möglich gewesen.

7
adhocgeek

Sie können die Einstellungen als Parameter übergeben:

npm --proxy=http://username:[email protected]:port --proxy-https=http://username:[email protected]:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall
6
Dunken

CNTLM hat für mich nicht funktioniert. Ich habe alle möglichen Kombinationen ausprobiert. NPM gab Authentifizierungsfehler aus. Der Fiedler kam zur Rettung und sparte meine Zeit. Es ist einfach zu installieren und zu konfigurieren. Setzen Sie die Fiddler-Regel auf Automatisch authentifiziert. In .npmrc legen Sie diese fest

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

Es hat für mich funktioniert :)

Eine weitere Fiddler-Option:

Eine zweite Möglichkeit, Fiddler als HTTP-Proxy für NTLM und andere Protokolle zu verwenden, besteht darin, die Standardwerte für die Option "Auto-Authentifizierungsoptionen/Regeln" beizubehalten und diese Einstellung über die Menüleiste aufzurufen:

Extras> Telerik-Fiddler-Optionen> Registerkarte Verbindungen

Klicken Sie auf das Kontrollkästchen Remotecomputer zulassen. In einem Dialog werden die Folgen der Aktivierung dieser Option erläutert. Starten Sie Fiddler neu und aktualisieren Sie die Datei .npmrc wie oben gezeigt. Wenn Sie npm für den Zugriff auf die Registrierungswebsite benötigen, führen Sie einfach Fiddler aus. Diese Einstellung hat keinen Einfluss auf die Art und Weise, wie Fiddler für andere Captures läuft.

4
Rakesh Sharma
  1. Öffnen Sie Ihre .npmrc-Datei im Ordner C:\Benutzer\Benutzername\mit dem Editor
  2. Fügen Sie die folgenden Zeilen hinzu .. 
  3. Ersetzen Sie Domäne, Benutzername, Kennwort und Servername durch Ihre korrekten Werte
  4. Versuchen Sie jetzt, Pakete zu installieren oder zu erhalten
  5. Wenn Sie versuchen, aus VS2017 VS IDE zu schließen und erneut zu öffnen, funktioniert es nur

    proxy=http://DOMAIN%5CUSERNAME:[email protected]:6050   
    https-proxy=http://DOMAIN%5CUSERNAME:[email protected]:6050  
    http-proxy=http://DOMAIN%5CUSERNAME:[email protected]:6050   
    strict-ssl=false
    
3
Sundara Prabu

CNTLM arbeitete für mich, wie von KOL vorgeschlagen. Danke KOL dafür. Ich wollte nur hinzufügen, dass es in den einzelnen Proxys einige Merkwürdigkeiten gibt, weshalb das Passwort bei Verwendung von einfachem cntlm -H nicht akzeptabel ist.

Verwenden Sie cntlm -I -M http://test.com und kopieren Sie die unten stehende Konfiguration, nachdem Sie ältere Konfigurationen gelöscht haben, und Sie sollten fertig sein.

Die Ausgabe ist wie 

---------------------------------------------------
Auth            NTLM
PassNT          8EE9B595A89F7D8774C2146FB302CBCF
PassLM          78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------
0
kausik sen