Respostas:
Bem, eu comecei com este tutorial.
Depois de terminar, fiz as seguintes alterações adicionais no servidor (Windows 2008):
Também é necessário adicionar as seguintes linhas ao .hg\hgrc
arquivo do seu repositório :
No lado do cliente, tive que especificar explicitamente nome de usuário e senha.
[web]
allow_push = *
Se você está procurando algum sistema integrado que possa funcionar no Windows, unix e autenticar no AD / LDAP, experimente o RhodeCode http://rhodecode.com É um tipo de instância local do bitbucket / github que serve repositórios. Ele vem com sistema de permissão e fácil gerenciamento de usuários, revisão de código etc.
Eu escrevi um post de blog em 4 partes há alguns meses atrás, que permite que você use o Active Directory / IIS para hospedar o servidor web da Mercurial. Funciona como um deleite:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
Ele o orienta:
Ben já lhe deu um bom guia para configurar o Mercurial no IIS com o AD.
Gostaria apenas de acrescentar que a principal coisa que você precisa saber é que o script CGI (Rápido) incorporado no Mercurial não autentica usuários . O script CGI que fornecemos depende de um servidor Web front-end para fazer a autenticação. Portanto, você deve configurar o Apache, IIS, nginx, ... para fazer autenticação antes que invoquem o script. (No entanto, você pode usar o excelente RhodeCode se desejar um sistema semelhante ao Bitbucket com suporte a LDAP que também possa ser conectado ao AD.)
Essa separação de preocupações torna o Mercurial muito flexível: se você deseja autenticação do Active Directory, basta usar o plug-in padrão do servidor da Web para fazer isso. Muitos sites já terão essa configuração e, portanto, o Mercurial "funcionará" :-)
Portanto, o Mercurial nunca verifica senhas - a parte de autenticação. Mas pode autorizar , o que significa que pode permitir ou proibir os usuários de empurrar ou puxar, etc. Isso é feito com base no nome de usuário armazenado na variável CGI padrãoREMOTE_USER
. Cabe ao servidor da web definir essa variável após a autenticação do usuário remoto.
No Mercurial, o nome de usuário é comparado com as listas allow_push
e allow_read
na [web]
seção para determinar se o usuário tem permissão para empurrar ou puxar / clonar o repositório em questão. Obviamente, isso pode ser configurado por repositório, editando os .hg\hgrc
arquivos em cada repositório.
Com licença, mas acabei de lançar uma versão alfa do HgLab , que é um Mercurial Server para Windows e suporta autenticação do Active Directory pronta para uso.