[PHP] adLDAP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik ben met een script bezig wat info uit de AD haalt. Ik gebruik hiervoor een PHP class adLDAP. Heel handig alleen een functie binnen de class krijg ik niet aan de praat. Dat is de functie die kijkt of een user in een bepaalde groep zit in de AD.
Er zijn meer mensen met dat probleem dus ik wil daar een andere oplossing voor bedenken. Nu heb ik een idee maar wil graag eens horen of dit een goede oplossing is of dat er misschien betere ideeen zijn.

Mijn idee is dit:

PHP:
1
2
3
4
5
6
7
8
9
include ('adLDAP.php');
$ldap=new adLDAP();
$result=$ldap->user_info('jantjebeton', $fields=array('memberof')); //haal userinfo op en dan alleen waar de user lid van is qua groepen
print_r($result);

// zit de groep Authorisation - Groep 001 er tussen
if (in_array("CN=Authorisation - Groep 001 ,OU=Authorisation,OU=Groepen,OU=GGX,OU=_Organisatie,DC=ggx,DC=local", $result[0]['memberof'])) {
echo "YEP";
}


Dit werkt op zich prima, maar het ziet er vrij 'ranzig' uit. Misschien is het ook best een goede oplossing maar misschien heeft er iemand een beter idee?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Tja, imho ziet het er ook wat ranzig uit, maar dat ligt niet aan de php. Wat ik zelf in een java applicatie nog wel heb gedaan is het resultaat verwerken. Splitten op komma en dan die resultaten doormidden knippen op de = zodat je alle velden appart hebt. Het resultaat is dan een lijstje met CN's, OU's en DC's.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ja dat heb ik ook al gedaan:

PHP:
1
2
3
4
5
6
7
foreach ($result[0]["memberof"] AS $k => $g) 
{ 
# Groep bepalen 
$groep = substr($g, 3, strpos($g, ","));
# Groepnaam weergeven 
echo rtrim(stripslashes($groep), ',CN,OU') . "<br/>";
}


Maar het makkelijkst is om direct na het opvragen van de results checken of de groep erbij zit lijkt me...

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Dat is misschien zo, maar is de volgorde waarin je je OU's en DC's terug krijgt wel altijd hetzelfde? Als die namelijk anders is dan werkt het niet meer lijkt me.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ja dat is altijd hetzelfde idd..Maar op het zeker te weten/af te vangen is het splitten en dan pas kijken een goeie fail safe..