Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 24/10/2007, 14h52   #1
Invité régulier
 
Inscription : février 2004
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 39
Points : 7
Points : 7
Par défaut comment récupérer le login windows de l'utilisateur

Bonjour

=> mon serveur web est un windows 2003, avec apache 2.2.4/mysql 5.0

=> pour un intranet accessible par des clients windows XP avec IE7, je voudrais recupérer le login des utilisateurs.

=> si je suis loggé sur un poste de travail en tant que domaine\user, et que j'affiche ds IE la page test.php, je voudrais recupérer dans test.php la chaine "user", qui est mon identifiant windows

pouvez vous m'expliquer brievement comment faire ?
merci d'avance

anthony
selector est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 17h21   #2
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
Salut,

Ce que tu souhaite faire est impossible en php car il s'agit d'un langage coté serveur et non client.

Après je ne sait pas si javascript pourrait te donner ce genre de renseignement

Michael
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 18h05   #3
Invité régulier
 
Inscription : février 2004
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 39
Points : 7
Points : 7
merci pour ta reponse

javascript peut surement me donner l'info, mais j'en ai besoin coté srv pour pouvoir insérer le login de l'utilisateur dans une table MySQL

j'ai fait des recherches sur le forum, j'ai trouvé des sujets analogues au mien, mais ils mettent tous en avant une utilisation de $_SERVER["REMOTE_USER"] ou $_SERVER['PHP_AUTH_USER'], dans le cadre d'une utilisation de l'authentification HTTP, sans plus d'explication ...
selector est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 11h44   #4
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 30
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 30
Points : 15
Points : 15
hello

tu dois configurer iis pour autoriser l'identification par login windows

Ca se passe dans la console de IIS (start->run->inetmgr)
dans les propriétés de ton site, onglet "directory security",autenticaton and access protocol"
Tu coches l'option "Integrated Windows Authentication"

(je te laisse trouver les options si ton IIS est en français)

Il faut peut-être redémarrer IIS.

ensuite, l'utilisateur sous IE est authentifié automatiquement (pour les autres navigateurs comme firefox, l'utilisateur doit fournir son login).

Pour récupérer son login, il faut utiliser la variable $_SERVER['PHP_AUTH_USER'].
nabbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 13h15   #5
Invité régulier
 
Inscription : février 2004
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 39
Points : 7
Points : 7
merci pour ta reponse, mais mon PHP tourne sous apache

cela dit, voici comment j'ai bricolé :

coté client, je recupere le user windows avec :
Code :
1
2
3
4
5
6
7
8
 
<form method="post" ......>
<script type='text/javascript'>
  var obj = new ActiveXObject('WScript.Network');
  document.write('<input type="hidden" name="windows_logon_user" value='+obj.UserName+'>');
</script>
...
</form>
ensuite je poste ce formulaire, et coté serveur je fais :
Code :
1
2
3
4
 
if (isset($_POST['windows_logon_user'])) {
  $_SESSION['windows_logon_user'] = $_POST['windows_logon_user'];
}
a partir de ce moment la, sur le serveur je connais le login du l'utilisateur

je sais, c'est dégueu, mais j'ai un peu cherché, et je crois que c'est la seule solution pour que le serveur connaisse le login de l'utilisateur

en plus, la partie de code client impose que le client soit sous IE, ce qui est OK pour mon intranet

bref

anthony
selector est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 20h29   #6
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 426
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 426
Points : 2 813
Points : 2 813
sous windows tu peux aussi en passer par l'AD
lorsqu'un utilisateur de windows se connecte sur son poste dans un Domaine il est enregistré dans l'active directory
tu as alors dans l'annuaire la liste des utilisateur connecté ou non dans ton domaine mais aussi les machines référencé dans ce domaine et lorsque l'utilisateur se connecte tu as aussi l'association user machine.

tu peux donc activer le protocole LDAP de l'AD et le consulter depuis ton serveur ayant l'adresse la machine qui te fait une requête tu peux retrouver la personne connecté.

mais la meilleur solution est sur un intranet de distribuer un certificat via le logon script
ainsi lorsque un user se connecte sur le serveur tu reçois son certifica et tu peux l'utiliser pour l'identifier.

pour tous ce genre de solution il te faut chercher SSO (Single Sign On) sur internet il y a beaucoup de solution plus ou moins sures et complexes.

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 20h38   #7
Invité régulier
 
Inscription : février 2004
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 39
Points : 7
Points : 7
merci pour ton msg

en fait, en plus du bricolage que j'ai expliqué plus haut pour que le serveur puisse connaitre le login de l'utilisateur, j'utilise en plus l'AD pour obtenir le nom a partir du login, en faisant une requete LDAP

a propos de ta méthode de "distribuer un certificat via le logon script", c'est un peu obscur pour moi

le logon script, c'est quand l'utilisateur se connecte sur sa session windows, je suppose ?

mais le certificat, je ne sais pas trop ...

anthony
selector est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2007, 09h08   #8
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 426
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 426
Points : 2 813
Points : 2 813
le principe d'un SSO est de reconnaître l'utilisateur au moment ou il se loge sous windows (ou autre OS linux MacOS) à ce moment là on fait une authentification de l'utilisateur.

on en profite pour lui donner un certificat un clef unique (soit permanente c.a.d. pour toute la durée ou il est dans l'entreprise, soit jetable c.a.d pour la durée de sa connexion) suivant le choix technologique fait soit on garde une copie de la clef soit on gade une clef sœur

ainsi lorsque l'utilisateur veux accéder à une ressource il doit présenter sa clef la ressource peut alors vérifier qui il est et s'il à le droit. on obtiens son identité par l'AD en demandant à qui est le certificat en question.

voilà pour le principe
concrètement sous windows dans le logon script de l'utilisateur (sur le contrôleur de domaine) tu place le certificat dans %UserDir%\Application Data\Microsoft\SystemCertificates\
sous ie tu dois le retrouver dans outils options internet contenu certificats
il sera alors utilisé par IE (même fonctionnement sous FF mais dossier différent) pour la connexion au domaine (intranet donc) auquel il est associé.

comme tout est chiffré tu as un bon niveau de sécurité
il y a beaucoup de littérature sur le SSO (windows ou pas) et ne serais-je que pour une culture générale c'est bond'en lire un bout.

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2007, 09h34   #9
Invité régulier
 
Inscription : février 2004
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 39
Points : 7
Points : 7
merci pour tes explications !
selector est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h15.


 
 
 
 
Partenaires

Hébergement Web