2010-07-29 4 views
1

Je joue avec Mercurial 1.6 sous Apache 2.2.15 sur une machine Windows sous un domaine Windows, fonctionnant comme un serveur repo central sur lequel des personnes sélectionnées auront des autorisations de validation. J'essaie de restreindre l'accès à Mercurial en restreignant l'accès à Apache/cgi-bin/pour sélectionner les utilisateurs via sspi_auth_module.Mercurial, Apache, Windows, mod_auth_sspi et hg push

Si je navigue vers la page de dépôt avec sspi_auth_module appliquant des restrictions sur/cgi-bin/je suis invité à entrer un nom d'utilisateur et un mot de passe, ce qui est accepté et tout fonctionne correctement.

Si je tente d'utiliser la CLI « push hg » pour commettre de mon repo local au serveur, à partir de la ligne de commande, la commande se termine très rapidement avec le message:

abort: authorization failed 

Si je retire/cgi-bin/restrictions, en poussant des travaux.

La section pertinente du httpd.conf: (noms expurgés)

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> 
AllowOverride None 
Options None 
Order allow,deny 
Allow from all 
AuthName "XXXXXX" 
AuthType SSPI 
SSPIAuth On 
SSPIAuthoritative On 
SSPIOmitDomain On 
Require user "xxxxxx" 
</Directory> 

La section pertinente de mon fichier hgweb.config (référentiels stockés dans C:/Hg)

[collections] 
C:/Hg = C:/Hg 

[web] 
allow_push = * 
push_ssl = false 
allow_archive = bz2 gz zip 

Je J'aime laisser le contrôleur de domaine s'inquiéter de l'authentification (pour moi, il vaut mieux que tout le monde mémorise des mots de passe supplémentaires!) - est-ce une approche viable?

Répondre

1

J'ai trouvé une solution. Je pense qu'une partie de la question est que je n'ai pas SSPIDomain spécifié (confondant avec AuthName ... duh)

Quoi qu'il en soit, ce qui suit dans httpd.conf a fait l'affaire: (la directive ScriptAlias ​​était là de le début, BTW)

ScriptAlias /hg "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/hgweb.cgi" 

<Location /hg> 
AuthName "Mercurial Authentication" 
AuthType SSPI 
SSPIAuth On 
SSPIAuthoritative On 
SSPIDomain XXXXXX 
SSPIOmitDomain On  
SSPIOfferBasic On 
SSPIBasicPreferred Off 
Require user "xxxxxx" 
</Location> 

je me suis retiré en tant qu'utilisateur requis, a été invité à entrer le nom d'utilisateur et mot de passe, et n'a pas pu authentifier. Je me suis ensuite ajouté et j'ai pu m'authentifier.

Merci de votre visite!

Questions connexes