Trac authentification LDAP (apache)

Trac authentification LDAP (apache) - Logiciels d'entreprise - Systèmes & Réseaux Pro

Marsh Posté le 20-07-2007 à 21:06:21    

Bonjour,
 
J'essaie d'authentifier mes utilisateurs Trac avec mon LDAP (MS Active Directory)
J'ai l'impression que je ne suis vraiment pas loin, mais j'ai un probleme de config de apache2.2
 
Quand j'accede a la page de mon serveur trac, j ai une pop up qui me demande mon login // password.
Si j'entre 3 mauvais mot de passes, la page affiche : "Authorization Required"..
Si je rentre un login//pass qui est contenu dans LDAP, j'obtiens une erreur 500 : Internal Server Error.
Cela indique (du moins, je pense...) que je peux m'authentifier, mais que j'ai une erreur dans mon httpd.conf
 
Voici la partie du httpd.conf que je modifie

Citation :


 <Location /trac-test/>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnv /opt/trac-test/
  PythonOption TracUriRoot /trac-test/
  Order deny,allow
  Deny from all
  Allow from all
  AuthType Basic
  AuthName "Trac"
  AuthBasicProvider "ldap"
  AuthLDAPURL "ldap://192.168.0.101:3268/DC=agiledss,DC=local?sAMAccountName?sub?(objectClass=user)"
  AuthLDAPBindDN       "CN=Administrator,CN=Users,DC=agiledss,DC=local"
  AuthLDAPBindPassword "###(Administrator's password)###"
  authzldapauthoritative Off
  require valid-user
  require group CN=VPNUsers,CN=Users,DC=agiledss,DC=local
</Location>


 
Et voici le /var/log/httpd/error_log quand je me connecte avec le bon couple login//pass
toute les lignes sont precedees de : [Fri Jul 20 11:53:04 2007] [error] [client 192.168.0.126] (retirée pour la visibilité)

Citation :


PythonHandler trac.web.modpython_frontend: Traceback (most recent call last):
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch\n    result = object(req)
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/trac/web/modpython_frontend.py", line 87, in handler\n    gateway.run(dispatch_request)
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/trac/web/wsgi.py", line 87, in run\n    response = application(self.environ, self._start_response)
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 377, in dispatch_request\n    env = _open_environment(env_path, run_once=run_once)
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 58, in _open_environment\n    env_cache[env_path] = open_environment(env_path)
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/trac/env.py", line 434, in open_environment\n    env = Environment(env_path)
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/trac/env.py", line 126, in __init__\n    self.verify()
PythonHandler trac.web.modpython_frontend:   File "/usr/lib/python2.4/site-packages/trac/env.py", line 174, in verify\n    fd = open(os.path.join(self.path, 'VERSION'), 'r')
PythonHandler trac.web.modpython_frontend: IOError: [Errno 2] No such file or directory:'/opt/trac-test/VERSION'


 
Je ne suis pas tres a l'aise avec Apache.. c'est peut etre une erreur stupide, toujours est il que je ne la trouve pas..  
 
Quelqu'un peut il m'aider ?
Merci d'avance,
 
Ben

Reply

Marsh Posté le 20-07-2007 à 21:06:21   

Reply

Marsh Posté le 20-07-2007 à 22:10:04    

Je pense que t'as config LDAP est ok.
 
Ton erreur est due au fait que tu n'as pas de fichier VERSION dans le répertoire de ton projet Trac.
Perso le fichier VERSION contient chez moi "Trac Environment Version 1"
 
Un autre truc aussi... Il manque NONE à la fin de la ligne AuthLDAPURL "....." NONE
 
Ca dit que tu n'utilise pas SASL pour l'authentification.
 
Essaye ca et dit moi quoi ;)
 
Julien

Reply

Marsh Posté le 20-07-2007 à 23:02:00    

hep, en fait le probleme venait d autre part...
et meme exactement d ici :  
 
  PythonOption TracEnv /opt/trac-test/NOMDUPROJET
  PythonOption TracUriRoot /trac-test/NOMDUPROJET  
 
bon, du coup pour l instant l auth ne marche que sur un seul projet, mais je travaille pour que ca marche sur tous...
 
et aussi il y avait le fait que la demande d auth se faisait tout de suite, mais cela etait du a la non presence d utilisateur anonymous..
 
enfin bref, j ai bien avancer, mais j ai pas fini !!
merci kan meme, j ai rajoute NONE ;-)

Reply

Marsh Posté le 21-07-2007 à 19:39:58    

Je te copie ma config si tu veux. Pour que ca marche pour plusieurs projet il faut changer les options.
 
<VirtualHost *:80>
        ServerName trac.example.com
        DocumentRoot /var/lib/trac
 
        <Location />
                SetHandler mod_python
                PythonHandler trac.web.modpython_frontend
                PythonOption TracEnvParentDir /var/lib/trac
                PythonOption TracUriRoot /
        </Location>
 
        <LocationMatch "/([^/]+)/login">
                AuthType Basic
                AuthName "Trac login"
                AuthBasicProvider "ldap"
                AuthLDAPURL "ldap://192.168.100.3:389/ou=tracusers,ou=trac,dc=example,dc=com?uid?sub?(objectClass=account)" NONE
                AuthzLDAPAuthoritative Off
                Require valid-user
        </LocationMatch>
</VirtualHost>


Message édité par oxylin le 21-07-2007 à 19:40:30
Reply

Marsh Posté le 22-07-2007 à 16:25:29    

yes !
c etait ca en fait...
si on met l option TracEnv, il faut mettre le chemin d un projet, si on met TracEnvParentDir, on peut mettre le dossier parents des projets..
 
Merki !!

Reply

Marsh Posté le 23-07-2007 à 20:16:50    

Bon, prochaine etape : l'authentification anonyme..
Pour ca, il faut mettre 2 3 options en plus, nottament :
  AuthBasicProvider anon ldap
ldap pour LDAP, et anon pour anonyme..

 

Si je met juste ldap, je ne peux m'authentifier qu'avec les users LDAP, si je met juste anon, je peux acceder a tout, mais en anonyme (et du coup je ne peux rien modifer)

 

Mon but est de pouvoir ouvrir la page en anonyme, lire les infos, changer de projet, de page... tout ca en restant anonyme ; puis de se logger si on veut (pour modifier une page du wiki par ex.).

 

Mon probleme est que avec cette option, je suis soit anonyme, soit loggé, mais pas les 2...
- Si je me log sans login//pass (OK a la fenetre de log), je suis en anonyme, mais impossible de se logger pour faire des modif. ("Internal Error : Authentication information not available. Please refer to the installation documentation." )
- Si je me log avec un login//pass LDAP, je suis loggé avec cet user, mais pas possible de me delogger.

 

quelqu'un aurait une petite idée ?? Ou pourrait me dire au moins si c est possible ou pas..


Message édité par bafx le 23-07-2007 à 20:19:24
Reply

Marsh Posté le 23-07-2007 à 20:31:57    

<Location /trac-test/>
  SetHandler mod_python
  PythonOption TracEnvParentDir /opt/trac-test
  PythonOption TracUriRoot /trac-test
  PythonHandler trac.web.modpython_frontend
</Location>
 
<LocationMatch "/([^/]+)/login">
  Order deny,allow
  Deny from all
  Allow from 192.168.0.0/17 192.168.128.0/17
  AuthType Basic
  AuthName "Trac"
  AuthBasicProvider ldap
  AuthLDAPURL "ldap://192.168.0.101:3268/DC=agiledss,DC=local?sAMAccountName" NONE
  AuthLDAPBindDN       "CN=Administrator,CN=Users,DC=agiledss,DC=local"
  AuthLDAPBindPassword "###admin's password###"
  authzldapauthoritative Off
  require valid-user
  require group CN=TracUsers,CN=Users,DC=agiledss,DC=local
  Anonymous_MustGiveEmail off
  Anonymous_VerifyEmail off
  Anonymous_LogEmail off
  Anonymous_NoUserID on
  Anonymous anonymous
</LocationMatch>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed