2009-01-14 5 views
0

Le problème concerne les paramètres de sécurité du référentiel Subversion diffusé via le serveur Web Apache. J'utilise l'authentification basée sur le chemin pour protéger certaines informations de l'entreprise des collaborateurs externes. J'ai besoin de quelque chose qui teste que l'autorisation est donnée aux gens que je veux, c'est-à-dire que je dois vérifier que je n'ai pas fait d'erreurs dans la configuration.Comment tester que j'ai configuré l'autorisation basée sur le chemin Subversion dans le bon sens?

Il existe un moyen simple de tester ceci: simuler l'accès à la ressource en utilisant le nom d'utilisateur et le mot de passe des utilisateurs. Mais cette méthode nécessite de connaître le mot de passe des utilisateurs. Par exemple, le script BASH suivant teste l'autorisation de chaque utilisateur sur un chemin spécifié ($ url). Note: le fichier users-files.txt contient le nom d'utilisateur et le mot de passe des utilisateurs sous la forme "nom d'utilisateur: mot de passe".

url="http://my.company.com/svn/repo1/private-data/" 
while read line; do 
    username="${line%:*}" 
    password="${line#*:}" 
    if wget --quiet --user="$username" --password="$password" -- "$url"; then 
    echo -e "$username:\tgranted" 
    else 
    echo -e "$username:\tdenied" 
    fi 
done < users-list.txt 

Il existe un moyen de faire cette vérification sans connaître les mots de passe des utilisateurs mais seulement le nom d'utilisateur? Je suis root dans la machine sur laquelle HTTPD et Subversion s'exécutent. Est-ce que HTTPD fournit un outil d'audit?

L'authentification est configurée de la manière suivante:

<Location /svn/> 
    DAV svn 
    SVNParentPath /var/svn/ 
    AuthType Basic 
    AuthBasicProvider ldap 
    AuthName "Subversion repository" 
    AuthLDAPURL ldap://127.0.0.1:389/ou=People,o=mycompany.com?uid?sub?(objectClass=*) 
    Require valid-user 
    AuthzSVNAccessFile /var/svn/svn-access-file.conf 
    Options Indexes 
    SVNListParentPath on 
</Location> 
+0

Presque la même question est http://stackoverflow.com/questions/819900 – sendmoreinfo

Répondre

2

Si par « vérifier », vous voulez dire regarder jusqu'à ce que la définition est - alors vous pouvez simplement vérifier les fichiers de configuration de la sécurité sur le serveur (en particulier ce que the documentation appelle le "fichier de règles") pour savoir qui est autorisé à accéder à quels chemins. Si par "vérifier" vous entendez test, comme dans valider les règles que les utilisateurs sont réellement autorisés en pratique en se connectant comme sur HTTP - alors non, vous ne pouvez pas. Dans votre exemple, vous essayez de vous connecter à Subversion en tant qu'utilisateur donné (nom). Si vous pouviez le faire sans le mot de passe, cela tournerait en dérision tout le système de sécurité.

+0

J'ai mis à jour la question, et j'espère que c'est plus clair maintenant. –

Questions connexes