NTLM認証npm install
を使用する HTTP プロキシの背後で実行することはできますか? はいの場合、サーバーのアドレスとポート、ユーザー名、およびパスワードを設定するにはどうすればよいですか?
8 に答える
この方法で解決しました(OS:Windows XP SP3):
1. CNTLMインストーラーをダウンロードして実行します。
2. cntlm.ini でこれらのフィールドを見つけて入力します。このPassword
フィールドには入力しないでください。暗号化されていないパスワードをテキスト ファイルに保存することはお勧めできません。
Username YOUR_USERNAME
Domain YOUR_DOMAIN
Proxy YOUR_PROXY_IP:PORT
Listen 53128
3.コンソールを開き、次のコマンドを入力してパスワード ハッシュを生成します。
> 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 https://registry.npmjs.org
7.これnpm view
で、npm install
などが機能するはずです。例:
> npm view qunit
...nice answer, no errors :)
CNTLM の回答は機能していましたが、接続エラーにより npm が使用できなくなりました。このヘッダーを CNTML に追加して修正しました。
Header Connection: close
もう 1 つの方法は、Cntlm や NTLMAps のように、資格情報を提供することなく、代わりに NTLMを使用するPx for Windowsを使用することです。ログインしたユーザーの資格情報を SSPI 経由で使用します。
npm を使用する必要がある場合は、CNTLM を実行する代わりにFiddlerを実行してみてください。これは、かなりロックダウンされた環境 (投資銀行など) で機能することがわかりました。また、HTTP トラフィックのチェック/作成/変更に非常に役立つため、(必要に応じて) ビジネス ケースを作成するのが非常に簡単なツールでもあります。
スマートパス認証を使用していたため、以前はこのルートに行かなければなりませんでした。つまり、実際にはパスワードがありませんでした。それらの場所で CNTLM をセットアップすることは不可能でした。
CNTLM はうまくいきませんでした。考えられるすべての組み合わせを試しました。NPM で認証エラーが発生していました。Fiddler が助けに来て、私の時間を節約してくれました。インストールと構成は簡単です。Fiddler ルールを自動認証に設定します。.npmrc でこれらを設定します。
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 が他のキャプチャに対して実行する方法には影響しません。
KOLが提案したように、CNTLMは私のために働きました。KOLさん、ありがとうございます。simple を使用するとパスワードが受け入れられない可能性があるため、個々のプロキシにはいくつかの奇妙な点があることを付け加えたいと思いますcntlm -H
。
古い設定を消去した後、以下の設定を使用cntlm -I -M http://test.com
してコピーすれば完了です。
出力は次のようになります
---------------------------------------------------
Auth NTLM
PassNT 8EE9B595A89F7D8774C2146FB302CBCF
PassLM 78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------