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