Beste tweakers,
voor een intranet ben ik wat zaken aan het uitzoeken of het technisch haalbaar is. Zo wil ik toegangs rechten beheren via Novell NDS. Nu ben ik zelf (helaas nog) geen Novell Specialist dus sommige zaken zal ik eerst moeten doorgronden
Onze NDS structuur is globaal als volgt opgebouwd
Idem voor Den Helder en Nice. Er staan er nog meer in , maar dat is voor dit voorbeeld niet relevant denk ik.
Ik heb via PHP en LDAP een goed werkend authenticatie script gemaakt. Dit werkt met gebruikers waarvan ik opgegeef dat ze in ou=users,ou=rotterdam,o=org zitten.
Mijn eerste prangende vraag is : Hoe kan ik nu via PHP uitlezen welke groepen deze gebruiker heeft? Ik denk zelf dat het zoiets moet gaan als volgt (maar misschien is mijn denkwijze fout)
Connect met LDAP server , authenticeer username en password , Bind met LDAP als user en query voor zijn gegevens. (Moet dit als eigen user? Of als admin?). Ik kan eigenlijk niets vinden wat me opweg helpt.. En wellicht is mijn denkwijze fout?
Mijn 2e vraag :
Is er een mogelijkheid om een username in de ORG tree op te sporen? Ik wil de volledige naam (Dus met de juiste stad of land) automatisch doorgeven aan het PHP authenticatie script omdat gebruikers dan niet hun volledige inlognaam in hoeven te vullen (bijv : .username.users.vlis.org)
Ik had zelf het volgende scriptje gemaakt (echter zonder bevredigend resultaat omdat het wel wat terug gaf , maar niet het gewenste)
Ik verwacht dus dat ik een query doe in de o=ORG en zoek naar alles wat er onder valt (startend met een c)
Mijn result is :
Dit is slechts 1 user die met een C begint , maar er staan er nog veel meer in (in HAMB , maar ook in Rotterdam , en andere OU's)
Wie kan me even een beetje op gang helpen?
Qua platform. De LDAP server is een Novell Netware v6.0 server en PHP draait op een IIS server met PHP 4.3.10 (ldap module is uiteraard ingeladen)
Oja , schiet me nog even een vraag te binnen
.. Zoals je in het begin al zag is de security van het script nog niet optimaal. Nu vroeg ik me af of het volgende zin heeft 
Even er vanuitgaande dat er geen SSL gebruikt kan worden...
• De post waarden van een invoer veld encrypted opsturen naar het verwerkings script van PHP en daar weer decoderen?
Een secured LDAP connectie is nog in de planning..
.. maar dit staat momenteel uit op de servers.
voor een intranet ben ik wat zaken aan het uitzoeken of het technisch haalbaar is. Zo wil ik toegangs rechten beheren via Novell NDS. Nu ben ik zelf (helaas nog) geen Novell Specialist dus sommige zaken zal ik eerst moeten doorgronden
Onze NDS structuur is globaal als volgt opgebouwd
code:
1
2
3
4
5
6
7
8
9
10
11
| O = ORG OU = Beheer OU = Rotterdam OU = users cn = username OU = servers OU = printers OU = Den Helder OU = Nice |
Idem voor Den Helder en Nice. Er staan er nog meer in , maar dat is voor dit voorbeeld niet relevant denk ik.
Ik heb via PHP en LDAP een goed werkend authenticatie script gemaakt. Dit werkt met gebruikers waarvan ik opgegeef dat ze in ou=users,ou=rotterdam,o=org zitten.
PHP:
1
2
| $ldaprdn = "cn=".$userid.",ou=users,ou=rdam,o=ORG"; $ldappass = $_POST['password']; |
Mijn eerste prangende vraag is : Hoe kan ik nu via PHP uitlezen welke groepen deze gebruiker heeft? Ik denk zelf dat het zoiets moet gaan als volgt (maar misschien is mijn denkwijze fout)
Connect met LDAP server , authenticeer username en password , Bind met LDAP als user en query voor zijn gegevens. (Moet dit als eigen user? Of als admin?). Ik kan eigenlijk niets vinden wat me opweg helpt.. En wellicht is mijn denkwijze fout?
Mijn 2e vraag :
Is er een mogelijkheid om een username in de ORG tree op te sporen? Ik wil de volledige naam (Dus met de juiste stad of land) automatisch doorgeven aan het PHP authenticatie script omdat gebruikers dan niet hun volledige inlognaam in hoeven te vullen (bijv : .username.users.vlis.org)
Ik had zelf het volgende scriptje gemaakt (echter zonder bevredigend resultaat omdat het wel wat terug gaf , maar niet het gewenste)
PHP:
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
| <?php echo "<h3>LDAP query test</h3>"; $ds=ldap_connect("ip_ldap_server"); echo "connect result is " . $ds . "<br />"; if ($ds) { echo "Binding ..."; $r=ldap_bind($ds); echo "Bind result is " . $r . "<br />"; $sr=ldap_search($ds, "o=ORG", "cn=a*"); echo "Search result is " . $sr . "<br />"; echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />"; echo "Getting entries ...<p>"; $info = ldap_get_entries($ds, $sr); echo "Data for " . $info["count"] . " items returned:<p>"; for ($i=0; $i<$info["count"]; $i++) { echo "dn is: " . $info[$i]["dn"] . "<br />"; } echo "Closing connection"; ldap_close($ds); } else { echo "<h4>Unable to connect to LDAP server</h4>"; } ?> |
Ik verwacht dus dat ik een query doe in de o=ORG en zoek naar alles wat er onder valt (startend met een c)
Mijn result is :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| LDAP query test Connecting ...connect result is Resource id #1 Binding ...Bind result is 1 Search result is Resource id #2 Number of entires returned is 7 Getting entries ... Data for 7 items returned: dn is: cn=ChangePasswordGadget,ou=WebAccess,ou=SERVERS,ou=HAMB,o=ORG dn is: cn=ChangePasswordGadget,ou=WebAccess,ou=SERVERS,ou=NICE,o=ORG dn is: cn=CMELER,ou=USERS,ou=HAMB,o=ORG dn is: cn=HAMBNW Backup Queue,ou=SERVERS,ou=HAMB,o=ORG dn is: cn=NICENW Backup Job Queue,ou=SERVERS,ou=NICE,o=ORG dn is: cn=SMS SMDR Group,ou=SERVERS,ou=HAMB,o=ORG dn is: cn=SMS SMDR Group,ou=SERVERS,ou=NICE,o=ORG Closing connection |
Dit is slechts 1 user die met een C begint , maar er staan er nog veel meer in (in HAMB , maar ook in Rotterdam , en andere OU's)
Wie kan me even een beetje op gang helpen?
Qua platform. De LDAP server is een Novell Netware v6.0 server en PHP draait op een IIS server met PHP 4.3.10 (ldap module is uiteraard ingeladen)
Oja , schiet me nog even een vraag te binnen
Even er vanuitgaande dat er geen SSL gebruikt kan worden...
• De post waarden van een invoer veld encrypted opsturen naar het verwerkings script van PHP en daar weer decoderen?
Een secured LDAP connectie is nog in de planning..
[ Voor 12% gewijzigd door om3ega op 25-01-2005 07:43 ]