Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2011, 15h46   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Authentification LDAP et proxy ?

Bonjour,

J'ai un problème depuis 3 jours et pas moyen de le résoudre !

L'histoire est simple :
- le serveur1 est un apache2 sur internet hébergeant le site
- le serveur2 est un apache2 sur mon réseau local servant de proxy vers le serveur1
- les postes clients sur mon réseau local

Pour afficher le site voici ce que fait un poste client :
client ---> authentification AD sur le serveur2 ---> "proxyfication" du site du serveur1

L'authentification AD sur le serveur2 fonctionne parfaitement. Mon problème est le renvoi de la valeur REMOTE_USER depuis le serveur2 vers le serveur1 quand je veux proxyfier le site.


Plutôt que plein d'explications pour rien, voici d'abord mon fichier de conf :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ServerName testor.domain.local
ServerAlias testor

PerlAuthenHandler Apache2::AuthenNTLM

<Directory />
	ProxyAddUser On

	AuthType ntlm
	AuthName "DOMAIN_AD"
	require valid-user
	PerlAddVar ntdomain  "DOMAIN_AD SERVEUR_AD"
	PerlSetVar defaultdomain PAI
	PerlSetVar splitdomainprefix 1
	PerlSetVar ntlmdebug 1
	PerlSetVar ntlmauthoritative off
</Directory>

ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full

<Proxy *>
	Order allow,deny
	Allow from all

	RewriteEngine On
	RewriteCond %{LA-U:REMOTE_USER} (.+)
	RewriteRule .* - [E=PROXY_USER:%1]

	RewriteRule .* - [E=PROXY_USER0:%{PROXY_USER}]
	RewriteRule .* - [E=PROXY_USER1:%{REMOTE_USER}]
	RewriteRule .* - [E=PROXY_USER2:%{X-REMOTE_USER}]
	RewriteRule .* - [E=PROXY_USER3:%{LA-U:REMOTE_USER}]
	RewriteRule .* - [E=PROXY_USER4:test]
	RewriteRule .* - [E=PROXY_USER5:%{LA-U:HTTP_REMOTE_USER}]
	RewriteRule .* - [E=PROXY_USER6:%{HTTP_REMOTE_USER}]
	RewriteRule .* - [E=PROXY_USER7:%{HTTP_AUTH_USER}]
	RewriteRule .* - [E=PROXY_USER8:%{AUTH_USER}]

	RequestHeader add X-Forwarded-User %{PROXY_USER0}e
	RequestHeader add X-Forwarded-User %{PROXY_USER1}e
	RequestHeader add X-Forwarded-User %{PROXY_USER2}e
	RequestHeader add X-Forwarded-User %{PROXY_USER3}e
	RequestHeader add X-Forwarded-User %{PROXY_USER4}e
	RequestHeader add X-Forwarded-User %{PROXY_USER5}e
	RequestHeader add X-Forwarded-User %{PROXY_USER6}e
	RequestHeader add X-Forwarded-User %{PROXY_USER7}e
	RequestHeader add X-Forwarded-User %{PROXY_USER8}e

	RequestHeader add X-Forwarded-User %{REMOTE_USER}e
	RequestHeader add X-Forwarded-User %{LA-U:REMOTE_USER}e
	RequestHeader add X-Forwarded-User %{X-REMOTE_USER}e
	RequestHeader add X-Forwarded-User %{PROXY_USER}e
</Proxy>

ProxyPass / http://serveur1/
ProxyPassReverse / http://serveur1/
J'ai plusieurs RewriteRule et RequestHeader avec chacun une variable différente tout simplement parce qu'au fur et à mesure j'ai essayé de voir si une autre variable pouvait répondre à mon besoin, mais malheureusement non.
Le résultat du phpinfos() sur le site du serveur1 me donne :
HTTP_X_FORWARDED_USER = , , , test, , , , , (null), (null), (null), (null) (les virgules séparent les différentes valeurs ajoutées à la variable "X-Forwarded-User")
Ce qui donne donc :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
RequestHeader add X-Forwarded-User %{PROXY_USER0}e = VIDE
RequestHeader add X-Forwarded-User %{PROXY_USER1}e = VIDE
RequestHeader add X-Forwarded-User %{PROXY_USER2}e = VIDE
RequestHeader add X-Forwarded-User %{PROXY_USER3}e = VIDE
RequestHeader add X-Forwarded-User %{PROXY_USER4}e = test (la seule valeur que j'ai forcé pour le test)
RequestHeader add X-Forwarded-User %{PROXY_USER5}e = VIDE
RequestHeader add X-Forwarded-User %{PROXY_USER6}e = VIDE
RequestHeader add X-Forwarded-User %{PROXY_USER7}e = VIDE
RequestHeader add X-Forwarded-User %{PROXY_USER8}e = VIDE
RequestHeader add X-Forwarded-User %{REMOTE_USER}e = (null)
RequestHeader add X-Forwarded-User %{LA-U:REMOTE_USER}e = (null)
RequestHeader add X-Forwarded-User %{X-REMOTE_USER}e = (null)
RequestHeader add X-Forwarded-User %{PROXY_USER}e = (null)
On voit donc bien que seule la valeur rentrée manuellement (test) est correctement renvoyée à travers le proxy, toutes les autres sont vides...

L'authentification AD fonctionne parfaitement sur le serveur2 (avant d'être proxifié) et la variable REMOTE_USER me donne bien prenom.nom. Mais pas moyen de récupérer cette variable à travers le proxy.

Comme vous pouvez le constater avec la ligne "ProxyAddUser On", j'ai même compilé et rajouté le module mod-proxy-add-user, que j'ai pris soin d'appeler tout de suite après authnz_ldap_module, et donc avant mod_proxy, mais rien à faire. Même lui ne récupère pas la valeur de REMOTE_USER.

Arrivé à ce point je ne sais plus quoi faire du tout. Quelqu'un saurait-il me venir en aide ?

Thibaut
bcits est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h02.


 
 
 
 
Partenaires

Hébergement Web