NTLM 認証を使用するHTTPプロキシの背後で npm install
を実行することは可能ですか?はいの場合、サーバーのアドレスとポート、ユーザー名、およびパスワードをどのように設定できますか?
この方法で解決しました(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 view
、npm install
などが機能するはずです。例:
> npm view qunit
...Nice answer, no errors :)
CNTLMの回答はうまくいきましたが、接続エラーが発生するとnpmが使用できなくなります。このヘッダーをCNTMLに追加して修正しました。
Header Connection: close
もう1つの代替方法は、 Px for Windows を使用することです。これは、CntlmやNTLMApsのように、資格情報を提供せずにNTLMと通信します。ログインユーザーの資格情報をSSPI経由で使用します。
CNTLMを実行するのではなく、npmを使用する必要があるときに Fiddler を実行してみてください。これはかなりロックダウンされた環境(投資銀行など)で機能することがわかりました。また、HTTPトラフィックをチェック/作成/変更するのに非常に貴重であるため、ビジネスケースを作成するのが簡単なツールです(必要な場合)。
スマートパス認証の使用のために、私は以前にこのルートに行かなければなりませんでした-つまり、実際にはパスワードを持っていませんでした。これらの場所では、CNTLMのセットアップは不可能でした。
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の実行方法には影響しません。
パラメーターとして設定を渡すことができます。
npm --proxy=http://username:password@proxyserver:port --proxy-https=http://username:password@proxyserver:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall
.npmrc
ファイルを開きます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
KOLが示唆するように、CNTLMは私のために働きました。 KOLに感謝します。単純なcntlm -H
を使用する場合、パスワードが受け入れられない可能性があるため、個々のプロキシにいくつかの奇妙な点があることを付け加えました。
cntlm -I -M http://test.com
を使用し、古い構成を消去した後、以下の構成をコピーしてください。
出力は次のようになります
---------------------------------------------------
Auth NTLM
PassNT 8EE9B595A89F7D8774C2146FB302CBCF
PassLM 78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------