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 (Fast) embutido no Mercurial não autentica os usuários . O script CGI que fornecemos depende de um servidor web front-end para fazer a autenticação. Então você deve configurar o Apache, IIS, nginx, ... para fazer a autenticação antes , eles invocam o script. (No entanto, você pode usar o excelente RhodeCode se quiser um sistema semelhante ao Bitbucket com suporte a LDAP que também possa ser conectado ao AD).
Essa separação de interesses torna o Mercurial muito flexível: se você quiser a autenticação do Active Directory, basta usar o plug-in padrão do seu servidor da Web para fazer isso. Muitos sites já terão essa configuração e assim o Mercurial "apenas funcionará": -)
Portanto, o Mercurial nunca verifica senhas - a parte de autenticação. Mas ele pode fazer autorização , o que significa que pode permitir ou proibir usuários de empurrar ou puxar, etc. Isso é feito com base no nome de usuário armazenado no variável CGI padrão REMOTE_USER
. Cabe ao servidor web definir essa variável depois de autenticar o usuário remoto.
No Mercurial, o nome de usuário é comparado com as listas allow_push
e allow_read
na seção [web]
para determinar se o usuário pode enviar ou copiar / clonar o repositório em questão. Isso pode ser configurado em uma base por repositório, editando os arquivos .hg\hgrc
em cada repositório.