Skip to content

Instantly share code, notes, and snippets.

@PiiXiieeS
Forked from erkobridee/npm-ntlm-proxy.md
Created June 14, 2016 00:33
Show Gist options
  • Save PiiXiieeS/70adda681bec78e9adee35cc876860c5 to your computer and use it in GitHub Desktop.
Save PiiXiieeS/70adda681bec78e9adee35cc876860c5 to your computer and use it in GitHub Desktop.
Problema: NPM atrás de um Proxy que utiliza autenticação NTLM

NPM vs NTLM PROXY

O problema: NPM atrás de um Proxy que utiliza autenticação NTLM

Ambiente do problema: Computador com Windows sem acesso administrador

Obs.: mesmo se você for administrador do computador, essa dica resolve o problema de como passar o NTLM Proxy, via linha de comando.


No ambiente de trabalho fui tentar utilizar o NPM (node package manger), do Node.js (versão portable) para baixar algumas dependências para um projeto, porém ao tentar executar a linha de comando de instalação, o npm não conseguiu passar pelo proxy.

Depois de algumas leituras, encontrei uma ISSUE no projeto NPM no GitHub sobre o assunto.

Em resumo, passos que segui para resolver o problema:

1 - Baixar o NtlmMaps

  • proxy local onde se configura o proxy da empresa, definindo as configurações de acesso

  • necessário do Python 2.7 no computador local, caso não tenha, faça o download e instale em um local que tenha acesso no computador e adicione o caminho do diretório do Python no final da variável PATH

1.1 - Configure o NtlmMaps

  • edite o arquivo server.cfg, os items abaixo (mantive a ordem em que aparece no arquivo):

PARENT_PROXY : host do proxy da empresa, sem o "http://"

PARENT_PROXY_PORT : respectiva porta utilizada pelo proxy da empresa

NT_DOMAIN : nome do domínio de rede que a sua empresa utiliza

USER : seu login de rede

PASSWORD : sua senha de rede, porém caso não queria preencher é possível, então quando for executar a aplicação lhe será solicitado a sua senha da rede

NT_PART : o valor padrão deste atributo é 0, porém em algumas redes NTLM precisam dessa informação como no meu caso, então este atributo foi alterado para 1

1.2 - Edite o arquivo : runserver.bat

  • inicialmente ele possui um caminho predefinido do local de instalação do Python, porém como foi feito anteriormente adicionado o Python ao PATH do Windows, basta alterar essa string por: python >> onde a linha ficará: python main.py

1.3 - execute o arquivo : runserver.bat

2 - Pelo terminal de comandos do Windows: cmd.exe, faça as respectivas configurações no npm

Aponta para o proxy local ( NtlmMaps )

npm config set proxy http://localhost:5865

Define o acesso ao repositório de packages via http, lembrando que o padrão é https

npm config set registry "http://registry.npmjs.org/"

3 - Agora o npm irá executar pela linha de comando e irá baixar os pacotes

Obs.: o uso desse NtlmMaps, sendo configurado no git, irá possibilitar o funcionamento do git neste mesmo cenário

pela mensagem é proxy barrando :P tem proxy onde tu tá tentando usar o node?

se sim:

proxy simples?

sim:

tem que configurar no proxy >> npm config set proxy http://USUARIO:SENHA@dominio.empresa.ext:PORTA (normalmente 3128, porta padrão)

além disso é recomendado configurar tb: npm config set registry "http://registry.npmjs.org"

--

não, é um proxy NTLM (corporativo), nesse caso, recomendo usar o CNTLM ( http://cntlm.sourceforge.net/ ) onde nesse vc vai configurar o login, senha e domínio da rede, o qual irá reescrever os pacotes TCP/IP para injetar essas informações no pacote de rede, as quais serão lidas pelo proxy NTLM assim acessando a internet

mas também será necessário configurar o >> npm config set proxy http://localhost:PORTA

e >> npm config set registry "http://registry.npmjs.org"

--

uma dessas duas opções vai resolver o problema do proxy no node e npm o/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment