Page 1 sur 1

Variable session courante du poste

Posté : 18 avr. 2014, 11:28
par Megadeth
Bonjour,

Avant de pluguer mon CMS avec mon AD (active directory) je cherche un moyen simple d'afficher les infos de ma session AD courante (pas PHP hein)

Quelqu'un sait-il comment faire car j'essaie en local des :

echo $_ENV["user"]; //username USER USERNAME login LOGIN givenname...

en vain.

J'ai aussi vu la commande getenv('USERNAME'); //...

Idem.
Notice: Undefined index: USERNAME

Par avance merci de votre aide.

Mega
;)

Re: Variable session courante du poste

Posté : 18 avr. 2014, 14:35
par moogli
salut,

$_ENV n'est peuplée qu'après utilisation de getenv().

Tu veux dire que les infos de connexion AD sont stockée sur le serveur ? (dans des variables d'environnement).

tu ne confondrais pas entre ce qui est dispo coté serveur et coté client ?

si tu veux utiliser les infos du mec qui navigue sur ton site il te faut utiliser SSO (par exemple) et récupérer le token de la session windows.
ceci dit je crois que cela ne fonctionne que pour IE (a vérifier).


@+

Re: Variable session courante du poste

Posté : 18 avr. 2014, 15:12
par Megadeth
Salut moogli, ca faisait un bail, toujours les mêmes ;)

Oui tu as bien compris la problématique du SSO. Je voudrais m'affranchir d'un pavé de connexion supplémentaire.

Avant de me lancer plus loin et interroger mon AD je voudrais déjà commencer par afficher mon USERNAME.

echo "<pre>";
print_r($_ENV);
echo "</pre>";

ne contient pas mon username.

J'ai poursuivi avec ceci : echo "username ".shell_exec("%USERNAME%"); mais USERNAME semble vide

pourtant c'est la bonne syntaxe car quand je fais un cmd > set j'ai bien cette variable.

Je fais peut être une confusion mais c'est tout un mic mac cette simple histoire

Re: Variable session courante du poste

Posté : 18 avr. 2014, 21:51
par moogli
Ben tu oublie que php est exécuté sur le serveur et que la tu demande les infos du serveur pas de la machine cliente.

Le seul exemple que j'ai c'est l'utilisation de NTLM.
A priori tu auras ainsi la possibilité de récupérer le "token" windows pour faire ce que tu veux.

C'est a tester mais il y a des choses dispo sur le net.
comme par exemple http://stackoverflow.com/questions/1600 ... ing-ntlmv2


@+

Re: Variable session courante du poste

Posté : 22 avr. 2014, 14:24
par Megadeth
Bonjour,

Oui ça semble plutôt bien marcher. Par contre je me pose des questions en terme de politique (intrusion) et sécurité. Est-ce légitime même pour du fonctionnel ?

Ton/votre point de vue m'intéresse ?

Mega
;)

Re: Variable session courante du poste

Posté : 22 avr. 2014, 15:52
par moogli
le coté "intrusion" de la chose est une question qu'il faut ce poser c'est sur ainsi que :
- Est ce que les données sont vitale ? (la tournée des camions du laitier d'accoté on s'en fou, l'accès complet sur mon compte en banque moins déjà ;) )
- Est ce que l'on est amené à accueillir des gens externe a l'entreprise dans les locaux ?
etc

Mais surtout : est ce que les utilisateurs du SI sont correctement sensibilisé et incité à un minimum de sécurité ?
un exemple simple :
Lundi matin 10 :
- Le chef de projet : dit donc moogli Mr le client me dit que l'utilisateur d'un compte à "hacké" le compte d'une concurrent sur notre plateforme (oula la il à commandé 18 tonnes de gloubiboulga ...)
- moogli : bizarre les mots de passes sont encodé en bases, ils peuvent pas y avoir accès et même si pas de ssl y a peu de chances qu'il y ai eu un snif du réseau.
Fait voir.
- le chef de projet : aller tiens son se connect en prod :
* nom d'utilisateur : enseigne1337
* mot de passe : 1337enseigne
- moogli : hum c'est généralisé ça ?
- le chef de projet : oui enseigne + numéro de magasin et l'inverse pour le mot de passe.
- moogli : ben déjà faudrait éviter ça, et utiliser la possibilité d'expiration des mot de passe.

bref la sécurité c'est bien mais il y a un juste niveau.
Cela ne sert à rien d'utiliser un encodage de compète, "incassable" tous ce que veux si les gens quitte leur poste sans verrouiller la station oui laisse le mot de passe sous le clavier.

Donc le SSO oui mais pas sur des applications sensible :)

@+

Re: Variable session courante du poste

Posté : 24 avr. 2014, 15:43
par Megadeth
Re Moogli,

Thx a lot Mr !

Dans le cadre de ma problématique SSO je cherche à faire la chose suivante :
<?php
$ldap_dn = "CN=mon controler name,OU=mon organization unit,DC=mon domaine controler,DC=bis";
$ldap_svr = "ip ou nom de mon AD";
$conn=ldap_connect($ldap_svr) or die("Cannot connect to LDAP server!");

ldap_set_option ($conn, LDAP_OPT_REFERRALS, 0);
ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);

ldap_bind($conn,"user_lecture_ad","mot_de_passe_associe");

$filter = "megadeth";

$result=ldap_list($conn, $ldap_dn, "CN=*$filter*") or die("No search data found."); 

$info = ldap_get_entries($conn, $result);

for ($i=0; $i < $info["count"]; $i++) {
    echo $info[$i]["cn"][0] . '<br />';
}
?>
qui m'aurait permis de dire "si je suis dans ce groupe..." mais ça foire :?

Code : Tout sélectionner

Search: No such object in C:\wamp\www\mega\ad.php on line 14 Call Stack # Time Memory Function Location 1 0.0003 374976 {main}( ) ..\ad.php:0 2 0.0118 375640 ldap_list ( ) ..\ad.php:14 No search data found.
En fait avec la session windows je pourrais comparer si je suis membre de ce groupe et je fais matcher les valeurs.

Mon $ldap_dn est un groupe avec des members.

Grace à mon outil en local je peux voir que les attributes types sont du type members et les values de cette forme
CN=NOM PRENOM,OU=Les users,OU=Lieu geographique,DC=mon DC,DC=mon DC (mais la chaine peut varier)

Tu peux m'aider ? Tu vois où je merdouille ?

Mega
;)

Re: Variable session courante du poste

Posté : 24 avr. 2014, 19:17
par moogli
J'ai pas de ldap sous la main pour tester désolé :/

As tu essayé en changeant le filtre (ou=*) par exemple.

Pour le code finale tu va virer les "or Die" hein ? ;)

Il faut que tu vois ce qu'il peux retourner.

Désolé suis un peu sec sur le sujet.

@+

Re: Variable session courante du poste

Posté : 25 avr. 2014, 10:45
par Megadeth
salut Moogli,
J'ai pas de ldap sous la main pour tester désolé :/
Quoi ???? Tu sors sans ton ldap ! Je sors jamais sans mon ldap :D
As tu essayé en changeant le filtre (ou=*) par exemple.
Oui, en vain :?
Pour le code finale tu va virer les "or Die" hein ? ;)
Mdrrrr, oui, ça me renvoie à une autre réponse de toi sur l'emploi abusive du @ et du caca derrière le sapin, tu m'as tué :lol:
Il faut que tu vois ce qu'il peux retourner.

Désolé suis un peu sec sur le sujet.

@+
Merci qd même, ça sent une nouvelle journée à ramer :roll:

mais c'est ça qu'c'est bon aussi...

Mega
;)

Re: Variable session courante du poste

Posté : 25 avr. 2014, 11:43
par moogli
moogli a écrit:
Pour le code finale tu va virer les "or Die" hein ?

Mdrrrr, oui, ça me renvoie à une autre réponse de toi sur l'emploi abusive du @ et du caca derrière le sapin, tu m'as tué
il y a des métaphores qui marque plus que d'autre :mrgreen: :mrgreen:

Re: Variable session courante du poste

Posté : 25 avr. 2014, 13:14
par xTG
Ouais... Il en faut peu pour être heureux.....

Re: Variable session courante du poste

Posté : 25 avr. 2014, 14:16
par Megadeth
hakuna matata ;)

J'ai progressé sur le sujet :
<?php
 $ldap = ldap_connect("IP");
    if ($ldap && $bind = ldap_bind($ldap, "[email protected]", "ldappassword")) {
		$query = ldap_search($ldap, "CN=specu,OU=special groups,DC=society,DC=extension", "CN=*");
		$data = ldap_get_entries($ldap, $query);
		for ($i=0; $i < $data['count']; $i++) {
			print_r($data[$i]['member']);
			echo "\n\n";    
		}
    }
?>
Si je retire CN=specu ça me renvoie tous les CN sous special groups.

Autrement (donc avec) il me met :
Warning: ldap_search() [function.ldap-search]: Search: No such object in C:\wamp\www\mega\ad.php on line 5

Sérieux je vois pas car dans mon AD j'ai bien des objets member avec des values en face commençant par CN= :?

Grrrr... :x

Mega
;)

Re: Variable session courante du poste

Posté : 26 avr. 2014, 23:47
par moogli
en même temps, a priori il a pas trord si tu demande les CN sous special groups\cn=specu il n'y en a p'tet pas :)

et
<?php
$query = ldap_search($ldap, "OU=special groups,DC=society,DC=extension", "CN=specu");
ça fonctionne ?

(oui je tâtonne ;))


@+