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

Bibliothèques et frameworks PHP Discussion :

[COM] Récupérer l'identifiant NT (NTSID) de chaque utilisateur


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [COM] Récupérer l'identifiant NT (NTSID) de chaque utilisateur
    BOnjour,

    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $domainObject = new COM("WinNT://agences");
    $toto = $domainObject->Filter;
    foreach ($domainObject as $obj) 
    {   
    	$Name = $obj->Name;
    	$DescName = $obj->fullname;
    }
    Je souhaiterais voir également le NTSID, comment puis je faire
    merci par avance

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Citation Envoyé par drausin Voir le message
    BOnjour,

    j'ai le code suivant

    $domainObject = new COM("WinNT://agences");
    $toto = $domainObject->Filter;
    foreach ($domainObject as $obj)
    {
    $Name = $obj->Name;
    $DescName = $obj->fullname;

    }

    Je souhaiterais voir egalement le NTSID, comment puis je faire
    merci par avance

    Par NTSID, tu entends l'identifiant du poste client (pas de l'utilisateur) ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    en fait je souhaite recuperer pour le domaine CTLMCOFNT
    la liste des users avec pour chacun leur login , leur full name et leur NTSID (l'id nt )

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    normalement un login a un id correspondant
    cest cela que je veux recuperer

  5. #5
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Ah, je ne sais pas si ce que j'ai en stock va t'aider (je ne connais pas bien les authentifications NT), mais j'ai trouvé un code qui récupère le NTLM (nom de machine je crois) à cette adresse : http://www.secusquad.com/ntlm/
    Si le lien est mort, je peux poster le code.
    J'avais essayé de récupérer le login, mais en vain.
    Eventuellement en utilisant le LDAP, mais je n'y ai pas eu accès.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    merci je vais essayer mais ca a pas l'air de marcher

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par guidav Voir le message
    Ah, je ne sais pas si ce que j'ai en stock va t'aider (je ne connais pas bien les authentifications NT), mais j'ai trouvé un code qui récupère le NTLM (nom de machine je crois) à cette adresse : http://www.secusquad.com/ntlm/
    Si le lien est mort, je peux poster le code.
    J'avais essayé de récupérer le login, mais en vain.
    Eventuellement en utilisant le LDAP, mais je n'y ai pas eu accès.
    Tu peux poster le code ? Merci

  8. #8
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php
    /*********************************************************************** 
    ************************************************************************ 
    * 
    * PHP NTLM GET LOGIN 
    * Version 0.2.1 
    * http://www.secusquad.com/ntlm/ 
    * Copyright (c) 2004 Nicolas GOLLET ( Nicolas (dot) gollet (at) secusquad (dot) com ) 
    * Copyright (c) 2004 Flextronics Saint-Etienne 
    * 
    * This program is free software. You can redistribute it and/or modify 
    * it under the terms of the GNU General Public License as published by 
    * the Free Software Foundation; either version 2 of the License. 
    * 
    ***********************************************************************/ 
    //session_start(); 
    $headers = apache_request_headers();     // Récupération des l'entêtes client 
    print_r($headers);
    if (@$_SERVER['HTTP_VIA'] != NULL){ // nous verifions si un proxy est utilisé : parceque l'identification par ntlm ne peut pas passer par un proxy 
        echo "Proxy bypass!"; 
    }
    elseif($headers['Authorization'] == NULL){                //si l'entete autorisation est inexistante 
            header( "HTTP/1.0 401 Unauthorized" );            //envoi au client le mode d'identification 
            header( "WWW-Authenticate: NTLM" );            //dans notre cas le NTLM 
            exit;                            //on quitte 
        } 
        if(isset($headers['Authorization']))                 //dans le cas d'une authorisation (identification) 
        {         
            if(substr($headers['Authorization'],0,5) == 'NTLM '){     // on vérifit que le client soit en NTLM 
                $chaine=$headers['Authorization'];                      
                $chaine=substr($chaine, 5);             // recuperation du base64-encoded type1 message 
                $chained64=base64_decode($chaine);        // decodage base64 dans $chained64 
                if(ord($chained64{8}) == 1){                     
                //          |_ byte signifiant l'etape du processus d'identification (etape 3)         
                // verification du drapeau NTLM "0xb2" à l'offset 13 dans le message type-1-message (comp ie 5.5+) : 
                    if (ord($chained64[13]) != 178){ 
                        echo "NTLM Flag error!"; 
                        exit; 
                    } 
                    $retAuth = "NTLMSSP".chr(000).chr(002).chr(000).chr(000).chr(000).chr(000).chr(000).chr(000); 
                    $retAuth .= chr(000).chr(040).chr(000).chr(000).chr(000).chr(001).chr(130).chr(000).chr(000); 
                    $retAuth .= chr(000).chr(002).chr(002).chr(002).chr(000).chr(000).chr(000).chr(000).chr(000); 
                    $retAuth .= chr(000).chr(000).chr(000).chr(000).chr(000).chr(000).chr(000); 
                    $retAuth64 =base64_encode($retAuth);        // encode en base64 
                    $retAuth64 = trim($retAuth64);             // enleve les espaces de debut et de fin 
                    header( "HTTP/1.0 401 Unauthorized" );         // envoi le nouveau header 
                    header( "WWW-Authenticate: NTLM $retAuth64" );    // avec l'identification supplémentaire 
                    exit; 
                } 
                else if(ord($chained64{8}) == 3){ 
                //          |_ byte signifiant l'etape du processus d'identification (etape 5) 
                    // on recupere le domaine 
                    $lenght_domain = (ord($chained64[31])*256 + ord($chained64[30])); // longueur du domaine 
                    $offset_domain = (ord($chained64[33])*256 + ord($chained64[32])); // position du domaine.     
                    $domain = str_replace("\0","",substr($chained64, $offset_domain, $lenght_domain)); // decoupage du domaine 
                    //le login 
                    $lenght_login = (ord($chained64[39])*256 + ord($chained64[38])); // longueur du login. 
                    $offset_login = (ord($chained64[41])*256 + ord($chained64[40])); // position du login. 
                    $login = str_replace("\0","",substr($chained64, $offset_login, $lenght_login)); // decoupage du login 
                    if ( $login != NULL){ 
                        // stockage des données dans des variable de session 
                        $_SESSION['Login']=strtolower($login); 
                        //echo $_SESSION['Login'];
                        //header("Location: index.php"); 
                        //exit;
                    } 
                    else{
                        //echo "NT Login empty!"; 
                    } 
              } 
         } 
    } 
     
     
    ?>

Discussions similaires

  1. Récupérer les droits d'accès de chaque utilisateur
    Par fernandao dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 17/01/2013, 19h51
  2. [MySQL] Problème pour récupérer un identifiant
    Par grumly22 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 03/05/2006, 12h29
  3. [WD9] Récupérer un identifiant dans un arbre
    Par Romanops dans le forum WinDev
    Réponses: 2
    Dernier message: 29/03/2006, 17h31
  4. [WD9] Récupérer l'identifiant
    Par kuranes dans le forum WinDev
    Réponses: 2
    Dernier message: 14/12/2005, 10h23
  5. Récupérer les identifiants de la DB avec SQL.
    Par Cygnus Saint dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/08/2005, 07h15

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