web-dev-qa-db-ja.com

NTLMプロキシの背後にあるNPM

NTLM 認証を使用するHTTPプロキシの背後で npm install を実行することは可能ですか?はいの場合、サーバーのアドレスとポート、ユーザー名、およびパスワードをどのように設定できますか?

64
kol

この方法で解決しました(OS:Windows XP SP3):

1。ダウンロード CNTLM インストーラーを実行します。

2。 cntlm.iniのこれらのフィールドを検索して入力します。 Passwordフィールドには入力しないでください。暗号化されていないパスワードをテキストファイルに保存することはお勧めできません。

Username    YOUR_USERNAME
Domain      YOUR_DOMAIN
Proxy       YOUR_PROXY_IP:PORT
Listen      53128

コンソールを開き、これらのコマンドを入力してパスワードハッシュを生成します。

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

4。上記の3行をcntlm.iniのDomainフィールドの行の下にコピーします。 これ以上、Passwordフィールドに入力しないでください。cntlm.iniを保存します。

5。サービスマネージャーを開き(コマンドライン:services.mscから)、「CNTLM Authentication Proxy」というサービスを開始します。

6。コンソールで、次の行を入力します。

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

7。これでnpm viewnpm installなどが機能するはずです。例:

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

CNTLMの回答はうまくいきましたが、接続エラーが発生するとnpmが使用できなくなります。このヘッダーをCNTMLに追加して修正しました。

Header      Connection: close
11
Toilal

もう1つの代替方法は、 Px for Windows を使用することです。これは、CntlmやNTLMApsのように、資格情報を提供せずにNTLMと通信します。ログインユーザーの資格情報をSSPI経由で使用します。

9
genotrance

CNTLMを実行するのではなく、npmを使用する必要があるときに Fiddler を実行してみてください。これはかなりロックダウンされた環境(投資銀行など)で機能することがわかりました。また、HTTPトラフィックをチェック/作成/変更するのに非常に貴重であるため、ビジネスケースを作成するのが簡単なツールです(必要な場合)。

スマートパス認証の使用のために、私は以前にこのルートに行かなければなりませんでした-つまり、実際にはパスワードを持っていませんでした。これらの場所では、CNTLMのセットアップは不可能でした。

8
adhocgeek

CNTLMはうまくいきませんでした。すべての可能な組み合わせを試しました。 NPMは認証エラーを出していました。フィドラーは救助のために来て、私の時間を節約しました。インストールと構成は簡単です。 Fiddlerルールを自動認証に設定します。

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

それは私のために働いた:)

別のフィドラーオプション:

FiddlerをNTLMおよびその他のプロトコルのHTTPプロキシとして機能させる2番目の方法は、自動認証オプション/ルールのデフォルトをそのままにして、メニューバーからこの設定に移動することです。

ツール> Telerik Fiddlerオプション>接続タブ

リモートコンピュータの接続を許可するチェックボックスをクリックします。このオプションを有効にした場合の結果を説明するダイアログが表示されます。 Fiddlerを再起動し、上記のように。npmrcファイルを更新します。レジストリサイトにアクセスするためにnpmが必要な場合は、Fiddlerを実行するだけです。この設定は、他のキャプチャに対するFiddlerの実行方法には影響しません。

5
Rakesh Sharma

パラメーターとして設定を渡すことができます。

npm --proxy=http://username:password@proxyserver:port --proxy-https=http://username:password@proxyserver:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall
5
Dunken
  1. メモ帳を使用してC:\ users\username \フォルダーにある.npmrcファイルを開きます
  2. 以下の行を追加します。
  3. ドメイン、ユーザー名、pwd、サーバー名を正しい値に置き換えます
  4. 今すぐパッケージをインストールまたは取得してみてください
  5. Vs2017から試行する場合、VS IDEを閉じてから再度開くと、それだけが機能します

    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
    
4
Sundara Prabu

KOLが示唆するように、CNTLMは私のために働きました。 KOLに感謝します。単純なcntlm -Hを使用する場合、パスワードが受け入れられない可能性があるため、個々のプロキシにいくつかの奇妙な点があることを付け加えました。

cntlm -I -M http://test.comを使用し、古い構成を消去した後、以下の構成をコピーしてください。

出力は次のようになります

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