Ik hoop dat er hier wat mensen zitten die ons kunnen helpen 
We hebben een ldap server draaien (onder linux) en daarop ook apache. Nu willen wij een php script schrijven die het wachtwoord kan controleren uit de database (waarvoor wij een ldif bestand gebruiken). We hebben veel gezocht op internet, maar de juiste oplossing zit er niet tussen. Ik wil dus een inlogapplicatie maken in php.
Het ldif bestand heeft de volgende indeling (ingekort):
We hebben nu een gedeelte wat waarschijnlijk niet klopt, maar tis een opzet iig.
Nu moet daarin dus een simpel formulier komen waar je gebruikersnaam en wachtwoord kunt invullen. Vervolgens moet hij dit controleren met gegevens uit de database.
Ik hoop dat jullie ons verder kunnen helpen want we zitten behoorlijk vast hierop.
edit: code tags door php tags vervangen
We hebben een ldap server draaien (onder linux) en daarop ook apache. Nu willen wij een php script schrijven die het wachtwoord kan controleren uit de database (waarvoor wij een ldif bestand gebruiken). We hebben veel gezocht op internet, maar de juiste oplossing zit er niet tussen. Ik wil dus een inlogapplicatie maken in php.
Het ldif bestand heeft de volgende indeling (ingekort):
code:
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
76
77
78
79
80
81
82
83
84
| dn: dc=ictbeheer,dc=nl
objectClass: top
objectclass: dcObject
objectclass: organization
dc: ictbeheer
o: ictbeheer
description: ICT beheers domein Saxion
dn: o=ictbeheer, c=nl
objectClass: top
objectClass: organization
o: ictbeheer
description: Afdeling ICT beheer
dn: cn=ictadmin,o=ictbeheer,c=nl
objectClass: organizationalRole
cn: ictadmin
description: LDAP Directory Administrator
dn: ou=TI,o=ictbeheer,c=nl
ou: TI
#o: ictbeheer
objectClass: top
objectClass: organizationalUnit
description: Members of Technische Informatica
dn: ou=group,o=ictbeheer,c=nl
ou: group
#o: ictbeheer
objectClass: top
objectClass: organizationalUnit
description: Authorisation groups
dn:ou=IT2B2,ou=TI,o=ictbeheer,c=nl
ou: IT2B2
#associateddomain: IT2B2.TI.ictbeheer.nl
objectClass: top
objectClass: organizationalUnit
description: PGO groep TI
#objectClass: domainRelatedObject
dn: cn=Kai xxx,ou=IT2B2,ou=TI,o=ictbeheer,c=nl
ou: IT2B2
cn: Kai xxx
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
mail: kai@hotmail.com
givenname: Kai xxx
sn: xxx
homePostalAddress: xxx
l: xxx
st: xxx
postalcode: 3456
telephoneNumber: (800)555-1214
title: Problem manager ICT Beheerder
userPassword: {SSHA}FxX5R3U/WmeKApvjxxp/3eXQKtfY2UTp
uid: kai
dn: cn=Mathijn xxx,ou=IT2B2,ou=TI,o=ictbeheer,c=nl
ou: IT2B2
cn: Mathijn xxx
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
mail: mat@hotmail.com
givenname: Mathijn
sn: xxx
homePostalAddress: xxx
l: xxx
st: xxx
postalcode: xxx
telephoneNumber: xxx
title: CMBD manager ICT Beheerder
userPassword: {SSHA}hfB0BLhEy0/zwsZucOCmtxQ2zwtPFrTJ
uid: mathijn
dn: cn=IT2B2-pgo,ou=group,o=ictbeheer,c=nl
cn: IT2B2-pgo
objectclass: groupOfNames
member: cn=Kai xxx,ou=IT2B2,ou=TI,o=ictbeheer,c=nl
member: cn=Mathijn xxx,ou=IT2B2,ou=TI,o=ictbeheer,c=nl |
We hebben nu een gedeelte wat waarschijnlijk niet klopt, maar tis een opzet iig.
Nu moet daarin dus een simpel formulier komen waar je gebruikersnaam en wachtwoord kunt invullen. Vervolgens moet hij dit controleren met gegevens uit de database.
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
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
| // connect to LDAP server $ldap = ldap_connect("localhost") or die("Cannot connect to the ldap server :/"); $oudc = "cn=IT2B2-pgo, dc=ictbeheer,dc=nl"; $searchdc = "dc=ictbeheer,dc=nl"; $dn2 = ""; $password = "userPassword"; $auth = false; //look up OU if (!($res = ldap_bind($ldap,$dn2,$password))) { print(ldap_error($ldap) . "<br>"); die("Could not bind to $dn"); } else { // set search critia for OU $filter = "samaccountname=".$_POST['username']; // search OU $sr = ldap_search($ldap,$searchdc,$filter); if (!$sr) { die("search failed\n"); } else { // get fields from search $info = ldap_get_entries($ldap,$sr); if ($info["count"] == 0) { $auth = false; } else { $auth = true; $user_cn = $info[0]["cn"][0]; } // disconnect from LDAP server ldap_unbind($ldap); } } if ($auth == false) { die("Could not authenticate you to the Server."); } $ldap = ldap_connect("localhost") or die("Cannot connect to AD server :/"); $oudc = "cn=IT2B2-pgo, dc=ictbeheer,dc=nl"; $dn2 = "cn=".$user_cn.", ".$oudc; $password = $_POST['password']; //look up OU if (!($res = ldap_bind($ldap,$dn2,$password))) { $login = 0; $message = "Invalid Password."; } else { $sr = ldap_search($ldap,"dc=ictbeheer,dc=nl","cn=".$user_cn); $info = ldap_get_entries($ldap,$sr); $login = 1; $message = "You have successfully logged in.<br> } |
Ik hoop dat jullie ons verder kunnen helpen want we zitten behoorlijk vast hierop.
edit: code tags door php tags vervangen
[ Voor 10% gewijzigd door matel op 22-04-2004 21:21 ]