IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

comment récupérer le login windows de l'utilisateur


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 39
    Points : 20
    Points
    20
    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

  2. #2
    Membre averti
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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 : 412
    Points
    412
    Par défaut
    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
    Toutes mes références en ligne : http://www.developpeur-web-php.fr

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    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 ...

  4. #4
    Nouveau membre du Club
    Profil pro
    nabbo
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : nabbo

    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    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'].

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    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

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    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

  8. #8
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    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

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 39
    Points : 20
    Points
    20
    Par défaut
    merci pour tes explications !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/09/2011, 22h49
  2. Réponses: 4
    Dernier message: 23/01/2008, 17h42
  3. Réponses: 2
    Dernier message: 20/04/2007, 17h15
  4. [C#] Comment récupérer le login de l'utilisateur courant ?
    Par pocket dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/07/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo