NTLM 프록시 뒤의 NPM
NTLM 인증 npm install
을 사용하는 HTTP 프록시 뒤에서 실행할 수 있습니까? 그렇다면 서버의 주소와 포트, 사용자 이름 및 암호를 어떻게 설정할 수 있습니까?
이 방법으로 해결했습니다 (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. 위의 세 줄을 Domain
필드 줄 아래의 cntlm.ini에 복사합니다 . 한 번 더 Password
필드를 채우지 마십시오 . cntlm.ini를 저장합니다.
5. 서비스 관리자를 열고 (명령 줄에서 : services.msc) "CNTLM 인증 프록시"라는 서비스를 시작합니다.
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
또 다른 대안은 자격 증명을 제공하지 않고도 Cntlm 및 NTLMAps와 같이 사용자를 대신하여 NTLM과 통신하는 Windows 용 Px 를 사용 하는 것입니다. SSPI를 통해 로그인 한 사용자의 자격 증명을 사용합니다.
CNTLM을 실행하는 대신 npm을 사용해야 할 때 Fiddler를 실행 해 볼 수 있습니다. 나는 이것이 상당히 제한된 환경 (예 : 투자 은행)에서 작동한다는 것을 발견했습니다. 또한 HTTP 트래픽을 확인 / 생성 / 변경하는 데 매우 귀중하기 때문에 (필요한 경우) 비즈니스 사례를 만들기가 매우 쉬운 도구입니다.
스마트 패스 인증을 사용하기 때문에 이전에이 경로로 이동해야했습니다. 즉, 실제로 암호가 없었습니다. 이러한 위치에서 CNTLM을 설정하는 것은 불가능했을 것입니다.
설정을 매개 변수로 전달할 수 있습니다.
npm --proxy=http://username:password@proxyserver:port --proxy-https=http://username:password@proxyserver:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall
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 옵션 :
Fiddler를 NTLM 및 기타 프로토콜에 대한 HTTP 프록시로 사용하는 두 번째 방법은 자동 인증 옵션 / 규칙 기본값을 그대로두고 메뉴 모음에서이 설정으로 이동하는 것입니다.
도구> Telerik Fiddler 옵션> 연결 탭
(가)를 클릭하면 연결에 대한 원격 컴퓨터 허용 확인란을. 이 옵션을 활성화 한 결과를 설명하는 대화 상자가 표시됩니다. Fiddler를 다시 시작하고 위에 표시된대로 .npmrc 파일을 업데이트합니다 . 레지스트리 사이트에 액세스하기 위해 npm이 필요할 때마다 Fiddler를 실행하십시오. 이 설정은 다른 캡처를 위해 Fiddler가 실행되는 방식에 영향을주지 않습니다.
.npmrc
메모장을 사용하여 C : \ users \ username \ 폴더에서 파일을 엽니 다 .- 아래 줄을 추가하세요 ..
- domain, username, pwd, servername을 올바른 값으로 바꿉니다.
- Try to install or get packages now
If trying from Vs2017, close and reopen VS IDE, then only it works
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
CNTLM worked for me as suggested by KOL. Thanks KOL for that. Just wanted to add that there are some oddities in individual proxies because of which the password may not be acceptable when using simple cntlm -H
.
Use cntlm -I -M http://test.com
and copy the below config after erasing older configs and you should be through.
The output is like
---------------------------------------------------
Auth NTLM
PassNT 8EE9B595A89F7D8774C2146FB302CBCF
PassLM 78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------
참고URL : https://stackoverflow.com/questions/18569054/npm-behind-ntlm-proxy
'Development Tip' 카테고리의 다른 글
jquery로 div 하단 위치 찾기 (0) | 2020.11.19 |
---|---|
Python에서 한 줄의 csv 데이터를 읽는 방법은 무엇입니까? (0) | 2020.11.19 |
사용할 때 select2에서 선택한 텍스트를 얻는 방법 (0) | 2020.11.19 |
C ++ 참조-단지 구문상의 설탕일까요? (0) | 2020.11.19 |
대규모 프로젝트에는 PHP가 없습니까? (0) | 2020.11.19 |