Authentification automatique IE - Firefox en PHP

Eléphanteau du PHP | 35 Messages

29 mars 2010, 15:30

Bonjour,

je m'adresse à vous aujourd'hui car je cherche le moyen de connecter automatiquement mes utilisateurs de l'intranet de l'entreprise sur un site que je suis entrain de faire. Alors j'ai testé et regardé du côté de NTLM en PHP mais cela n'a pas l'air de fonctionner... Existe t'il en PHP un moyen plus performant de le faire car NTLM c'est vieux...


Mes headers avec IE :

Code : Tout sélectionner

Array ( [Accept] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */* [Accept-Language] => fr [Ua-Cpu] => x86 [Accept-Encoding] => gzip, deflate [User-Agent] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) [Host] => my [Connection] => Keep-Alive )
Comme on peut le voir, il n'y a aucun $headers['Authorization'] donc je ne peux pas connecter mes utilisateurs automatiquement.

Connaissez-vous une autre solution ? Ou avez-vous déjà mis en oeuvre cette solution ? Avec Zend framework ? Car j'ai cherché dans la documentation Zend je n'ai rien trouvé et mon intranet est fait avec zend.

Bonne journée à tous

ViPHP
ViPHP | 5462 Messages

29 mars 2010, 15:33

ca marche unqiuement grace au serveur ca, regarde du coté de kerberos, c'est apache (ou IIS)qui va se charger d'envoyer les infos dans l'en-tete
Modifié en dernier par stealth35 le 29 mars 2010, 15:36, modifié 1 fois.

Mammouth du PHP | 568 Messages

29 mars 2010, 15:35

J'utilise l'authentification NTLM et je n'ai pas de soucis, la seul contrainte est que le site doit être dans la zone intranet (options IE).

Eléphanteau du PHP | 35 Messages

29 mars 2010, 16:25

Merci stealth et Yosh,

En effet j'ai vérifié dans ma configuration internet explorer et le site ne figurait pas dans site intranet. Cela fonctionne désormais. Je n'ai pas encore testé sous Firefox 3.5 ou Safari. Je ne sais pas si cela fonctionne.

Je vais aussi regardé kerberos pour voir si c'est un bon outil.

A bientôt

Mammouth du PHP | 568 Messages

29 mars 2010, 16:50

Merci stealth et Yosh,

En effet j'ai vérifié dans ma configuration internet explorer et le site ne figurait pas dans site intranet. Cela fonctionne désormais. Je n'ai pas encore testé sous Firefox 3.5 ou Safari. Je ne sais pas si cela fonctionne.

Je vais aussi regardé kerberos pour voir si c'est un bon outil.

A bientôt
Kerberos, c'est du NTML avec une couche sécurisé.

Pour faire fonctionner du ntlm sur firefox tu fais about:config et tu modifie network.automatic-ntlm-auth.trusted-uris en ajoutant l'adresse du site...

Pour Safari, je ne sais pas...mais j'en doute, c'est principalement pour les environnements Windows.

Eléphanteau du PHP | 35 Messages

30 mars 2010, 09:32

Bonjour à tous,

Alors avec NTLM j'arrive bien à récupérer l'identifiant d'un utilisateur windows sous IE et firefox mais je souhaiterais pouvoir récupérer le credential d'une session windows pour me permettre de vérifier que l'utilisateur a bien les droits sur le réseau. Est-ce possible ?

Est-ce que NTLM transmet le mot de passe de l'utilisateur en base64 ?

C'est quand même compliqué cette histoire de NTLM ;) En tous cas je posterais sur ce forum mes solutions cela pourra toujours servir à quelqu'un car sur le web je trouve pas grand chose d'intéressant.

Bonne journée

ViPHP
ViPHP | 5462 Messages

30 mars 2010, 09:40

le login ca c'est sur, le mot de passe je sais qu'il est envoyer en base64 dans l'en tete, apres je sais pas si PHP je met en variable ou pas, tu peu toujours récupérer l'en-tète par contre

Eléphanteau du PHP | 35 Messages

30 mars 2010, 10:24

Il faudrait surtout que j'arrive à récupérer le credentials d'une session windows. J'utilise active directory et LDAP derrière tous sa.

Je crois qu'il faut que j'installe des modules apache supplémentaire.

A toute